■ Programming 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;
}
}
반응형