본문 바로가기
버킷리스트/앱 만들기

오공완(with 코드팩토리) #18, #19 (getter, setter, inheritance)

by 또또도전 2024. 6. 25.
반응형

 

# 이곳에 쓴 내용은 앱 만들기라는 버킷리스트를 달성하기 위해 플러터를 공부하면서 정리하고 있는 내용입니다.

플러터에 대해 아는 것이 거의 없기 때문에 정리하면서 오류가 있을 수 있습니다.

오류를 발견하신 분은 댓글 남겨 주시면 감사하겠습니다.

 

  getter, setter

 

- getter는 값을 가져올 때, setter는 값을 변경할 때 사용

 

 

어느 순간부터 오류가 나오는 것이 일상이 되어 버렸다. 댓글을 보니깐 null safety 이전 영상이라서 그런다고.. 오류 코드를 보면 비슷한 내용이 나오는 것 같다. null 값을 가질 수 없다는..

코드팩토리님이 파라미터 안에 require키워드를 붙이거나 ?로 null이 될 수 있다는 표시를 하면 된다는데.. 이보시오~!!

난 퍼서 먹여줘도 못 먹는 사람이란 말이오~ 그냥 코드를 써 주시오~!! 최신 다트 언어를 배우려면 수강하라고 하는 거 같은데.. 책을 통해서 다시 배울 기회가 있기를..

 

프라이빗 변수. 언더스코어를 붙여서 표현함. 같은 파일 안에서만 프라이빗 변수를 사용할 수 있다고 함.

다른 파일 안에 존재하는 프라이빗 변수를 가져올 때 사용하는 것이 getter와 setter란다.

 

그냥 이런 게 있다는 정도만 알아두자.(아마도 잊어 버리겠지만..)

 

  inheritance

 

extends 상속할 때 사용(자식 클래스가 사용)

부모 클래스와 자식 클래스가 있음. 부모는 여러 개의 자식 클래스를 가질 수 있지만, 자식 클래스는 부모 클래스를 하나만 가질 수 있음. (현실과 비슷하네)

BoyGroup이 자식 클래스가 되고 Idol이 부모 클래스가 됨. 그래서 부모 클래스가 가지고 있는 모든 것을 상속받지만 부모는 자식클래스 내용을 상속받지 않음. 또, 자식끼리도 상속이 안됨.

super는 부모 클래스를 말함.

 

void main() {
 print('-------Idol------');
  
  Idol seulgi = new Idol(name:'슬기', group:'레드벨벳');
  
  seulgi.sayName();
  seulgi.sayGroup();
  
  print('-----BoyGroup-----');
  
  BoyGroup rm = new BoyGroup('RM', 'BTS');
  
  print(rm.name);
  print(rm.group);
  rm.sayMale();
  
  print('-----GirlGroup------');
  
  GirlGroup chorong = new GirlGroup('초롱', '에이핑크');
  
  print(chorong.name);
  chorong.sayFemale;
    
    
  }

class Idol{
  String name;
  String gruop;
  
  
  Idol({
    String name,
    String group,
  }) : this.name = name,
  this.group = group;
  
  void sayNmae(){
    print('저는 ${this.name}입니다.');
  }
  
  void sayGroup(){
    print('저는 ${this.group} 소속입니다.');
  }
}

class BoyGroup extends Idol{
  BoyGroup(
  String name,
  String group,
  ) : super(
    name: name,
    group: group,
  );
  
  void sayMale(){
    print('저는 남자아이돌입니다.');
  }
}

class GirlGroup extends Idol {
  GirlGroup(
    String name,
    String group,
    ) : super(
  name: name,
  group: group,);
  
  void sayFemale(){
    print('저는 걸그룹입니다.');
  }
}

어쨌거나 오늘은 여기까지~

반응형