1. [객체지향] 클래스 (Class)
ㅇ 비슷한 특성을 가진 객체들을 그룹화시키는 틀 (객체의 틀,Template)
- 현실 세계(개념)을 쉽게 코드로 구현키 위해,
- 유사한 객체들에 대한 모델링/설계도/틀
2. [객체지향] 클래스에 의한 추상화
ㅇ `유사한 객체(Object)들의 집단`에 대한 표현/모델화/추상화
- 유사한 속성, 공통된 행위, 공통된 관계성, 공통된 의미를 갖음
* 하나의 클래스 유형으로, 여러가지 다른 객체가 보여질 수 있음
. 例) 나무라는 클래스에서 잣나무, 전나무 등의 객체들이 나타남
3. [객체지향] 클래스에 의한 추상자료형
ㅇ 클래스는, 자료 추상화(Data Abstraction)를 이루는 기초 임
- 즉, 추상 자료형(Abstract Data Type, ADT)을 구현하기 위한 가장 대표적인 방법 임
ㅇ 클래스 내 요소들이 서로 긴밀히 묶임
- 클래스 안에 데이터(속성)와 기능(메소드/함수)들이 함께 들어가고, 서로 긴밀히 묶임
- 즉, 캡슐화(Encapsulation)됨
ㅇ 클래스 간 독립적임 (때론, 느슨히 묶임)
- 한 모듈의 데이터 구조가 다른 부분에 영향을 주지 않게 함으로써,
- 프로그램의 각 부분들이 다른 부분에 영향을 주지않고,
- 독립성을 갖게하는 모듈화가 자연스럽게 이루어짐
4. [객체지향 프로그래밍] 클래스에 의한 프로그래밍
ㅇ 클래스
- 객체지향 소프트웨어 작성의 가장 기본적인 단위로써,
- 객체를 구현/기술하는 문법 임
ㅇ 클래스 단위의 프로그래밍
- 유지보수 및 재사용성이 좋게끔,
. 연관있는 함수 및 변수들을 모아, 클래스 단위화 함
ㅇ 결국, 객체지향 소프트웨어 작성이란,
- 클래스를 하나씩 만들어 추가해가는 과정으로 볼 수 있음
5. [객체지향 프로그래밍] 클래스 구성, 문법, 특징
ㅇ 클래스 내 구성 요소
- 속성/프로퍼티/필드 (Attribute/Property/Field)
. 구별짓는 모양새, 상태 등을 말함
. 다른 명칭 : 데이터 멤버, 멤버 변수, 클래스 변수, 필드 라고도 불리움
- 행위/동작/메소드 (Behavior/Method)
. 어떤 객체의 클래스가 자신 또는 다른 객체에게 할 수 있는 행동양식
. 객체에 대한 클래스 동작은 메소드(Method)라는 것을 사용하여 수행함
. 다른 명칭 : 멤버 함수, 멤버 메소드 라고도 불리움
ㅇ 클래스 선언 문법 例
class 클래스명 {
... // 프로퍼티 선언
... // 메소드 선언
}
ㅇ 클래스 특징
- 동일 클래스에 속한 객체들에 공통점을 줌
. 동일한 동작(같은 일을 수행)을 하며,
. 동일한 속성(객체 마다 다른 값)을 갖게 됨
- 클래스 개념의 추가적인 잇점으로,
. 추상데이터형 구현 이외에도 상속성과 다형성 개념도 지원함
6. [객체지향 프로그래밍] 클래스, 객체, 인스턴스 비교
ㅇ 클래스 : 비슷한 특성을 가진 객체들을 그룹화시키는 틀을 나타내는 추상적인 개념
ㅇ 객체 : 클래스의 속성에 따라 생성될 수 있는 것
ㅇ 인스턴스 : 클래스로부터 생성 가능한 객체가 실제 값을 갖고 구체적으로 실현된 것