AR삽질러

Dart 기초 - 클래스, 생성자 (3) 본문

Dart

Dart 기초 - 클래스, 생성자 (3)

아랑팡팡 2024. 4. 25. 12:23
728x90

 

Dart 기초 - 클래스, 생성자 (3)

 

1. Class 클래스

 - class는 객체를 만들기위한 템플릿으로 class를 활용해 데이터와 코드를 그룹화해 관련된 코드를 유지하고 복잡한 문제를 관리 및 재사용성, 유지보수성을 높이는데 효율적이다.

 

Class의 구성요소
Fields 클래스 내에 선언된 변수들로 객체의 상태나 특성을 저장해 각 인스턴스마다 고유값을 가질 수 있다.
Methods 클래스에서 정의된 함수로 객체가 수행할 수 있는 행동으로 데이터 조작, 계산 등의 결과를 수행하고 반환한다.
Constructor 클래스에서 객체를 생성할때 호출되는 메서드로 생성자는 객체의 초기상태를 설정해 사용한다.
Getters
Setters
필드에 접근을 제어하는 메서드로 getter는 필드의 값을 반환하고 setter는 필드의 값을 설정한다.
Inheritance 클래스가 다른 클래스의 필드나 메서드를 상속받을 수 있다. 해당 상속을 통해서 기존의 코드를 재사용하고 확장할 수 있다.

 

void main(){
  Point point = Point(3, 3);
  print(point);
  print(point.x);
  print(point.y);
  
  Point aPoint = Point(2, 5);
  print(aPoint.x);
  print(aPoint.y);
  Point bPoint = Point(3, 10);
  print(bPoint.x);
  print(bPoint.y);
}

class Point{
  double? x;
  double? y;
  
  Point(this.x, this.y);
}

 

2. Constructor 생성자

 - 생성자는 클래스의 인스턴스를 생성하고 초기화하는 함수로 클래스 명을 사용하여 다양한 형태로 정의 가능하다.

 

Default Constructors 기본생성자 

 - 매개변수가 없는 생성자로 클래스 내에서 명시적으로 정의하지 않았다면 컴파일러가 자동으로 제공하여 매개변수가 없는 기본 생성자를 만든다.

class Car{
	Car(){
    	print("이것은 디폴트 생성자");
    }
}

 

Redirecting Constructors 리다이렉팅 생성자

 - 목적이 동일한 생성자로 생성자의 본문은 비어 있지만 전달 된 생성자에 대한 초기값 등을 구현할 때 활용한다.

class Car{
	String model;
    int year;
    
    Car(this.model, this.year);
    Car.namedConstructor(String model) : this(model, 2024);
}

 

Named Constructors 이름이 있는 생성자

 - 이름이 있는 생성자는 클래스에 여러 옵션을 제공한다.

class Car{
	String model;
    int year;
    Car(this.model, this.year);
    Car.named(String model){
    	this.model = model;
        this.year = DateTime().now().year;
    }
}

 

Const Constructors 상수 생성자

 - 컴파일 시점에서 상수로 선언된 객체를 생성하며 모든 필드는 final이어야 한다.

class Num{
	final int x, y;
    const Num(this.x, this.y);
}

 

Factory Constructors 팩토리 생성자

 - 생성자가 새로운 객체의 인스턴스를 반환하지 않도록 한다.

class Num {
	static Num? _instance;
    Num._instance();
    factory Signleton(){
    	return _instance ??= Singleton._internal();
    }
}

 

 

 

728x90
반응형
LIST

'Dart' 카테고리의 다른 글

Dart 기초 - 분기문 (5)  (2) 2024.04.26
Dart 기초 - 함수와 메서드 (4)  (0) 2024.04.26
Dart 기초 - 연산자 (2)  (0) 2024.04.24
Dart 기초 - 변수와 타입 (1)  (0) 2024.04.24
Dart 기초 - Dart와 Flutter (0)  (0) 2024.04.24