2023. 2. 24. 16:16ㆍ카테고리 없음
객체지향과 인스턴스
'객체'란 무엇일까?
현실세계에 존재하는 사물이나 개념.
초기에 Java 언어의 목적은 과학실험과 같은 현실세계의 구현이었다.
따라서 객체지향언어라는 것은, 현실세계를 반영하기위해 최적화된 언어인 것이다.
객체의 구현_ 클래스
java에서 객체를 구현하기 위해서 class를 이용한다.
객체는 정적인 속성(property)과 동적인 기능(function) 으로 구성된다.
따라서 클래스도 위와 같이 구성된다. 클래스에서는 이를 각각 멤버 변수(member variable) 과 메서드(method) 라고 한다.
* 테이블 예약을 받는 시스템을 구현해보자
멤버 변수로는 예약자 이름, 인원수, 할당될테이블번호 등의 정보가 필요할 것이다.
메서드는 예약자 이름을 확인하고, 메뉴판을 출력해주는 것으로 구성해보았다.
그렇다면 이 클래스는 메인 함수에서 어떻게 사용해 주어야 할까?
tableSales t1 = new tableSales() ;
이 코드는 한마디로 인스턴스를 만드는 코드라고 보면 된다.
일단 new 연산자가 무엇인지 알아야 한다. new 연산자는 힙메모리 공간에 클래스의 인스턴스를 할당하고, t1이라는 참조변수에 힙메모리 주소가 저장된다.
인스턴스란 설계도인 클래스에 의해 만들어진 독립적인 객체이다.
이 상태는 메모리영역에 공간만 할당되었을 뿐, 값이 초기화 된 상태는 아니다. 후에 살펴볼 '생성자'를 통해 값을 바로 초기화할 수 있다.
현재는 따로 생성자를 구현하지 않았기 때문에, 기본 생성자(default constructure)만이 사용된 상황이다. 메인함수에서 따로 값을 초기화해주어야 한다.
어쩄든, Class라는 설계도에 의해 객체(인스턴스)가 생성되었다.
tableSales t1 = new tableSales() ;
tableSales t2 = new tableSales();
인스턴스는 t1, t2 와 같은 독립적인 객체이고, 객체라는 단어는 이러한 인스턴스를 모두 포괄하는 용어인 것이다.