Loading...

Dart / / 2022. 5. 31. 12:41

Dart 클래스

반응형

 

class Dog {
  
  // 생성자로 값이 들어올 수도 있고, 안들어올 수도 있으니 null이 될 수도 있겠네 "?"
  // private로 만들고싶을 때 필드명 앞에 "_" 붙이기
  String? _name;
  int? _age;
  
  // 생성자
  Dog (this._name, this._age);
  
  String? getName () => _name;
  
  int? getAge () => _age;
}

void main() {
  Dog d = Dog("레르코", 10);
}

 

Function을 담을 때는 메서드 자체를 담기때문에 

Function aaa = () => "hello"; 이렇게 사용하는데

 

변수를 담을 때는

int a () => 2; 이렇게 담아준다.

 

다트는 오버로딩이 안된다.

 

대신 파이썬처럼 선택적 매개변수를 사용이 가능하다.

중괄호를 사용하면 선택적 매개변수를 쓸 수 있다.

 

컨트롤 + 스페이스 사용하면 어떤 매개변수를 넣어줄지 볼 수도 있다.

 

class Dog {
  
  // 생성자로 값이 들어올 수도 있고, 안들어올 수도 있으니 null이 될 수도 있겠네 "?"
  // private로 만들고싶을 때 필드명 앞에 "_" 붙이기
  String? name;
  int? age;
  
  // 생성자
  Dog ({this.name = "레르코", this.age = 1});
  
  String? getName () => name;
  
  int? getAge () => age;
}

void main() {
  Dog d1 = Dog(age: 10);
  Dog d2 = Dog(name: "안녕");
}

 

상속하는 방법도 자바와 동일하다.

 

abstract class Animal {
  
}

class Dog extends Animal {

}

 

추상메서드를 따로 지정해줄 필요 없이 구현되지 않은 메서드는 추상 메서드 취급한다.

 

 

나중에 sound 메서드를 호출하면 오버라이딩되어 Dog의 sound가 호출된다.

 

abstract class Animal {
  void sound();
}

class Dog extends Animal {
  
  // 생성자로 값이 들어올 수도 있고, 안들어올 수도 있으니 null이 될 수도 있겠네 "?"
  // private로 만들고싶을 때 필드명 앞에 "_" 붙이기
  String? name;
  int? age;
  
  // 생성자
  Dog ({this.name = "레르코", this.age = 1});
  
  String? getName () => name;
  
  int? getAge () => age;
  
  void sound() {}
}

void main() {
  Dog d1 = Dog(age: 10);
  Dog d2 = Dog(name: "안녕");
}

 

 

[출처]

 

https://cafe.naver.com/metacoding

 

메타코딩 : 네이버 카페

코린이들의 궁금증

cafe.naver.com

메타 코딩 유튜브

https://www.youtube.com/c/%EB%A9%94%ED%83%80%EC%BD%94%EB%94%A9

 

메타코딩

문의사항 : getinthere@naver.com 인스타그램 : https://www.instagram.com/meta4pm 깃헙 : https://github.com/codingspecialist 유료강좌 : https://www.easyupclass.com

www.youtube.com

 
반응형