본문 바로가기
IT/JAVA

[JAVA/자바] 생성자, 초기화

by 가아앗 2022. 11. 6.
반응형

생성자 (Constructor)

  • 인스턴스가 생성될 때마다 호출되는 '인스턴스 초기화 메소드'
  • 이름이 클래스 이름과 같아야 한다.
  • 반환값이 없음으로 리턴값이 없다. (void 안 붙임)
  • 모든 클래스는 반드시 생성자1개를 가져야 한다.

 

 

기본 생성자 

 클래스 이름 ( ) {  }
  • 매개변수가 없는 생성자.
  • 생성자가 하나도 없을때는 컴파일러가 자동으로 추가해 준다.

 

 

매개변수 생성자

클래스 이름 ( 타입 변수명, 타입 변수명, ''''''' ) {  }
  • 매개변수가 있는 생성자.
  • 인스턴스 생성 시 수행될 코드.

 


초기화

 

객체를 만들고 hour, minute, second의 자동초기화 값인 기본값 '0'에서

각각 12, 34, 56로 원하는 값을 처음으로 저장하는 것을 초기화라고한다.

 

 

 

 

생성자

 

위의 코드에서 생성자를 사용하여서 다음과 같이 간단하게 만들 수 있다.

( ) 안에 12, 34, 56를 인자값으로 넣어주어서 사용자의 불편함과 오류를 줄일 수 있다.


객체를 만들 때 반드시 필요한 값인 hour, minute, second를 사용자가 생성자에 그 절차를 포함시켜서 
반드시 해야 하는 일을 놓치지 않게 할 수 있다.


 

 

예제 )

 

 


왼쪽 코드에서 오류가 나는 이유?

new Data_2 ( )는 인자가 없는 ' 기본 생성자를 호출 '하는 코드이다.
Data_2에는 매개변수 생성자는 있지만 기본 생성자가 없다.


기본 생성자가 없기에 에러가 났다.

오른쪽 코드

class Data_1은 생성자가 하나도 없기 때문에 컴파일러가 자동으로 추가를 시켜주었다.

하지만  class Data_2는 매개변수 생성자가 이미 있기 때문에 기본 생성자를 추가시켜주지 않았다.

그래서 기본 생성자를 직접 입력해주어야한다.

 

반응형

댓글