생성자(constructor)
- 객체가 생성될 때에 변수에게 초기값을 제공하고 필요한 초기화 절차를 실행하는 메서드
- 인스턴스 변수를 초기화하는것이 목적이다. 하나의 변수를 동시에 여러개의 값으로 초기화할 수 있다.
- 일반 객체르,ㄹ 생성하였을 경우에는 아무것도 없는 맨얼굴의 객체를 생성하는 것이고, 생성자를 사용하면 꾸며진 객체를 생성할 수 있고 또한 매개변수에 따라서 서로 다른 모양의 객체를 생성할 수 있다.
생성자의 특징
- 인스턴스가 생성될 때마다 호출되는 '인스턴스 변수의 초기화 메서드'
- 인스턴스 변수의 초기화 또는 인스턴스 생성시 실행할 작업에 사용
- 몇가지 조건을 제외하고는 메서드와 같다.
- 모든 클래스에는 반드시 하나 이상의 생성자가 있어야 한다.
- 생성자 역시 메서드처럼 클래스 안에 선언되고 구조도 메서드와 유사하지만, 리턴값이 없다는 점이 다르다. 리턴값이 없어도 void키워드는 사용하지 않는다.
생성자의 조건
- 생성자의 이름은 클래스의 이름과 같아야 한다.
- 생성자는 리턴값이 없다. 하지만 void를 쓰지 않는다.
클래스이름 (타입 변수명, 타입 변수명, ...) {
인스턴스 생성시 수행될 코드
주로 인스턴스 변수의 초기화 코드를 적는다.
}
↓↓↓
class Card {
Card() { //매개변수가 없는 생성자
인스턴스 초기화 작업
}
Card(String kind, int number) { //매개변수가 있는 생성자
인스턴스 초기화 작업
}
}
<생성자>
디폴트 생성자(default constructor)
- 매개변수가 없는 생성자
- 클래스에 생성자가 하나도 없으면 컴파일러가 기본 생성자를 추가한다.
( 생성자가 하나라도 있으면 컴파일러는 기본 생성자를 추가하지 않는다.)
형식 : 클래스이름() { }
//컬파일러에 의해 추가된 Card클래스의 기본생성자. 내용이 없다.
Card() { }
※ 모든 클래스에는 반드시 하나 이상의 생성자가 있어야 한다.
<디폴트 생성자 1>
<디폴트 생성자 2>
생성자가 하나라도 정의되어 있으면 디폴트 생성자는 만들어지지 않는다.
<디폴트 생성자 3>
매개변수가 있는 생성자
※ 인스턴스를 생성한 후 인스턴스 변수의 값을 변경하는 것보다, 매개변수를 있는 생성자를 사용하는 것이 코드를 보다 간결하고 직관적으로 만든다.
<매개변수 있는 생성자>
'Web Programming > java-jsp' 카테고리의 다른 글
java 제어자, static, final, 접근제어자 (0) | 2018.08.29 |
---|---|
java 생성자this, 참조변수this, 정적메서드 (0) | 2018.08.29 |
java 설정자와 접근자, 문자열 객체, String 클래스의 메서드 (0) | 2018.08.29 |
메서드, 인수, 매개변수, return문, 중복 메서드 (0) | 2018.08.29 |
java 클래스변수, 인스턴스변수, 접근지정자, 지역변수 (0) | 2018.08.29 |