static 으로 클래스를 생성할 경우
클래스명으로 바로 접근할 수 있다.
class S {
static int x = 10; // static 변수
static void show() { // static 메서드
System.out.println("Hello");
}
}
public class Main {
public static void main(String[] args) {
System.out.println(S.x); // ✅ 인스턴스 없이 사용 가능
S.show(); // ✅ 인스턴스 없이 호출 가능
}
}
인스턴스 변수 생성하면 (S s = new S(); 같이) 생성자가 한 번 실행된다.
(생성자 없을 경우 자동으로 아무 것도 없는 생성자가 실행 됨 public S () {} 이런 식)
-> 객체가 생성될 때 초기화 작업을 수행해야하기 때문
: 만약 생성자에서 명시적으로 초기화하는 코드가 없다면 정수형은 0, 문자형은 NULL 로 초기화 됨
** new 클래스명();을 호출하면 메모리에 객체가 할당됨
생성자가 실행 -> 인스턴스 변수 초기화
생성자 실행이 완료되면 객체 완성. 사용 준비 완료.
class S {
int x; // 인스턴스 변수
S() { // 생성자
System.out.println("생성자 실행!");
x = 10; // 인스턴스 변수 초기화
}
}
public class Main {
public static void main(String[] args) {
S s1 = new S(); // 객체 생성 → 생성자 실행
S s2 = new S(); // 또 다른 객체 생성 → 생성자 다시 실행
}
}
객체가 각각 생성되므로
생성자 실행! 이 두 번 출력
'웹 개발 > 개념 정리' 카테고리의 다른 글
| index.html 이란 무엇인가 ? (0) | 2025.05.12 |
|---|---|
| Spring annotation 정리 (0) | 2025.05.09 |
| Node.js (0) | 2025.03.26 |
| 데이터베이스 최적화 방법 (0) | 2025.03.26 |
| 소수 계산 √이용 (0) | 2025.03.25 |