Java
220109 혼자공부하는자바 Ch6~ 모르는 부분 리마인드
행인데어
2022. 1. 11. 23:51
Chapter6. 클래스
06-1) 객체 지향 프로그래밍
클래스 변수 = new 클래스( );
06-3) 생성자
생성자 선언
필드 초기화
클래스로부터 객체가 생성될 때, 필드는 기본 초기값으로 자동 설정됨
다른 값으로 초기화하고 싶다면
1) 필드를 선언할 때 초기값을 주는 방법
2) 생성자에서 초기값을 주는 방법
06-4) 메소드
생성자 선언
필드 초기화
클래스로부터 객체가 생성될 때, 필드는 기본 초기값으로 자동 설정됨
다른 값으로 초기화하고 싶다면
1) 필드를 선언할 때 초기값을 주는 방법
public class Korean {
String nation = "대한민국"; //Korean클래스에 nation필드를 선언하면서 "대한민국"으로 초기값을 줌
String name;
String ssn;
}
Korean K1 = new Korean();
Korean K2 = new Korean();
//Korean클래스로부터 k1, k2 객체를 생성하면서 k1, k1객체의 nation 필드에는 모두 "대한민국"이 저장됨
2) 생성자에서 초기값을 주는 방법
객체 생성 시점에 외부에서 제공되는 다양한 값들로 초기화되어야 한다면 생성자에서 초기화해야 함
public class Korean {
//필드
String nation = "대한민국";
String name;
String ssn;
//생성자
public Korean(String n, String s) {
name = n;
ssn = s;
}
}
객체 생성 후 필드값 출력
Korean k1 = new Korean("박자바","011225-1234567");
Korean k2 = new Korean("김자바","930505-1234567");
생성자 오버로딩
- 개념: 매개 변수를 달리하는 생성자를 여러 개 선언하는 것
//생성자1
Car() {
}
//생성자2
Car(String model) {
this.model = model;
}
//생성자3
Car(String model, String color) {
this.model = model;
this.color = color;
}
다른 생성자 호출: this()
- 개념: 필드 초기화 내용은 한 생성자에서만 집중적으로 작성하고, 나머지 생성자는 초기화 내용을 가지고 있는 생성자를 호출해서, 생성자 간의 중복된 코드를 줄임
- this()는 반드시 생성자 첫 줄에서만 허용
다른 생성자 호출해서 중복 코드 줄이기
public class Car {
//Car 클래스 필드 선언(객체데이터 저장)
String company = "ㅇㅇ자동차";
String model;
String color;
int maxSpeed;
//생성자1
Car() {
}
Car(String model) {
this(model, "은색", 250);
}
Car(String model, String color) {
this(model, color, 250);
}
Car(String model, String color, int maxSpeed) {
this.model = model;
this.color = color;
this.maxSpeed = maxSpeed; //공통 실행 코드
}
}
객체 생성시 생성자 선택
public class CarExample {
public static void main(String[] args) {
// 생성자1 선택
Car car1 = new Car();
System.out.println("car1.company : "+car1.company);
System.out.println();
// 생성자2 선택
Car car2 = new Car("자가용");
System.out.println("car2.company : "+car2.company);
System.out.println("car2.model : "+car2.model);
System.out.println();
Car car3 = new Car("자가용","빨강");
System.out.println("car3.company : "+car3.company);
System.out.println("car3.model : "+car3.model);
System.out.println("car3.color : "+car3.color);
System.out.println();
}
}