반응형
class Car {
private String modelName;
private int modelYear;
private String color;
private int maxSpeed;
private int currentSpeed;
}
위에 코드를 보자
memberId, itemName, itemPrice, discountPrice가 private으로 선언되어있다. 이렇게 선언된 멤버 변수는 클래스 내부에서만 직접 접근이 가능하며, 외부에서는 직접 접근할 수 없으므로 클래스의 캡슐화를 보장할 수 있다.
그렇기에 클래스 외부에서 객체를 생성하고 초기화하기 위해서는 생성자를 사용해야 한다. 생성자는 클래스의 인스턴스를 생성할 때 사용되는 특수한 메서드로, 객체의 초기 상태를 설정하는 역할을 한다.
생성자란?
생성자는 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메서드'이다. 따라서 인스턴스 변수의 초기화 작업에 주로 사용되며, 인스턴스 생성 시에 실행되어야 할 작업을 위해서도 사용된다.
생성자의 조건은 다음과 같다.
- 생성자의 이름은 클래스의 이름과 같아야 한다.
- 생성자는 리턴값이 없다.
생성자의 특징은 다음과 같다.
- 생성자는 반환값이 없지만, 반환 타입을 void형으로 선언하지 않는다.
- 생성자는 초기화를 위한 데이터를 인수로 전달받을 수 있다.
- 객체를 초기화하는 방법이 여러 개 존재할 경우에는 하나의 클래스가 여러 개의 생성자를 가질 수 있다. 즉, 생성자도 하나의 메소드이므로, 메소드 오버로딩이 가능하다는 의미한다.
class Car {
private String modelName;
private int modelYear;
private String color;
private int maxSpeed;
// 생성자
Car(String modelName, int modelYear, String color, int maxSpeed) {
this.modelName = modelName; // 전달받은 modelName으로 초기화
this.modelYear = modelYear; // 전달받은 modelYear로 초기화
this.color = color; // 전달받은 color로 초기화
this.maxSpeed = maxSpeed; // 전달받은 maxSpeed로 초기화
}
// Getter 메서드
public String getModel() {
return this.modelYear + "년식 " + this.modelName + " " + this.color;
}
}
public class Method02 {
public static void main(String[] args) {
Car myCar = new Car("아반떼", 2016, "흰색", 200); // Car 객체 생성과 동시에 생성자 호출
System.out.println(myCar.getModel()); // 모델 정보 출력
}
}
// 출력 결과 : 2016년식 아반떼 흰색
혹시 Getter 메서드가 생각이 안난다면 아래 링크의 사이트를 방문해서 복습해보세요 ㅎㅎ
화이팅 :)
2023.07.15 - [코딩/JAVA] - [JAVA] Getter와 Setter 개념과 사용방법
반응형
'코딩 > JAVA' 카테고리의 다른 글
Spring 공부하기 전 알아야하는 JAVA 기초 개념 (2탄) - 객체 지향 프로그래밍 (Object-Oriented Programming, OOP) (2) | 2023.08.06 |
---|---|
Spring 공부하기 전 알아야하는 JAVA 기초 개념 (1탄) (0) | 2023.08.06 |
[JAVA] Getter와 Setter 개념과 사용방법 (0) | 2023.07.15 |
[JAVA] DIP 개념과 추상화 (Abstraction) VS 구체화 (Instantiation) (0) | 2023.07.15 |
[JAVA] store.put(), store.get() 함수 (2) | 2023.07.15 |