자바 Java/문법 - 객체 지향

메소드 오버로딩

하나비 HANABI 2022. 1. 4. 14:27

클래스 내에 같은 이름의 메소드를 여러 개 선언하는 것

하나의 메소드 이름으로 다양한 매개값 받기 위해 메소드 오버로딩을 함

오버로딩의 조건: 매개변수의 타입, 개수, 순서가 달라야함

 

 

<Calculator.java>

public class Calculator {
	void powerOn() {
		System.out.println("전원을 켭니다");
	}
	
	int plus(int a, int b) {
		int result = a + b;
		return result;
	}
	
	double divide(int a, int b) {
		double result = (double) a / (double) b;
		return result;
	}
	
	void powerOff() {
		System.out.println("전원을 끕니다");
	}
	
	double calcRectArea(double width) { // 정사각형의 넓이 구하기
		return width * width;
	}
	
	double calcRectArea(double width, double height) { // 직사가경의 넓이 구하기
		return width * height;
	}
	
}

calcRectArea 메소드가 오버로딩 됨

 

<CalculatorEx.java>

public class CalculatorEx {

	public static void main(String[] args) {
		Calculator calc = new Calculator();
		
		calc.powerOn();
		System.out.println(calc.plus(100, 200));
		System.out.println(calc.divide(125, 54));
		
		calc.calcRectArea(5);
		calc.calcRectArea(20, 30);
		
		calc.powerOff();
	}

}