본문 바로가기

카테고리 없음

Dart기초(2)-1

**출처 : 인프런 강좌 'Dart 언어 4시간만에 완전정복'의  2강 OOP 강의 내용을 정리한 script 입니다.

//OOP (객체지향 프로그래밍) 29분 
void main() {
//   1.
//   Fruit weRFruit = Fruit();
//   print(weRFruit.fruits);
//   2.
//     Fruit weRFruit = Fruit("딸기",["수박", "참외", "사과"]);
//     print(weRFruit.fruits);
  
//  3.
  Fruit theyRFruit = Fruit.namedConstructor(
  [
    ["사과","바나나"],"멜론"
  ]);
  print(theyRFruit.fruits);
  
//4. const 사용에 땨른 boolean값  
    Fruit usRFruit = Fruit("바나나",["멜론", "배"]);
    print(usRFruit.fruits);
    Fruit usRFruit2 = Fruit("바나나",["멜론", "배"]);
    print(usRFruit2.fruits);
    print(usRFruit.fruits ==usRFruit2.fruits); //false -usRFruit만 const를 사용해서

 //5.생성한 getter
    print(theyRFruit.firstFruit);
    print(usRFruit.firstFruit);
 //6.변경할 setter
    theyRFruit.firstFruit = '바나나';
    print(theyRFruit.firstFruit);
}


//1.class생성
// class Fruit {
//   String name = "딸기";
//   List<String> fruits = ["수박", "참외", "사과"];
//   void sayHello() {
//     print("안녕하세요 과일들입니다.");
//   }
//   void introduce() {
//     print('저희는 귀여운 과일리스트입니다.');
//   }
// }

// class Fruit {
//   final String name;
//   final List<String> fruits;
//   //2.class-constructor로 파라미터 받을 수 있음(클래스 안에)
//   //   Fruit(String name, List<String> fruits)
//   //       : this.name = name,
//   //         this.fruits = fruits;
//   //==
//    const Fruit(this.name,this.fruits);
//   //3.named constructor
//    Fruit.namedConstructor(List values):this.fruits = values[0], this.name = values[1];  
//   void sayHello() {
//     print("안녕하세요 ${this.name}입니다.");
//   }
//   void introduce() {
//     print('저희는 귀여운 과일리스트${this.fruits}입니다.');
//   }
// }

//5.getter(데이터를 가져올때)와 setter(데이터를 설정할때) => 일반함수와 다른점? : 뉘앙스 차이, 훨씬 간단한 로직일경우만 사용
class Fruit {
   String name;
   List<String> fruits;

   Fruit(this.name,this.fruits);
  //3.named constructor
   Fruit.namedConstructor(List values):this.fruits = values[0], this.name = values[1];  
  void sayHello() {
    print("안녕하세요 ${this.name}입니다.");
  }
  void introduce() {
    print('저희는 귀여운 과일리스트${this.fruits}입니다.');
  }
  //getter(get)
  String get firstFruit{
    return this.fruits[0];
  }
  //setter(set) - 파라미터 무조건 한개만
  set firstFruit(String name){
    this.fruits[0] = name;
  }
  //6.private속성 기능(변수 앞쪽에 언더스코어사용(_)) - 외부파일에서 내부파일 함수나 로직 import 하지 못하게하는 역할
 
}