1. Constructors(생성자)란?
생성자란 클래스의 인스턴스를 만드는 특별한 함수이다.
생성자 함수의 이름은 class의 이름과 같아야 한다!
class Student {
late String name; //late : 변수들의 값을 나중에 받아올 것을 의미
late int age;
Student(String name, int age) {
this.name = name;
this.age = age;
}
void callStudent() {
print("$age 살 $name 학생, 또 핸드폰 하는 거예요?")
}
}
2. main()에서 사용해보기!
void main() {
var student1 = Student("susu", 22);
} //console에 "22 살 susu 학생, 또 핸드폰 하는거예요?" 출력
3. 더 예쁜 코드로 만들기!
첫 번째 argument와 두 번째 arguement에 대해 this.를 붙여 지시해주면 끝!
이때, 순서가 변경되면 안된다는 점을 주의해야 한다!!
class Student {
final String name; //final : 사용자가 변수를 변경할 수 없게 함
int age;
Student(this.name, this.age);
void callStudent() {
print("$age 살 $name 학생, 또 핸드폰 하는 거예요?")
}
}
4. 순서가 헷갈린다면?
각 argument를 명명된 생성자로 바꿔주면 된다!
class Student {
final String name;
int age;
Student({this.name, this.age}); //여기 중괄호가 추가됨!
void callStudent() {
print("$age 살 $name 학생, 또 핸드폰 하는 거예요?")
}
}
void main() {
var student = Student(
//namde parameter 형식
name: "susu",
age: 22, //코드 포맷팅 용으로 끝에 ,를 붙여야 함
);
}
5. 아아 공습 경보 공습 경보!! 에러 발생 !!!!!
name과 age가 null이라면? 이라고 다트가 질문을 던져준다.
이에 대한 해결 방법은 두 가지가 있다.
1. 기본값 주기 (비추)
2. 앞에 required 붙여주기 (추)
class Student {
final String name;
int age;
Student({
required this.name,
required this.age, //여기도 끝에 ,붙이기!
});
void callStudent() {
print("$age 살 $name 학생, 또 핸드폰 하는 거예요?")
}
}
void main() {
var student = Student(
name: "susu",
age: 22,
);
}
2번 방법으로 required를 붙여주면 해결 완!
[참고]
'개발' 카테고리의 다른 글
[Flutter] 코딩셰프 조금 매운 맛 - 채팅앱 (0) | 2024.11.02 |
---|---|
[Flutter] 코딩셰프 조금 매운 맛 - 로그인과 주사위 게임 플러터 앱 만들기 (0) | 2024.11.02 |
[Flutter] Flutter 동작 방식 이해하기! (0) | 2024.08.23 |