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));
	}
}
반응형