인스턴스 변수와 Java의 `new` 키워드: 완전 가이드
Source: Dev.to
인스턴스 변수
인스턴스 변수는 클래스 내부에 선언되지만 메서드, 생성자 또는 블록 밖에 위치합니다. 이는 클래스의 각 특정 객체(인스턴스)에 속하며, 각 객체가 자체 복사본을 갖게 됩니다.
- 클래스 내부에 선언되며 메서드 밖에 위치합니다.
- 각 객체는 별도의 복사본을 가집니다.
- 기본값을 받습니다 (
int는0, 객체는null,boolean은false). - 객체 레퍼런스를 통해 접근할 수 있습니다.
- 힙 메모리에 저장됩니다.
class Student {
int marks; // instance variable
void display() {
System.out.println("Marks: " + marks);
}
public static void main(String[] args) {
Student s1 = new Student();
Student s2 = new Student();
s1.marks = 85;
s2.marks = 90;
s1.display(); // Marks: 85
s2.display(); // Marks: 90
}
}
위 예제에서 marks는 인스턴스 변수입니다. 객체 s1과 s2는 각각 자신의 값을 유지합니다.
new 키워드
new 키워드는 클래스의 새로운 객체를 생성합니다. 사용될 때 Java는:
- 힙에 객체용 메모리를 할당합니다.
- 인스턴스 변수를 기본값으로 초기화합니다.
- 클래스 생성자를 호출합니다.
- 새로 생성된 객체에 대한 레퍼런스를 반환합니다.
Student s = new Student(); // creates a new Student object
Student– 클래스 이름.s– 새 객체를 가리키는 레퍼런스 변수.new Student()– 메모리를 할당하고 생성자를 호출합니다.
new를 인스턴스 변수와 함께 사용하기
인스턴스 변수는 new를 사용해 객체가 생성된 후에야 존재합니다. 객체가 없으면 접근할 수 없습니다.
Student s = new Student(); // object created
s.marks = 75; // instance variable accessed
요약
- 인스턴스 변수는 각 객체에 특화된 데이터를 저장하며 힙 메모리에 존재합니다.
new키워드는 해당 메모리를 할당하고, 변수를 초기화하며, 생성자를 호출하고, 객체에 대한 레퍼런스를 제공하는 역할을 합니다.
생성자, 상속, 전반적인 객체 지향 설계와 같은 보다 고급 Java 주제로 넘어가기 전에 이 기본 개념들을 이해하는 것이 필수적입니다.