객체의 정의
객체 지향 프로그래밍에서 데이터(특성)와 그 데이터에 관련되는 동작(절차, 방법, 기능 - 로직)이 결합된 것을 객체(object, instance)라 한다.
객체는 데이터와 로직을 묶어놓은 일종의 추상적인 '틀'인 클래스로부터 만들어진 복사본이며
한 클래스로부터 제각각 다른 객체들을 만들어 낼 수 있다.
같은 클래스로부터 만들어진 객체들은 같은 클래스라는 공통점만 가지고 있을 뿐
각각의 객체는 모두 다르다.
예를 들어, 사람의 경우 '인간' 이라는 공통적인 '클래스'를 가지고 있지만
각 '개인'이라는 '객체' 마다 가지고 있는 특성(성격,외모 등)은 모두 다르다.
객체 생성방법
JAVA에서는 객체를 New 연산자로 선언하고 생성한다.
Class 타입 변수명 = new 생성자 ();
new : new 연산자를 통해 객체를 저장할 메모리를 할당한다. 곧이어 생성자(constructor)를 호출하여 객체를 초기화한다.
생성자가 종료되면 new 연산자는 생성된 객체에 접근할 수 있도록 reference(객체에 대한 주소, 또는 식별자(identifier)) 를 반환한다.
생성자(constructor) : 객체 생성 시 객체를 초기화하고 heap에 저장하는 메소드이다, 생성자는 클래스명과 동일하며 종료할 때 값을 반환하지 않는다.(return 값이 존재하지 않음)
객체 생성 예
(Image라는 클래스를 정의했다고 가정)
Image타입 객체를 생성하고 img라는 변수에 레퍼런스(reference –c언어의 포인터에 해당)를 저장한다.
Image img = new Image();
객체의 생성과정
- new 연산자가 Image 객체가 저장될 메모리 공간 할당
- 생성자가 Image 객체를 초기화 후 종료
- new 연산자가 새로 생성된 객체의 주소(reference)를 img라는 변수에 저장
- img를 통해 해당 객체에 접근가능