public class Ex04 {
String name;
int age;
double height;
// 클래스 명과 이름이 같은 메서드
public Ex04() {} // 생성자
public Ex04(String name, int age, double height) {
this.name = name;
this.age = age;
this.height = height;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return this.age;
}
public void setHeight(double height) {
this.height = height;
}
public double getHeight() {
return this.height;
}
}
public class Ex04Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 객체 생성 후에 멤버 필드에 값을 저장
Ex04 ex = new Ex04(); // 객체 생성
ex.setName("이현경");
ex.setHeight(156.5);
ex.setAge(25);
System.out.println(ex.getName());
System.out.println(ex.getAge());
System.out.println(ex.getHeight());
System.out.println();
Ex04 ex1; // 객체변수 선언
ex1 = new Ex04(); // 객체 생성
// 객체가 만들어 질 때 멤버 필드에 값을 저장
Ex04 ex2 = new Ex04("이슬기", 25, 162.0);
System.out.println(ex2.getName());
System.out.println(ex2.getAge());
System.out.println(ex2.getHeight());
System.out.println();
}
}
개발자가 직접 생성자를 만들 경우 default 생성자는 생성되지 않는다.
따라서 default 생성자가 필요하다면 직접 명시해야 함
생성자의 이름은 같고, 매개 변수의 개수나 타입이나 순서가 다른 것을 오버로딩 이라고 한다.
public class Ex08 {
String name;
int age;
double height;
public Ex08() {}
public Ex08(String name, int age, double height) {
this.name = name;
this.age = age;
this.height = height;
}
public Ex08(String name, double height, int age) {
this.name = name;
this.age = age;
this.height = height;
}
// 생성자의 이름은 같고, 매개 변수의 개수나 타입이나 순서가 다른 것을 오버로딩 이라 한다.
public Ex08(String name, int age) {
this.name = name;
this.age = age;
}
public Ex08(int age, double height) {
this.age = age;
this.height = height;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return this.age;
}
public void setHeight(double height) {
this.height = height;
}
public double getHeight() {
return this.height;
}
}
public class Ex09 {
String company;
String model;
String color;
int maxSpeed;
public Ex09(String company, String model, int maxSpeed) {
this(company, model); // 공통인 속성을 갖고있는 생성자 호출
this.maxSpeed = maxSpeed;
}
public Ex09(String company, String model, String color) {
this(company, model);
this.color = color;
}
public Ex09(String company, String model) {
this.company = company;
this.model = model;
}
public void setCompany(String company) {
this.company = company;
}
public String getCompany() {
return this.company;
}
public void setModel(String model) {
this.model = model;
}
public String getModel() {
return this.model;
}
public void setColor(String color) {
this.color = color;
}
public String getColor() {
return this.color;
}
public void setMaxSpeed(int maxSpeed) {
this.maxSpeed = maxSpeed;
}
public int getMaxSpeed() {
return this.maxSpeed;
}
}