class
class의 개념
class Dog {
var name = "재롱이";
var age = 11;
var color = "하얀색";
}
1. dart의 모든 것들은 1급 객체입니다.
- 1급 객체라면 함수의 파라미터로 전달될 수 있어야 합니다.
2. class는 여러가지 데이터를 저장할 수 있다.
- 클래스는 아래와 같은 형태이며 클래스에는 여러 개의 변수를 담을 수 있습니다.
- 여러 가지 데이터를 담기 위해서는 클래스를 사용해야 합니다.
- class의 변수들은 클래스를 표현하는 데이터로 프로퍼티 or 속성이라 합니다.
3. class는 메모리에 뜨지 않는다.
4. class는 개발자가 직접 메모리에 올려야 합니다.
// 클래스
// 1. dart의 모든 것들은 1급 객체입니다.
// 1급 객체라면 함수의 파라미터로 전달될 수 있어야 합니다.
// 2. class는 여러가지 데이터를 저장할 수 있다.
// 클래스는 아래와 같은 형태이며 클래스에는 여러 개의 변수를 담을 수 있습니다.
// 여러 가지 데이터를 담기 위해서는 클래스를 사용해야 합니다.
// 3. class는 메모리에 뜨지 않는다.(자동으로 메모리에 뜨지 않습니다)
// 4. class는 개발자가 직접 메모리에 올려야 합니다.
// class는 Object라고 부릅니다.
class Dog {
// 아래 변수들은 클래스를 표현하는 데이터로 프로퍼티 or 속성이라 합니다.
var name = "재롱이";
var age = 11;
var color = "하얀색";
void sound(){
print("멍멍");
}
}
// main( )이 실행되기 전부터 메모리에 뜨므로 찾을 수 있음
var name = 10;
main(){
// new가 됐다는 것은 메모리에 로드됐다는 뜻입니다.
// 메모리에 로드된 Object를 인스턴스라고 부릅니다.
Dog dog1 = new Dog();
print(dog1.name);
dog1.sound();
Dog dog2 = new Dog();
Dog dog3 = new Dog();
Dog dog4 = new Dog();
}
class의 특징
캐스케이드 연산자( .. )
..(캐스케이드 연산자)를 사용하면 메모리에 띄움과 동시에 함수를 호출시킬 수 있습니다.
인스턴스를 만들 때 케스케이드 연산자를 사용 가능
// dart의 class 특징
class Animal {
void hello(){
name = "식물";
}
var name = "동물";
}
class User {
var id;
var name;
var phone;
}
main(){
// ..(캐스케이드 연산자)를 사용하면 메모리에 띄움과 동시에 함수를 호출시킬 수 있습니다.
Animal animal1 = new Animal()..hello();
print(animal1.name);
Animal animal2 = new Animal()..name = "사자";
print(animal2.name);
// 인스턴스를 만들 때 케스케이드 연산자를 사용 가능
User user = new User()
..id = 1
..name = "김독자"
..phone = "01012345678";
print(user.id);
print(user.name);
print(user.phone);
}
오버로딩 불가능
// dart의 class 특징
class Animal {
void hello(){
name = "식물";
}
var name = "동물";
}
class User {
var id;
var name;
var phone;
User(){
id = 2;
}
// 오버로딩 불가능
// User(var name) {
//
// }
// 이름이 있는 생성자
User.second(){
id = 5;
name = "유중혁";
phone = "01023456789";
}
}
main(){
// ..(캐스케이드 연산자)를 사용하면 메모리에 띄움과 동시에 함수를 호출시킬 수 있습니다.
Animal animal1 = new Animal()..hello();
print(animal1.name);
Animal animal2 = new Animal()..name = "사자";
print(animal2.name);
// 케스케이드 연산자
User user = new User()
..id = 1
..name = "김독자"
..phone = "01012345678";
print(user.id);
print(user.name);
print(user.phone);
User user2 = new User.second();
print(user2.name);
}
생성자를 추가적으로 따로 선언해서 사용해야함