객체 개념
객체의 구성은?
객체는 속성과 메시지로 구성되어 있다. 메시지를 받으면 그에 따른 처리를 한다.
-자동차 객체의 속성: 칼러, 속도
-자동차 객체의 메시지: 앞으로 달린다. 후진한다. 드래프트한다. 등
객체의 특성은?
사람이 '물건'으로 다른 것과 구별해서 인식할 수 있음
속성이 있음
다른 객체에 메시지를 보낼 수 있음
메시지를 받아 그에따른 처리를 함
메시지 처리는 객체의 메서드로 이루어짐
객체의 속성?
객체의 속성은 무엇을 나타내는가? 객체는 다른 객체를 참조해서 속성을 나타낸다. 속성을 나타내는 다른 객체의 참조 (포인터)를 저장한 장소가 인스턴스 변수이다. 또는 그냥 변수라고도 하고, 변수에서 참조할 수 있는 객체가 없는 상태를 널로 표현하기도 한다. 객체를 연결하려면 어떤 객체 변수에서 다른 객체를 참조해야 한다. 참조가 안된 객체에는 메시지를 보낼 수 없다. objective c 에서는 다른 객체를 참조하기 위한 변수를 아웃렛(outlet)이라고 부른다.
클래스란?
클래스는 개별적인 객체가 가진 정보나 지식의 공통점을 합쳐둔것이다. 자동차는 구조, 기본기능이나 운전방법은 동일하다. 개별적인 자동차 구조나 운전방법같은 내용은 생략하고 공통적 속성과 기능 부분만 추상화 할 수 있다. 이런 공통 부분을 하나의 개념으로 다루면 클래스가 된다.
객체 틀인 클래스에서 구체적인 객체를 만드는 것이 구체화 또는 인스턴스화이다. 그리고 클래스에서 구체화해서 만든 객체를 인스턴스 객체 또는 인스턴스라고 한다. 인스턴스에는 저마다 변수가 있고, 변수에는 서로 다른 객체를 참조하는 등 다양한 값이 들어 있다. 그래서 인스턴스가 가진 변수를 인스턴스 변수라고 한다. 인스턴스 변수 정의는 클래스에 모여 있지만 인스턴스 객체마다 서로 다른 값을 인스턴스 변수에 저장 할 수 있다. 인스턴스 객체는 클래스에서 작성한 메서드를 공유하며 인스턴스 마다 메서드를 정의 하지 않는다.
액체를 관리하는 클래스
액체를 관리하는 클래스를 만들어서 하나는 수온을 관리하는 객체를 만들고(구체화), 하나는 기름을 관리하는 객체를 만든다. 각각의 객체는 메소드는 같지만 인스턴스 변수의 내용(표시장치,히터, 온도 등)은 다르다. 수온과 기름의 최고온도, 최저온도는 다르고 센서나 히터는 각각 다른 객체를 참조한다. 객체지향 언어는 객체를 반드시 클래스 정의에서 인스턴스화해서 만들도록 정해져 있다.
'아이폰 개발 > Objective C' 카테고리의 다른 글
objective c 동적결합 (0) | 2020.12.26 |
---|---|
objective c 상속과 클래스 (0) | 2020.12.25 |
objective c 프로그램 (0) | 2020.12.25 |
2장 클래스 (0) | 2020.08.23 |
1장 객체지향으로의 항해 (0) | 2020.08.23 |