Example
Student studentLee = new Student();
Explain
라는 코드에서 Student() 는 "생성자"를 의미한다.
그렇다면 public Student() { } 처럼 기본생성자를 넣어주어야하지만
코드에는 없어도 실행이 잘되는 것을 확인할 수 있다.
왜냐하면 자바 컴파일러가 자동적으로 추가해 실행해주기 때문인데,
자바 컴파일러는 클래스에 생성자가 하나도 없는 경우에 기본생성자를 알아서 추가해서 실행해주는 특징이 있다.
<기본 생성자>
* 특징
1. 매개변수가 없음
2. 하나의 클래스에는 반드시 적어도 하나 이상의 생성자가 존재해야함
3. 프로그래머가 따로 지정하지 않으면 컴파일러가 기본생성자를 자동으로 코드에 추가해줌
4. 만약 매개변수가 있는 생성자를 추가하게 된다면 기본생성자는 제공되지 않음
Question
Q1. 만약 생성자가 하나라도 있다면
A1. 컴파일러는 기본생성자를 제공해주지 않는다.
Q2. 생성자는 언제 활용할 수 있는지
A2. 예시를 들어 설명해보면
Student의 변수로 ID, address, grade 등 기본적인 특성은 가진채 생성되어야한다라고 가정하고싶으면
생성자를 이용한다.
example)
public Student(int id, String name) // 이 학생이 생성될땐 아이디와 이름이 무조건 넘어와야한다.
{
studentID = id;
studentName = name;
}
Q3. 생성자는 중복될 수 있는지
public Student() {}
public Student(int id, String name)
{
studentID = id;
studentName = name;
}
A3. 이 코드처럼 동일한 이름을 가진 생성자는 존재하지만 매개변수가 다르므로 가능하다.
= 이런경우를 '생성자 오버로딩' 이라고함
++
- 생성자는 반환타입이 없다.
- 생성자는 인스턴스를 초기화 할때의 명령어 집합을 말한다.
- 생성자의 이름은 그 클래스의 이름과 같다.
- 생성자는 메소드가 아니고, 상속되지 않으며, 반환값이 없다.
'Programming > Java_자바' 카테고리의 다른 글
[JAVA 기초] 상속과 다형성의 간단한 예제 (동물) (0) | 2021.12.25 |
---|---|
[JAVA 기초] 대중교통 이용 프로그램 만들기 (0) | 2021.12.08 |
[JAVA 기초] (2, 8, 10,16) 진수 별 표현 방식 및 출력 (0) | 2021.12.06 |
[JAVA 에센셜] 자바 코딩 연습_챕터4_실습문제 (0) | 2021.04.06 |
[JAVA 에센셜] 자바 코딩 연습_챕터3_실습문제 (0) | 2021.03.31 |