생성자
모든 클래스는 인스턴스화 될때 생성자를 사용한다.
생성자의 특징
- 생성자는 리턴타입이 없다.
- 생성자를 프로그래머가 만들지 않으면 매개변수가 없는 생성자가 컴파일할 때 자동으로 만들어진다.
- 매개변수가 없는 생성자를 기본생성자라고 한다.
- 생성자를 하나라도 프로그래머가 만들었다면 기본생성자는 자동으로 만들어지지 않는다.
public class 클래스명{
타입 필드명;
public 클래스명(매개변수목록){ // method와 다르게 리턴타입을 갖고 있지 않다.
... //생성자 블록 -
}
public 리턴타입 메소드명(매개변수목록){...}
생성자의 역할
- 생성자가 하는 일은 객체가 될 때 필드를 초기화 하는 역할을 수행한다.
- 자동차가 객체가 될때 반드시 이름을 가지도록 하려면, Car클래스를 다음과 같이 만들어야 한다.
Car.java
package Java02;
public class Car {
// 타입 필드명
String name;
int number;
// 생성자 하는 만들어보자.
// 생성자가 하는 역할 - 객체가 될 때 필드를 초기화하는 역할을 수행
public Car(String n){
name = n;
}
}
CarExam.java ( 위의 Car 클래스를 이용하여 Car 인스턴스를 생성하는 방법)
package Java02;
public class CarExam {
public static void main(String[] args) {
// Car c1 = new Car(); // new 옆에 있는 Car();가 생성자 -- 컴파일오류
Car c2 = new Car("소방차");
Car c3 = new Car("구급차");
System.out.println(c2.name);
System.out.println(c3.name); // Car객체를 참조해서 생성
}
}
---> Car클래스는 기본 생성자를 가지지 않는다. 그래서 기본생성자로 Car 객체를 생성할 수 없다.
'PL(ProgrammingLanguage) > JAVA' 카테고리의 다른 글
[프로그래머스] 생성자 오버로딩 실습 (복습필요) (0) | 2021.10.09 |
---|---|
메소드 오버로딩 (0) | 2021.10.09 |
[프로그래머스]switch문 - 실습(1) (0) | 2021.10.09 |
2차원 배열(2 Dimensional Array) (0) | 2021.10.09 |
변수의 scope와 static (0) | 2021.10.04 |