반응형
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
반응형