Framework/Flutter

Dart 기초 문법 - 클래스

IFLA 2024. 2. 8. 09:00

목차

    객체지향

    객체지향 프로그래밍은 수만 줄의 코드를 작성할 때 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);
    }

     

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

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