본문 바로가기
Framework/Flutter

Dart 기초 문법 - 클래스

by IFLA 2024. 2. 8.

객체지향

객체지향 프로그래밍은 수만 줄의 코드를 작성할 때 main 함수에 다 작성할 수 없다. 유지보수 및 다른 개발자와 협업하기 위해선 변수와 메서드를 특정 클래스에 종속되게 코딩을 하게 된다. 클래스는 일종의 설계도로서 데이터가 보유할 속성과 기능을 정의하는 자료구조다.

 

- 인스턴스(Instance) : 클래스를 이용해서 객체를 선언하면 해당 객체를 클래스의 인스턴스라고 부른다.

- 인스턴스화(Instantiation) : 클래스에서 인스턴스(객체)를 생성하는 과정을 말한다.

 

소스 코드

// class 키워드를 입력 후 클래스명을 지정해 클래스를 선언한다.
class Iodl {
	// 클래스에 종속되는 변수를 지정할 수 있다.
	String name = 'BTS';
    
    // 클래스에 종속된느 함수를 지정할 수 있다.
    void sayName() {
    	print('저는 ${this.name}입니다.');
    }
}

 

 

생성자

생성자는 클래스의 인스턴스를 생성하는 메서드다. 생성자를 사용해서 앞의 예제를 이용할 수 있다.

 

소스코드

void main() {
	Idol idol = Idol('아이유');
    idol.sayName();
}

 

프라이빗 변수

다트에서 private 변수는 다른 언어와 약간 다르게 정의한다. _ 키워드를 이용해 사용할 메소느 내부나 클래스 내부에서 사용한다.

 

소스 코드

class Fruit {
	String _name;
    
    Fruit(this._name);
    
    // get 키워드를 사용해서 게터임을 명시한다.
    String get name {
    	return this._name;
    }
    
    // 세터는 set 이라는 키워들르 사용해서 선언한다.
    set name(String name) {
    	this._name = name;
    }
}

void main() {
	Fruit fruit = Fruit('apple');
    print(fruit.name);
}

 

- 게터는 말 그대로 값을 가져올 때 사용되고 세터는 값을 지정할 떄 사용된다.

- 가변 변수를 선언해도 직접 값을 가져오거나 지정할 수 있지만 어떤 값이 노출되고 어떤 형태로 노출될 지를 유연하게 정할 수 있다.

 

 

 

댓글


\