class Car{ class Car{
==(컴파일)==> public Car(){} // 자동추가
}
Car c1 = new Car();
public static void main(String[] args) {
company c1 = new company();
company c2 = new company("삼성전자");
company c3 = new company("이베이",124,1827000);
company c4 = new company("오리온",150);
company c5 = new company(150,"오리온");
}
class company{
String name;
int empNum;
int earMoney;
company(){}
company(String name){
this.name = name;
}
company(String name,int empNum){
this.name = name;
this.empNum = empNum;
}
company(int empNum, String name){
this.name = name;
this.empNum = empNum;
}
company(String name, int empNum, int earMoney){
this.name = name;
this.empNum = empNum;
this.earMoney = earMoney;
}
}
class Music{
String name;
String singer;
String album;
Music(){
this.name = "무명";
this.singer="지정안됌";
this.album="지정안됌";
}
Music(String name){
this(); // 선언된 생성자를 호출해서 아래 default데이터 자동 설정
this.name=name; // singer와 album 값은 위 this();로 인해 생략가능
}
Music(String name,String singer){
this(name); // 매개변수가 있는 생성자 호출
this.singer=singer;
}
Music(String name,String singer,String album){
this(name,singer); // 매개변수가 2개 있는 생성자 호출
this.album=album;
this(name,singer); // 에러발생. 생성자는 반드시 첫 라인에 선언해야함
}
}
cf) 참고
main(){
Home ho1 = new Home(2.3F); //float 타입으로 선언
System.out.println(ho1.data1);
Home ho2 = new Home(129817270918L); //long 타입으로 선언
System.out.println(ho2.data2);
Home ho3 = new Home((byte)25); //기본 데이터 유형이 int이기에 casting해서 전달해야한다
}
class Home {
float data1;
long data2;
byte data3;
Home(float data1){
this.data1 = data1;
}
Home(long data2){
this.data2 = data2;
}
Home(byte d){
this.data3 = d;
}
}