[dart] dart와 OOP(Object-Oriented Programming)개념정리
CLASS
CLASS란
- 다트 = 모든 것이 객체 (완전 객체 지향 언어)
- 모든 객체 = 인스턴스of 클래스
- 모든 클래스는 = 자식 of Object 클래스 (붕어빵, 붕어빵틀, 여러가지 맛의 붕어빵들을 생각하자!)
- 클래스는 멤버를 갖는데, 멤버 함수(메서드)와 멤버 변수(인스턴스 변수)로 구성됨.
- 클래스를 사용하려면 객체를 생성해야 하는데,
- 객체를 생성한다는 것은 클래스가 메모리에 올라간다는 의미이고,
- 이것을 인스턴스화라고 부름.
- 이렇게 메모리에 클래스가 할당되어 인스턴스가 된 것을 객체라고 함!
Function
: 클래스 외부에서 하나의 기능을 하는 함수.
Method
: 클래스 내부에 있는 멤버 함수.
멤버 변수
는 객체가 생성되면 인스턴스 변수
라 함.
CLASS의 기본 형태
main() {
var student = new Person();
var teacher = Person();
}
/* class 클래스명 {
멤버 변수
멤버 함수
} */
class Person {
String name;
int age;
getName() {
return name;
}
}
객체 생성시 new
키워드는 생략해도 무관함.
main() {
Person student = Person(); // var student = new Person(); 도 되지만 타입 지정 습관화!
Person teacher = Person();
student.name = 'CHA';
teacher.name = 'PARK';
print('학생 이름 = ${student.getName()}');
print('선생님 이름 = ${teacher.getName()}');
}
/* class 클래스명 {
멤버 변수
멤버 함수
} */
class Person {
String name;
int age;
getName() {
return name;
}
}
// 학생 이름 = CHA
// 선생님 이름 = PARK
객체지향 프로그래밍(Object-Oriented Programming)
- 변수와 함수를 하나의 주머니에 담아두는 곳이다.
- class 안의 함수를 method 라고 한다.
- 예를 들어
- Person 이라는 주머니에는 사람에 연관된 변수와 함수들이 있다.
- Person 클래스라고 정의를 하고
- 클래스 안에는 그 사람의 이름과 나이가 있고
- 그런 데이터 타입들은 변수로 정의를 한다.
- 그리고 잔다거나 일하는 행동들은 함수로 정의를 한다.
- 예를 들어
- 코딩을 하다보면 코드가 복잡해지고 길어지는데
- 이럴 때 우리는 어떤 변수와 함수를 사용할지 힘들어진다.
- 그럴 때, 클래스를 만들어 주면
- 아~ 저런 함수 이런 변수는 저 클래스에 있었지!
- 라고 머릿속에 이미지화해서 코딩을 좀 더 쉽게 할 수 있다.*
- 이런 코딩 방법을 객체지향 프로그래밍이라고 한다.
출처:진주블로그