티스토리 뷰

★ 객체 지향 이론

- 기본 개념은 ' 실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물간의 상호작용이다."

실제 세계를 컴퓨터 속에 옮겨 놓은 것과 같은 가상세계를 구현하고, 이 가상세계에서 모의실험을 함으로써 많은 시간과 비용을 절약할 수 있었다. 

 

★ 객체지향언어 특징

1. 코드의 재사용성이 높다.

2. 코드의 관리가 용이하다.

3.신뢰성이 높은 프로그래밍을 가능하게 한다.

 

 

★ 클래스란?

- 클래스란 ' 객체를 정의해 놓은 것' 또는 ' 객체의 설계도 또는 틀' 이다.

 

클래스의 정의 : 클래스란 객체를 정해놓은 것

클래스의 용도 : 클래스는 객체를 생성하는데 사용

 

★ 객체란?

- 객체란 ' 실제로 존재하는 것' 이다. 객체지향이론에서는 사물과 같은 유형적인 것 뿐 아니라. 개념이나 논리같은 무형적인 것도 포함된다.

 

객체의 정의 :  실제로 존재하는 것. 사물 또는 개념

객체의 용도 : 객체가 가지고 있는 기능과 속성에 따라 다름

 

유형의 객체 : 책상,의자, 자동차, Tv 와 같은 사물

무형의 객체 : 수학공식, 프로그렘 에러와 같은 논리와 개념

 

★ 객체와 인스턴스

인스턴스(instance) : 어떤 클래스로부터 만들어진 객체

인스턴스화 : 클래스로부터 객체를 만드는 과정

 

★ 객체의 구성 요소 - 속성과 기능

 

속성(property) : 멤버변수(member variable), 특성(attribute),  필드(field), 상태(state)

기능 (function) : 메서드(method) , 함수(function), 행위(behavior)

 

ex ) Tv의 속성과 기능

Tv의 속성 : 크기, 길이, 높이, 색상, 볼륨, 채널

Tv의 기능 : 켜기,끄기, 볼륨 높이기, 볼륨 낮추기, 채널 변경하기 등

 

 

★ 프로그래밍 관점에서 클래스의 정의와 의미

 

1. 클래스 - 데이터와 함수의 결합

 

* 변수 : 하나의 데이터를 저장할 수 있는 공간

* 배열 : 같은 종류의 여러 데이터를 하나의 집합으로 저장할 수 있는 공간

* 구조체 : 서로 관련된 여러 데이터를 종류에 관계없이 하나의 집합으로 저장할 수 있는 공간

* 클래스: 데이터와 함수의 결합 ( 구조체 + 함수 )

 

2. 클래스 - 사용자정의 타입(user-defined type)

 

* 프로그래머가 서로 관련된 변수들을 묶어서 하나의 타입으로 새로 추가하는 것을 사용자 정의 타입이라고 한다.