상세 컨텐츠

본문 제목

Flutter : 객체, 클래스, 인스턴스, 생성자

Coding 배우기

by haghiasophia 2023. 1. 15. 15:53

본문

강좌를 듣다보면 계속 반복되는 설명인데 잘 이해가 안되는 부분들이 많다.

 

유투브에서 플러터 강의를 이것저것 살피다 코딩세프님의 설명을 듣고 이해가 된 부분이 있어 정리한다.

이제까지 본 자료들은 class에 extends가 붙어 있어서 항상 짝으로 다니는 줄 알았더니 그게 아니었다.

 

클래스는 속성 property와 기능 method를 담고 있고,

클래스를 이용해서 인스턴스를 만드는 데 목적이 있었다.

 

아래 그림에서는 AutoMobile이라는 클래스가 carMaker/price/color/wheelNumber라는 속성properties을 갖고 있고

NewCar라는 클래스는 carMaker/price/color/wheelNumber라는 동일한 속성과, autoPark()라는 기능method을 갖고 있다.

 

이런 클래스를 각각 a1, n1이라는 이름의 인스턴스에 객체할당 한다.

AutoMobile a1 = Automobile():
Automobile 클래스로 a1이라고 부르는 새로운 인스턴스를 생성한다.

NewCar n1 = NewCar():
NewCar 클래스로 n1이라고 부르는 새로운 인스턴스를 생성한다.

 

속성의 출력 또는 함수method 호출은 인스턴스변수명하고 '.'을 찍은 후 필요한 속성/기능을 적는다.

 

객체
Object
필요에 따라 고민하고 정의해서 새롭게 만들어 내야 대상
클래스
Class
객체를 만들어 내기 위한 또는 설계도


Class 클래스명 {
속성 property : 클래스 내의 변수
기능 method  : 클래스 내의 함수
생성자 constructor : 클래스 명과 동일한 함수
}
인스턴스
Instance
클래스를 통해 만들어진 객체


AutoMobile a1 = Automobile():
Automobile
클래스로 a1이라고 부르는 새로운 인스턴스를 생성한다

NewCar n1 = NewCar():
NewCar 클래스로 n1이라고 부르는 새로운 인스턴스를 생성한다


인스턴스의 타입은 클래스의 이름을 사용
a1, n1 : 인스턴스 변수명
형식 : 객체타입 인스턴스 변수 = 객체할당
생성자
constructor
인스턴스 초기화 메소드
인스턴스에 원하는 특징과 개성을 부여하기 위한 것


멤버변수와 생성자 인자값의 변수명을 구분하기 위해 멤버변수 앞에 this라는 키워드를 붙여주고 점을 찍어줌 this.

생성자는 class명과 같은 method라고 해서 이게 무슨 말인가 했었다.

클래스가 인스턴스라는 객체를 만들기 위한 틀이라면, 인스턴스들마다 차별화가 되어야 하는 것일 것이고,

생성자 method를 통해 인스턴스들을 차별화한다는 거였다.

아래에서는 AutoMobile이라는 생성자가 만들어졌고, 속성으로 carMaker/price/color/wheelNumber를 요구하고 있다.

그래서 a1, a2라는 인스턴스를 만들려면 method를 할당할 때 속성 값을 넣어주어야만 한다.

 

그리고 this. 라는 것도 멤버변수와 생성자 인자값의 변수명을 구분하기 위해 멤버변수 앞에 붙여 사용한다.

 

 

'Coding 배우기' 카테고리의 다른 글

Widgets in Flutter  (0) 2023.01.20
Flutter : alignment  (0) 2023.01.08
Flutter : Dart 문법  (0) 2023.01.08

관련글 더보기