다음 코드에서 Person
클래스를 정의하고 있고, 이 클래스에는 name
과 age
라는 두 개의 속성이 있습니다.
Person
class Person {
String name;
int? age;
Person({
required this.name,
this.age,
});
}
String name
: 문자열 타입의 name
속성을 나타냅니다. 이 속성은 non-nullable이므로 값을 반드시 제공해야 합니다.int? age
: nullable integer 타입의 age
속성을 나타냅니다. 이 속성은 nullable이기 때문에 값을 제공하지 않아도 되며, 기본적으로 null
이 됩니다.Person
생성자: Person
객체를 만들 때 사용되는 생성자입니다. name
은 필수(named parameter)로 설정되어 있어 반드시 값을 제공해야 하지만, age
는 선택 사항입니다.main
함수와 객체 생성void main() {
var person = Person(name: 'Joe');
print(person.name);
}
main
함수에서는 Person
클래스의 인스턴스를 생성하고 있습니다. name
으로 'Joe'를 전달하고 있으며, age
는 전달하지 않았기 때문에 null
이 됩니다.print(person.name);
: 생성된 person
객체의 name
속성을 출력합니다. 출력 결과는 "Joe"가 됩니다.name
속성은 non-nullable이므로 객체를 생성할 때 반드시 값을 제공해야 합니다.age
속성은 nullable이므로 값을 제공하지 않아도 됩니다. 값을 제공하지 않으면 기본적으로 null
이 됩니다.이 코드의 핵심은 Dart에서 nullable과 non-nullable 타입을 어떻게 사용하고 정의하는지를 보여주는 것입니다. Non-nullable 타입은 항상 값을 가지고 있어야 하며, nullable 타입은 값이 null
일 수 있습니다.