내일배움캠프 12일차_250930

  <오늘 하루 일정>

오전 

9:00~13:00 코드팩토리 Dart 강의

13:00~14:00  점심시간


오후 

14:00~16:00 코드팩토리 Dart 강의

16:00~17:00 B반 튜터님 QnA세션

17:00~18:00 Dart 강의 3-1 일부

18:00~19:00  저녁시간

19:00~21:00  네트워킹 




1. 오늘의 학습 키워드

*Dart 프로그래밍 강의 

1) Exception 클래스를 상속받아서 구현


- DefferedLoadExcption : 필요한 시점에 로드되도록 설정한 라이브러리가 로드되지 못했을 떄 

DefferedLoadExcption(String message) message - 예외에 대한 설명 써주면 됨


- FormatException : 데이터가 처리 가능한 형태가 아니어서 데이터를 처리하기 어려울때

FormatException([String message = “ “, dynamic source, int? offset]) 

message - 예외에 대한 설명, source = 예외가 발생한 원인


[예시]

String invalidNumber = "abc";

int result = int.parse(invalidNumber); 

//int.parse 문자열을 정수형으로 바꿔줌, 문자열을 정수로 바꿀 수 없으면 FormatException 발생


- IOException : 입출력 관련 동작을 하는 중에 발생하는 오류

IOException()


- FileSystemException : 파일에 접근할 수 없을 때 발생

[참고]

HttpException

ProcessException

SignalException

SocketException

StdoutException

TlsException

WebSocketException


- OSError : 운영체제 레벨에서 발생하는 오류, 운영체제로 부터 받은 오류에 대한 정보를 들고 있음

OSError([String message = “ “, int errorCode = noErrorCode])


Message에는 운영체제가 제공하는 예외에 대한 설명 들어감

errorCode에는 운영체제가 제공하는 오류코드 들어감


- TimeoutException : 비동기 결과를 기다리는 동안 특정시간이 초과되었을 때 발생

TimeoutException(String? Message, [Duration? duration])


Message : 시간 초과가 발생항 원인에 대한 설명

Duration : 초과된 시간


- Throw 예외를 발생시키는 것

Try catch 예외를 다룸


예외에 사용하는 키워드

목적에 따라 2가지로 나눔

발생한 예외를 처리하기 위한 경우 - try, catch, on, finally 사용


2) 
Void ~ return;

Int ~ return 5;

String ~ return ‘문자’;


3) 상속
implements와 extends 둘 다 부모클래스 받음.
전자는 여러개 받을 수 있고, 후자는 하나만 받음.
super.
@override

4) 메서드 : 클래스 내에 있는 함수

void main() {

  print('------------Idol-----------'); 

    Idol apink = Idol(name: '에이핑크', membersCount : 5);

  

    apink.sayName();

    apink.sayMembersCount();

  

  

  print('-----------BoyGroup---------');

    BoyGroup bts = BoyGroup('BTS', 7);

  

    bts.sayName();

    bts.sayMembersCount();

    bts.sayMale();


   

  print('-----------GirlGroup----------');

  

    GirlGroup redvelvet = GirlGroup('레드벨벳', 5);

  

   

    redvelvet.sayName();

    redvelvet.sayMembersCount();

    redvelvet.sayfemale();



  print('----------Type Comparison---------');

  

  print(apink is Idol);

  print(apink is BoyGroup);

  print(apink is GirlGroup);

}


 

// 부모클래스

class Idol{ 

  

  String name;

  int membersCount;

  

    

  Idol({

    required this.name,

    required this.membersCount,

  });

  

  void sayName(){

    print('저는 ${this.name}입니다.');

  }

  

  void sayMembersCount(){

    print('${this.name}은 ${this.membersCount}명의 멤버가 있습니다.');

  }  

 }

      


// 자식클래스1

 class BoyGroup extends Idol{

   BoyGroup(

    String name,

     int membersCount,

   ): super(

   name: name, 

   membersCount: membersCount,

   ); 

  

 

void sayMale(){

   print('저는 남자 아이돌입니다.');

   }

 }

 


// 자식클래스2  

 class GirlGroup extends Idol {

   GirlGroup(

    String name,

    int membersCount) 

     : super(

   name: name,

   membersCount: membersCount,

   );

   

   void sayfemale() { 

   print('저는 여자 아이돌입니다.');

   }

      

 }




2. 오늘 학습한 내용을 나만의 언어로 정리하기

*Dart 프로그래밍 강의 

클래스 안에 있는 함수는 메서드.
예외처리는 다트 프로그래밍 자체에 있는 것과 개발자가 지정할수도 있다.
생성자를 통해서 필요한 데이터를 불러온다.





3. 학습하며 겪었던 문제점 & 에러 - 문제&에러에 대한 정의 : 맞춤법 틀림, 코드 해석 순서의 갈피를 못잡음. 같은 단어가 반복될 때 어떤 속성으로 쓰인 것인지 명확하지 않았음. - 내가 한 시도 : 강의자료 예시문을 보면서 복습, 요약본강의로 복습, 튜터님께 질문
 - 해결 방법 : 맞춤법 오류 발견하여 수정, 코드해석 순서를 바로 잡음. 생성자에 대한 이해. - 새롭게 알게 된 점 : 코드해석 시 오른편이 우선이다. 특히 return 사용될 때, 오른편 먼저 해석하기.
 - 이 문제&에러를 다시 만나게 되었다면? : 맞춤법 오류 확인, 비슷한 예제문을 참고한다.



4. 내일 학습 할 것은 무엇인지
- Dart 강의 최대한듣기
- 스터디  17~18시
- 네트워킹  19~21시

댓글

이 블로그의 인기 게시물

내배캠15일차_map() reduce() fold()

내배캠16일차_Flutter_스토어 앱 만들기

내배캠 [3주차 WIL]