본문 바로가기
Java

Java - 생성자

by MoonGa 2023. 3. 21.

생성자

  • 인스턴스를 생성할 때 사용함.
  • 생성자는 메소드와 비슷하나 return 타입이 없음. 클래스 이름과 같아야함.
  • 어떤 값을 가지고 인스턴스가 만들어지게 하고 싶다면 생성자를 사용함.
  • 클래스 작성시, 생성자를 하나도 만들지 않았다면 자동으로 기본 생성자가 생성됨.
  • 기본생성자는 매개변수를 하나도 받지 않는 생성자를 뜻함.
  • 불변객체: 인스턴스가 만들어질 때 값을 넣어주고, getter 메소드만 가지고 있음, String class는 대표적인 불변객체, 
  • --> string이 가지고있는 모든 메소드는 string 내부의 값을 변화시키지 않음.

생성자 오버로딩

  • 생성자는 매개변수의 개수가 다르거나, 타입이 다르다면 여러개를 가질 수 있음.

자신의 생성자를 호출 할 때는 this()를 사용함.

  • this는 인스턴스 자기 자신을 참조할 때 사용하는 키워드.
  • this() 생성자는 자기 자신의 생성자를 말함.
  • this() 생성자는 생성자 안에서만 사용가능.
  • this() 생성자는 생성자 안에서 super()생성자를 호출하는 코드 다음이나, 첫번째 줄에 위치해야함.

부모 생성자를 호출할 때는 super()를 사용함.

  • 부모가 기본생성자가 없으면 자식의 생성자에서는 부모가 가지고 있는 생성자를 직접 super()를 이용해서 호출을 해야함.
  • super는 인스턴스 부모를 참조할 때 사용하는 키워드임.
  • super()생성자는 부모 생성자를 의미함.
  • super()생성자는 생성자 안에서만 사용가능
  • super()생성자는 생성자 안에서 첫번째 줄에만 올 수 있음.
  • 생성자는 무조건 super()생성자를 호출해야함. 사용자가 super()생성자를 호출하는 코드를 작성하지 않았다면 자동으로 부모의 기본 생성자가 호출됨.
  • 부모클래스가 기본 생성자를 가지고 있지 않다면, 사용자는 반드시 직접 super()생성자를 호출하는 코드를 작성해야힘.

 

'Java' 카테고리의 다른 글

Java - final클래스, 불변객체 String  (0) 2023.03.22
Java - 추상 클래스  (0) 2023.03.22
Java - 상속  (0) 2023.03.20
Java - 추상화, 다형성, 패키지  (0) 2023.03.18
Java - method, field  (0) 2023.03.18