반응형
생성자 (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는 매개변수 생성자가 이미 있기 때문에 기본 생성자를 추가시켜주지 않았다. 그래서 기본 생성자를 직접 입력해주어야한다. |
반응형
'IT > JAVA' 카테고리의 다른 글
[JAVA/자바] 유효범위 - 전역변수, 지역변수 (0) | 2022.11.06 |
---|---|
[JAVA/자바] 객체지향 - 인스턴스, new, this (0) | 2022.11.06 |
[JAVA/자바] 인자와 매개변수의 차이 (0) | 2022.11.06 |
[JAVA/자바] toString() 과 String.valueOf()의 차이 (0) | 2022.11.06 |
[JAVA/자바] length, length(), size 의 사용법/차이 (0) | 2022.11.06 |
댓글