클래스로부터 객체가 생성될 때 필드는 기본 초기값으로 자동 설정된다. 만약 다른값으로 초기화를 하고 싶다면 두가지 방법이 있다.
1. 필드를 선언할 때 초기값을 주는 방법
-> 동일한 클래스로부터 생성되는 객체들은 모두 같은 데이터를 갖게 된다.
-> 물론 객체 생성 후 변경할 수 있지만, 객체 생성시점에는 필드의 값이 모두 같다.
ex)
public class Korean {
String nation="대한민국";
String name;
String ssn;
}
--------------------------
Korean k1 = new Korean();
Korean k2 = new Korean();
이럴경우 k1과 k2객체의 nation 필드에는 모두 "대한민국"이 저장되어있다.
2. 생성자에서 초기값을 주는 방법
-> 객체 생성 시점에 외부에서 제공되는 다양한 값들로 초기화되어야 한다면 생성자에서 초기화를 해야 한다.
ex)
public class Korean {
//필드
String nation = "대한민국";
String name;
String ssn;
//생성자
public Korean(String n, String s){
name = n;
ssn = s;
}
}
생성자 오버로딩
- 개념 : 매개 변수를 달리하는 생성자를 여러 개 선언하는 것이다.
ex)
public class Car {
Car() {...}
Car(String model) {...}
Car(String model, String color) {...}
Car(String model, String color, int maxSpeed) {...}
}
-------------------------------------------
생성자 호출시
Car car1 = new Car();
Car car2 = new Car("그렌져");
Car car3 = new Car("그렌져", "흰색");
Car car4 = new Car("그렌져", "흰색", 300);
---------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------
생성자의 오버로딩
package jongkyu.run;
public class Car {
String company = "현대자동차";
String model;
String color;
int maxSpeed;
//생성자
Car(){
}
Car(String model){
this.model = model;
}
Car(String model, String color){
this.model = model;
this.color = color;
}
Car(String model, String color, int maxSpeed) {
this.model = model;
this.color = color;
this.maxSpeed = maxSpeed;
}
}
'IT일반과목 > java' 카테고리의 다른 글
메소드 오버로딩 (0) | 2018.07.16 |
---|---|
메소드에 대하여 설명 (0) | 2018.07.16 |
로또 무한반복하다가 드디어 맞췄다!!!!! (0) | 2018.07.16 |
자바 로또 중복제거 및 번호추첨 (0) | 2018.07.16 |
메소드 나눠쓰는 법 (0) | 2018.07.15 |