Skip to content
On this page

다트 언어 배우기7 - 클래스 oop

클래스 oop

클래스 명은 첫자는 무조건 대문자

인스턴스화

void main() {
  Tree trees = new Tree(
      '소나무',
      100);

    print(trees.getName);
    trees.setName = '팽나무';

    print(trees.getName);
}


class Tree {
    String name;
    int age;

    Tree(this.name,this.age);

    String get getName {
      return this.name;
    }

    set setName(String name) {
      this.name = name;
    }
}

여기서 프라이빗을 선언하려면

_ 언더스코어를 넣게되면 된다.

class _Tree {
    String name;
    int age;

    _Tree(this.name,this.age);

    String get getName {
      return this.name;
    }

    set setName(String name) {
      this.name = name;
    }
}

이렇게 하면 같은 파일 내부에서만 쓸수있다.

상속소스코드

void main() {
  Tree trees = new Tree(
    name: 'hello',
    age : 100
  );

  trees.sayName();


  Sonamoo teum = Sonamoo(
  '튼튼이',
    120
  );
  teum.sayName();

}


class Tree {
   String name;
   int age;

   Tree({
     required this.name,
     required this.age
   });

  void sayName() {
    print ("${this.name}");
  }

}


class Sonamoo extends Tree {

  Sonamoo(
    String name,
    int age
  ) : super(
    name : name,
    age : age
  );

}

같은 자식 클래스 내부에 있는 메서드는 같은 다른 클래스에서 사용하지못한다.

예를들어서 sonamoo 클래스에서 나무 흔들기 메서드가 있다고 치자 그러면

tree 부모 클래스에서 적용해서 나무 클래스를 할당이 불가하다.

여기서 tree 클래스 를 파생한 오동나무 클래스에서 나무흔들기 메서드를 할당해서 쓴다해도 불가능하다.

꼭 부모 트리 클래스에서 나무 흔들기 메서드를 추가후에 상속 받은경우만 가능하다.

Video Label