자바의 객체와 클래스
•
객체는 설계도(class)를 바탕으로 생성된다.
•
클래스에는 객체를 생성하기 위한 필드와 메서드가 정의되어 있다.
•
클래스로부터 만들어진 객체를 해당 클래스의 인스턴스라고 하고, 클래스로 부터 객체를 만드는 과정을 인스턴스화라고 한다.
객체의 생성과 클래스 변수
클래스를 선언한 다음, 컴파일을 했다면 객체를 생성할 설계도가 만들어진다.
→ .class 파일이 만들어지면서 컴파일됨.
클래스로부터 객체를 생성하는 방법은 new 연산자를 사용한다.
new 클래스();
JavaScript
복사
이 new 연산자로 생성된 객체를 메모리의 heap영역에 생성이 된다.
메모리 내에서 객체의 위치를 알 수 있도록 new 연산자는 heap 영역에 객체를 생성 한 뒤에 객체의 주소를 반환한다.
생성된 객체의 이용
new 연산자가 반환한 주소를 참조 타입인 클래스 변수에 저장해 두면, 변수를 통해서 객체를 사용할 수 있다.
클래스 변수 = new 클래스();
JavaScript
복사
new 연산자로 객체를 생성하고 반환된 객체의 주소를 변수에 저장하면, 다음과 같이 변수가 객체를 참조하게 된다.
public class Car{
}
public class CarEX{
public static void main(String[] args){
Car car1 = new Car();
System.out.println("car1 변수가 Car 객체를 참조합니다.");
Car car2 = new Car();
System.out.println("car2 변수가 또 다른 Car 객체를 참조합니다.");
}
}
JavaScript
복사
위처럼 Car.class가 실행되면 다음과 같이 메모리에 클래스 변수와 객체가 생성이 된다.
Car 클래스는 하나지만, new 연산자를 사용한 만큼 객체가 메모리에 생성되며 이러한 객체들은 Car 클래스의 인스턴스들이다.
같은 클래스 “Car”에서 생성되었지만, car1, car2가 참조하는 Car 객체들은 완전히 서로 독립된 다른 객체들이다.
Car와 CarEx 클래스의 용도는 서로 다르다.