Dart의 클래스
클래스 정의 및 인스턴스 생성
// 클래스 정의
class Robot {
String meterial;
String name;
int madeYear;
// 생성자
Robot(this.meterial, this.name, this.madeYear);
//메서드
void information() {
print('이 로봇의 이름은 $name이고, $meterial로 이루어져 있으며, $madeYear에 만들어졌습니다.');
}
}
void main(){
var ironRobot = Robot('iron', 'ironRobot', 2024);
ironRobot.information();
}
Robot이라는 Class를 만들었고, 이 Class는 생성할 때 meterial, name, madeYear을 받는다.
그리고 이 Robot의 메서드인 information을 실행시키면 information 메서드의 코드를 실행한다.
상속
부모 클래스에게 상속을 받으면 부모 클래스의 기능과 필요한 경우 속성과 메서드를 추가하거나 재정의 할 수 있다.
//클래스 정의
class Robot {
String meterial;
String name;
int madeYear;
// 생성자
Robot(this.meterial, this.name, this.madeYear);
void information() {
print('이 로봇의 이름은 $name이고, $meterial로 이루어져 있으며, $madeYear년에 만들어졌습니다.');
}
}
class DogRobot extends Robot {
int size = 0;
DogRobot(String meterial, String name, int madeYear, this.size) : super(meterial, name, madeYear);
@override
void information() {
super.information();
print('이 로봇의 사이즈는 $size입니다.');
}
void bark(){
print('왈왈');
}
}
void main(){
//인스턴스 생성
var bbebbe = DogRobot('Plastic','bbebbe',2024,50);
bbebbe.information();
bbebbe.bark();
}
새로운 키워드
extends : 상속을 받기 위한 키워드, A extends B는 A에게 B를 상속
super. : 부모 클래스에 있는 메서드, 속성, 변수를 호출
@override : 부모 클래스의 메서드를 재정의하겠다는 뜻
Getter와 Setter
Getter: 속성의 값을 읽을 때 사용하는 메서드
get 키워드를 사용하여 정의
Setter : 속성의 값을 설정 때 사용하는 메서드
set 키워드를 사용하여 정의
class information {
String _name;
String _gender;
int _age;
information(this._name, this._gender, this._age);
//getter
String get name => _name;
//setter
set name(String newName) {
if (newName.length > 3) {
_name = newName;
}
else{
print('이름이 너무 짧습니다.');
}
}
String get gender => _gender;
set gender(String newGender) {
if(gender == 'male' && gender == 'female'){
_gender = newGender;
}
else{
print('올바른 성별을 선택해주세요');
}
}
int get age => _age;
set age(int newAge){
if(newAge > 0){
_age = newAge;
}
else{
print('올바른 나이를 입력해주세요');
}
}
void info(){
print('이름 : $_name');
print('성별 : $_gender');
print('나이 : $_age');
}
}
void main(){
var kim = information('minsu','male',20);
kim.info();
kim.name = 'me'; // 이름이 짧습니다. 출력
}
결과:
'Dart > Flutter' 카테고리의 다른 글
Flutter로 앱 만들기 - 10. MaterialApp의 위젯 정리 (0) | 2024.06.22 |
---|---|
Flutter로 앱 만들기 - 9. Dart 비동기 (1) | 2024.06.21 |
Flutter로 앱 만들기 - 7. Dart의 함수 (1) | 2024.06.20 |
Flutter로 앱 만들기 - 6. Dart의 기본 문법 정리 (0) | 2024.06.20 |
Flutter로 앱 만들기 - 5. main.dart의 기초 구조 (0) | 2024.06.17 |