Java
[JAVA] 생성자 / 오버로딩(overloading)
HSRyuuu
2023. 5. 17. 10:59
1. 생성자 (Constructor)
- 생성자 : 사용할 클래스의 변수를 미리 초기화해준다.
- 매개변수, 구현부가 없다.
- this.(필드명) : Car 클래스 내의 필드
default 생성자 : 클래스에 생성자를 구현하지 않아도 new 키워드로 생성자를 호출할 수 있음.
- 클래스에 생성자가 하나도 없어도 컴파일러가 default 생성자 코드를 넣어준다.
- public Car(){ };
class Car{
public String color;
public int speed;
//default 생성자
public Car(){}
//생성자
Car(String color, int speed){
this.color = color;
this.speed = speed;
}
}
main에서 호출할 때
- 방법 1
public static void main(String[] args) {
Car myCar1 = new Car("빨강",0);
Car myCar2 = new Car("파랑",30);
}
- 방법 2
public static void main(String[] args) {
Car myCar1 = new Car();
Car myCar2 = new Car();
myCar1.color = "빨강";
myCar1.speed = 0;
myCar2.color = "파랑";
myCar2.speed = 30;
}
오버로딩(overloading) : 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것
(참고) 오버라이딩(overriding) : 부모클래스에서 정의한 메서드를 자식클래스에서 재정의 하는 것
2. 생성자 오버로딩
- 생성자의 매개변수를 다르게 설정
- 생성자를 호출할 때 여러 생성자 중 필요한 것을 호출해서 사용할 수 있음.
Car(){
}
Car(String color){
this.color = color;
}
Car(String color, int speed){
this.color = color;
this.speed = speed;
}
3. 메서드 오버로딩
- 같은 클래스 내에서 메서드의 이름이 같아도 파라미터의 개수나 데이터 형식만다르면 여러 개를 선언할 수 있는 것.
class Calc{
//double형 변수2개를 넣었을 때
void addValue(double v1,double v2) {
System.out.printf("double 값 계산 : %f ",(v1+v2));
}
//int형 변수2개를 넣었을 때
void addValue(int v1,int v2) { //int형 변수2개
System.out.println("int 값 계산 : "+ (v1+v2));
}
}
반응형