웹 개발/개념 정리

생성자

cha430 2025. 3. 29. 03:44

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