- 생성자의 핵심 개념과 기본 문법을 이해하고 사용할 수 있다.
- 생성자가 메서드와 구분되는 두 가지 차이를 이해하고 설명할 수 있다.
- 메서드 오버로딩이 생성자에서 어떻게 구현될 수 있는지 확인하고 이해할 수 있다.
- 기본 생성자와 매개변수가 있는 생성자의 차이를 설명할 수 있다.
- this와 this()의 차이에 대해 설명할 수 있다.
생성자(Constructor)
new 키워드(인스턴스생성을 담당)를 사용하여 객체를 생성할 때에 호출되는 것
객체를 생성하는 역할을 하는 클래스의 구성요소
인스턴스가 생성될때 호출된다
오버로딩이 가능하다
인스턴스 변수들을 초기화하는 특수한 메서드!
- 생성자의 이름은 클래스의 이름과 같아야 한다.
- 생성자는 리턴타입이 없다. (void를 쓰지않음 아예 리턴타입이 존재하지 않기때문)
class Car {
public String model;
public String color;
public Car(){} // 기본생성자. 생성자가 없는 경우 자동 생성
// 생성자 오버로딩
public Car(String model, String color) { // 매개변수가 있는 생성자
this.model = model;
this.color = color;
}
void power() {
System.out.println("시동을 걸었습니다.");
}
void accelerate() {
System.out.println("더 빠르게!");
}
void stop(){
System.out.println("멈춤");
}
}
기본 생성자(Default Constructor)
= 매개변수가 없는 생성자
모든 클래스에는 반드시 하나 이상의 생성자가 존재해야 한다
클래스 안에 하나도 없는 경우 자바가 기본생성자를 자동으로 추가해줌
이미 추가되어있는 경우는?? 추가된 생성자를 기본으로 사용
클래스명(){} //기본 생성자
DefaultConst(){} // 예시) DefaultConst 클래스의 기본 생성자
매개변수가 있는 생성자
매개변수를 통해 호출 시에 해당 값을 받아 인스턴스를 초기화 함
고유한 특성을 가진 인스턴스를 계속 만들어야 하는 경우 각기 다른 값을 가지고 초기화 할 수 있다
public class ConstructorExample {
public static void main(String[] args) {
Car c = new Car("Model X", "빨간색", 250); // Car 객체 생성 및 초기화
System.out.println("제 차는 " + c.getModelName() + "이고, 컬러는 " + c.getColor() + "입니다.");
}
}
class Car {
private String modelName; // 차 모델명을 저장하는 변수
private String color; // 차 색상을 저장하는 변수
private int maxSpeed; // 최대 속도를 저장하는 변수
public Car(String modelName, String color, int maxSpeed) { // 객체를 초기화하는 생성자
this.modelName = modelName; // 모델명 초기화
this.color = color; // 색상 초기화
this.maxSpeed = maxSpeed; // 최대 속도 초기화
}
public String getModelName() { // 모델명을 반환하는 메서드
return modelName;
}
public String getColor() { // 색상을 반환하는 메서드
return color;
}
}
}
//Output
제 차는 Model X이고, 컬러는 빨간색입니다.
this()
this() 메서드는 자신이 속한 클래스에서 다른 생성자를 호출하는 경우에 사용
- 생성자 내부에서만 사용
- 반드시 생성자의 첫줄에 위치
public class Test {
public static void main(String[] args) {
Example example = new Example();
Example example2 = new Example(5);
}
}
class Example {
public Example() {
System.out.println("Example의 기본 생성자 호출!");
};
public Example(int x) {
this();
System.out.println("Example의 두 번째 생성자 호출!");
}
}
//Output
Example의 기본 생성자 호출!
Example의 기본 생성자 호출!
Example의 두 번째 생성자 호출!
this 키워드
인스턴스 자기 자신을 가리킴
this를 통해서 인스턴스 자신의 변수에 접근할 수 있다
- 주로 인스턴스의 필드명과 지역변수를 구분하기 위한 용도로 사용
(메서드의 지역변수명이 필드명과 동일하게 구성되어있는게 많기 때문)
class Car {
private String modelName; //인스턴스변수
private String color;
private int maxSpeed;
public Car(String modelName, String color, int maxSpeed) { //생성자의 매개변수
this.modelName = modelName;
this.color = color;
this.maxSpeed = maxSpeed;
}
...
..
'개발공부🌷 > JAVA' 카테고리의 다른 글
JAVA 기초8 객체지향프로그래밍 심화 (0) | 2023.10.22 |
---|---|
JAVA 기초 7-1 객체지향프로그래밍 기초 (0) | 2023.10.19 |
JAVA 기초 6-1 객체지향프로그래밍 기초 (0) | 2023.10.18 |
JAVA 기초 6 객체지향프로그래밍 기초 (1) | 2023.10.18 |
JAVA 기초 5 (0) | 2023.10.16 |