클래스를 선언한 다음 컴파일을 했다면 객체를 생성할 설계도가 만들어진셈이다. 클래스로 부터 객체를 생성하는 방법은 다음과 같이 new연산자를 사용하면 된다.
new는 클래스로 부터 객체를 생성시키는 연산자이다. new 연산자 뒤에는 생성자가 오는데, 생성자는 클래스() 형태를 가지고 있다. new 연산자로 생성된 객체는 메모리 힙(heep)영역에 생성된다. 현실 세계에서 물건의 위치를 모르면 물건을 사용할수 없듯이, 객체 지향 프로그램에서도 메모리 내에서 생성된 객체의 위치를 모르면 객체를 사용할수 없다. 그래서 new 연산자는 힙영역에 객체를 생성시킨후 객체의 주소를 리턴하도록 되어 있다. 이 주소를 참조 타입인 클래스 변수에 저장해 두면 , 변수를 통해 객체를 사용할수 있다.
이코드가 실행되면 메모리에 클래스 변수와 객체가 생성되고 Car 클래스는 하나지만 new연산자를 사용한 만큼 객체가 메로리에 생성된다. 이러한 객체들은 Car 클래스의 인스턴스들이다. 비록 같은 클래스로부터 생성되었지만 각각의 Car객체는 자신만의 고유데이터고 메모리에서 활동하게 된다. car , car1 가 참조하는 Car 객체는 완전히 독립된 서로 다른 객체이다. 결과값 을 보면 알수 있다.
클래스의 용도에 대해 알아볼 필요가 있다. 클래스는 두가지 용도가 있다. 하나는 라이브러리 (API:ApplicationProgram Interface) 용이고 다른 하나는 실행용이다. 라이브러리 클래스는 다른클래스에서 이용할목적으로설계된다. 프로그램 전체 에서 사용되는 클래스가 100개라면 99개는 라이브러리 이고 단하나가 실행클래스이다. 실행 클래스는 프로그램의 실행 진입점인 main() 메소드를 제공하는 역할이다. Car 라이브러리 클래스이고 new연산를 선언한 클래스가 실행클래스이다.
'JAVA' 카테고리의 다른 글
클래스의 구성 멤버(생성자) (0) | 2020.11.11 |
---|---|
클래스의 구성 멤버(필드) (0) | 2020.11.10 |
객체와 클래스 (0) | 2020.11.10 |
Thread 생성 (0) | 2020.11.09 |
다형성(Polymorphism) (0) | 2020.11.09 |