
다음 코드에서 Person 클래스를 정의하고 있고, 이 클래스에는 name과 age라는 두 개의 속성이 있습니다.
Personclass 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일 수 있습니다.