먼저, 약간의 설명을 곁들이자면
객체지향이론을 실제 세계의 사물(객체)들을 그대로 옮겨놓은 것이라고 이해하는 편이 가장 쉽다.
예를 들어, 지금 보고 있는 핸드폰, 노트북 등을 모두 객체라고 할 수 있다.
그 객체들은 끊임없는 상호작용 속에서 발생한다.
객체 > (인스턴스) > 클래스
이 세 가지(객체, 인스턴스, 클래스)의 관계를 위와 같은 포함관계로 나타낼 수 있다.(인스턴스를 괄호 친 이유는 조금 이따 이해될 것이다.)
객체란 "실제로 존재하는 것" 이다
클래스란 " 객체를 정의해 놓은 것" or "객체의 설계도면"이다.
객체와 클래스의 관계를 실생활 속에서 예를 들면 다음과 같다.
Object(객체) | Class(클래스) |
TV | TV설계도 |
인스턴스란 "클래스로부터 만들어진 객체를 그 클래스의 인스턴스라고 한다."
위와 같이 인스턴스는 의미 자체가 관계 속에서 발견된다.
그렇다면 인스턴스화 라는 말도 사용하는데 "클래스로부터 객체를 만들어가는 과정"이라고 할 수 있겠다.
그래서 객체라는거야 인스턴스라는거야? 라는 생각이 들 것이다.
이제 포함관계를 살펴보자.
인스턴스는 객체와 같은 의미이긴 하지만, 객체가 모든 인스턴스를 대표하는 포괄적인 의미를 갖고 있다.
그래서 위의 포함관계에서 인스턴스에 괄호를 쳐 놓은 것이다.
**남궁성님의 자바의 정석을 공부하면서 정리한 것입니다.
'IT > JAVA' 카테고리의 다른 글
[JAVA] print, println, printf의 구분 (0) | 2021.02.11 |
---|---|
[C와 JAVA] JAVA는 포인터가 없다? (0) | 2021.02.10 |
[JAVA] 자바 - 2차원 배열 길이 length (1) | 2021.02.09 |
[JAVA] 자바 - 가변배열 - 2차원 배열 (0) | 2021.02.09 |
[JAVA] 자바 - Math.random() 으로 로또 만들기 (0) | 2021.02.08 |