ToBe끝판왕

[ JAVA ] 생성자 본문

■ 프로그래밍 SKILLS/JAVA

[ JAVA ] 생성자

업그레이드중 2022. 5. 17. 11:39
반응형

 


 

생성자( constructor )

▶  정의

•  인스턴스 초기화 메서드

•  클래스를 처음 만들때 멤버변수나 상수를 초기화 하는 것

•  new연산자로 클래스로부터 객체를 생성할때 호출되어 객체의 초기화 담당

•  모든클래스에는 반드시 하나 이상의 생성자가 있어야 한다.

 

▶  조건

•  생성자의 이름은 클래스의 이름과 같아야 한다.

•  생성자는 리턴값이 없다. ( 하지만 void는 쓰지 않는다. )

 

▶  기본생성자( default constructor )

•  매개변수가 없는 생성자

•  클래스에 생성자가 하나도 없으면 컴파일러가 기본 생성자를 추가한다.

기본생성자

ex)
public class Person {
  String name;
  float height;

  public Person(){}         // 디폴트 생성자 ( 컴파일러가 자동으로 생성 )
}

 

 

▶  생성자 선언

•  리턴타입이 없고 클래스 이름과 동일하다.

•  객체생성시 , 매개변수는 new 연산자로 생성자를 호출할 때 외부의 값을 생성자 블록 내부로전달하는 역할

public class Car {
	// 매개변수를 받기위한 생성자 선언
	public Car( String model, String color, int maxSpeed ) { } 
}

public static void main(String[] args) {
	// 객체 생성시 매개변수를 입력해서 호출
	Car mycar = new Car( "그랜저", "검정", 300 );
}

 

▶  this( )

•  생성자, 같은 클래스의 다른 생성자를 호출할 때 사용

•  다른 생성자 호출은 생성자의 첫 문장에서만 가능

class Car {
  String color;
  String gearType;
  int door;

  Car() {
   this( "white", "auto", "4" );    // 코드의 재사용성을 높임
 }
}

 

 

▶  참조변수 this

•  인스턴스 자신을 가리키는 참조변수 ( 예약어 / 인스턴스의 주소가 저장되어 있음 )

•  모든 인스턴스 메서드에 지역변수로 숨겨진채로 존재

class Car {
  String color;
  String gearType;
  int door;

  Car() {
   this( "white", "auto", "4" );    // 코드의 재사용성을 높임
  }

  Car( String color, String gearType, int door ) {
   // 인스턴스 변수와 지역변수를 구별하기 위해 참조변수 this 사용
   this.color = color;
   this.gearType = gearType;
   this.door = door;
  }
}

 

 

▶  생성자 오버로드( constructor overload )

•  생성자가 두개이상 제공되는 경우

•  필요에 따라 매개변수가 다른 생성자를 여러개 만들 수 있다.

생성자 예시

ex)
public class Person {
   String name;
   float height;
   float weight;

   public Person( ) {}                // 디폴트 생성자

   public Person( String pname ) {    // 이름을 매개변수로 입력받는 생성자
    name = pname;
   }

   public Person( String pname, float pheight, float pweight ) {

    // 이름, 키, 몸무게를 매개변수로 입력받는 생성자
    name = pname;
    height = pheight;
    weight = pweight;
   }
}

 

 

 

 

반응형
Comments