본문 바로가기
Language/Java

생성자(Constructor)

by 태윤2 2020. 5. 28.
  • 생성자(Constructor)
  • Alt + Shift + S / O  생성자 자동 생성 단축키
  • 클래스를 사용하여 인스턴스를 생성할 때 호출되는 메서드 형태
  • 주로 인스턴스 변수를 초기화하는 용도 또는 인스턴스 생성 시 초기에 수행할 작업 기술
  • 기본생성자(Default 생성자)

 

  • 메서드와 차이점

 

  1. 선언부에 리턴 타입이 없음(리턴값이 없는게 아니라 리턴타입을 기술하지 않음)
  2. 생성자 이름이 클래스명과 동일함
  3. 개발자가 생성자를 하나도 정의하지않으면 컴파일러에 의해 자동으로 기본생성자 생성
  4. 단, 생성자를 하나라도 정의할 경우 기본 생성자는 자동 생성되지 않는다 
  5. 파라미터가 없는 생성자와 파라미터가 있는 생성자 모두 정의 가능(= 메서드와 동일)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//<생성자 정의 기본 문법>
 
//[접근제한자] 클래스명([파라미터변수선언..]){
 
//   생성자 호출시점(인스턴스 생성 시점) 에 수행할 작업들 (=인스턴스 변수 초기화 등)
 
//}
 
class Student{
    //클래스 내에서 별도의 생성자를 정의하지 않으면
    // 자바 컴파일러에 의해 기본으로 자동으로 생성된다
//    public Student() { // 기본 생성자 형태        
//    };
    
    // 직접 기본 생성자를 정의하여 인스턴스 변수를 초기화하는 경우
    
    public Student() {
        // 생성자 내에서 인스턴스 변수 초기화 가능함
        // => 인스턴스 생성 시 생성자가 호출되면 자동으로 초기화가 수행되므로
        // 모든 Student 클래스의 인스턴스는 시작 시 동일한 값을 갖는다.
        id = 20201111;
        name = "홍길동";
    }
    int id;
    String name;
    
}
cs

 

 

'Language > Java' 카테고리의 다른 글

this  (0) 2020.05.28
파라미터 생성자  (0) 2020.05.28
Pass by value & Pass by reference  (0) 2020.05.28
접근제한자 (Access Modifier = 접근제어자)  (0) 2020.05.28
가변인자  (0) 2020.05.27