리셋 되지 말자

생성자(constructor) 본문

Java(폐지)/Java 공부

생성자(constructor)

kyeongjun-dev 2020. 7. 20. 13:03

생성자(Constructor)


클래스의 인스턴스, 즉 객체를 만들 때마다 new 키워드를 사용한다.
new 클래스명(); 이렇게 사용하는데, '클래스명()'도 함수이다.
반환값이 없고 클래스명과 같은 이름을 가진 메서드를 객체를 생성하는 메서드라고 해서 '객체 생성자 메서드'라고 한다.

생성자 규칙

  1. 반환값이 없다.
  2. 클래스명과 메소드명이 같다.
  • 생성자를 작성하지 않으면, 컴파일과정에서 자바컴파일러가 알아서 아래의 코드처럼 기본 생성자를 만들어준다. 아무런 인자를 갖지 않는 생성자를 기본 생성자 메서드라고 한다.
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
애옹이


생성자 주의할점

  1. 개발자가 생성자를 아무것도 만들지 않으면 자바컴파일러가 인자가 없는 기본 생성자를 자동으로 만들어준다.
  2. 인자가 있는 생성자를 하나라도 만들면, 자바컴파일러는 기본 생성자를 만들지 않는다.
    -> 기본 생성자도 따로 만들어 주어야 한다.

'Java(폐지) > Java 공부' 카테고리의 다른 글

final 키워드  (0) 2020.07.20
클래스의 static 블록  (0) 2020.07.20
abstract 키워드 - 추상 메서드와 추상 클래스  (0) 2020.07.20
참조 변수의 복사  (0) 2020.07.20
다형성: 사용편의성  (0) 2020.07.17
Comments