Web develop/JAVA

[JAVA] 자바클래스 생성자(Constructor)

ForA 2019. 4. 21. 13:52
728x90

생성자 (Constructor)

: 새로운 객체를 생성하기 위해서 초기화해주는 메소드

  1. 생성자의 이름은 반드시 클래스명과 일치해야한다.(대소문자 일치)

  2. void를 포함한 리턴자료형을 명시하지 않는다.

  3. 객체 생성시 자동으로 호출된다.

  4. 클래스 내에 생성자가 하나도 없다면 자바 컴파일러가 컴파일시 자동으로 기본생성자를 추가

  5. 주의) 만약 클래스 내에 한 개 이상의 생성자가 정의 되어 있다면 컴파일러는 생성자를 자동추가하지 않는다.

    class Abc {  
    int su;  
    My my;
    
    Abc(){ //기본생성자(매개변수 비어있는 생성자), 초기화(값 할당) 메소드
       // 멤버필드에 대한 초기화 작업
    su = 10;
    my = new My();
    }//생성자
    
    Abc(String name){ //오버로딩 생성자
    
    }
    
    ABc(int age){
    //--> 컴파일 에러발생. 
          //클래스명과 일치하지 않으므로 리턴자료형을 사용하여 일반 메소드로 사용해야함.
    }
    
    void hello() {
    
    } }//class Abc
    
    Abc a = new Abc();
           //기본생성자 호출
    
    a.hello();
    
    Abc a2 = new Abc("길동");
           //오버로딩생성자 호출
    
    a2.hello();