Java(폐지)/Java 공부
생성자(constructor)
kyeongjun-dev
2020. 7. 20. 13:03
생성자(Constructor)
클래스의 인스턴스, 즉 객체를 만들 때마다 new 키워드를 사용한다.
new 클래스명(); 이렇게 사용하는데, '클래스명()'도 함수이다.
반환값이 없고 클래스명과 같은 이름을 가진 메서드를 객체를 생성하는 메서드라고 해서 '객체 생성자 메서드'라고 한다.
생성자 규칙
- 반환값이 없다.
- 클래스명과 메소드명이 같다.
- 생성자를 작성하지 않으면, 컴파일과정에서 자바컴파일러가 알아서 아래의 코드처럼 기본 생성자를 만들어준다. 아무런 인자를 갖지 않는 생성자를 기본 생성자 메서드라고 한다.
package constructor01;
public class 동물 {
public 동물();
}
- 생성자를 이용한 인스턴스 생성
package constructor01;
public class 동물 {
private String name;
public 동물() {
System.out.println("기본 생성자");
}
public 동물(String name) {
this.name=name;
}
public void 이름말하기() {
System.out.println(this.name);
}
}
package constructor01;
public class 고양이 extends 동물{
public static void main(String[] args) {
동물 cat = new 동물();
cat.이름말하기();
동물 cat2 = new 동물("애옹이");
cat2.이름말하기();
}
}
- 실행 결과
기본 생성자
null
애옹이
생성자 주의할점
- 개발자가 생성자를 아무것도 만들지 않으면 자바컴파일러가 인자가 없는 기본 생성자를 자동으로 만들어준다.
- 인자가 있는 생성자를 하나라도 만들면, 자바컴파일러는 기본 생성자를 만들지 않는다.
-> 기본 생성자도 따로 만들어 주어야 한다.