본문 바로가기

Java

[Java] overloading 오버로딩

반응형
package org.opentutorials.javatutorials.overloading;

class Calculator {
	int num1, num2;
	int num3 = 0;
	
	public void setOprands(int num1, int num2) {
		System.out.println("setOprands 2");
		this.num1 = num1;
		this.num2 = num2;
	}
	
	public void setOprands(int num1, int num2, int num3) {
		System.out.println("setOprands 3");
		this.num1 = num1;
		this.num2 = num2;
		this.num3 = num3;
	}
	
	public void sum() {
		System.out.println(this.num1 + this.num2 + this.num3);
	}
	
	public void avg() {
		System.out.println((this.num1 + this.num2 + this.num3) / 2);
	}
}

public class CalculatorDemo {

	public static void main(String[] args) {
		Calculator c1 = new Calculator();
		c1.setOprands(10, 20);
		c1.sum();
		c1.avg();
		
		c1.setOprands(20, 20, 20);
		c1.sum();
		c1.avg();

	}

}

출력값

setOprands 2
30
15
setOprands 3
60
30

 

 

같은 이름의 메소드, 다른 타입의 매개변수

하지만 리턴 타입은 같아야함

package org.opentutorials.javatutorials.overloading;

public class OverloadingDemo {
	void Test() {
		System.out.println("void Test()");
	}
	
	void Test(int arg1) {
		System.out.println("void Test(int arg1)");
	}
	
	void Test(String arg1) {
		System.out.println("void Test(String arg1)");
	}
	
	//int Test() { //error
	//	System.out.println("int Test()");
	//}

	public static void main(String[] args) {
		OverloadingDemo od = new OverloadingDemo();
		od.Test();
		od.Test(1);
		od.Test("hello");
		
	}

}

출력값

void Test()
void Test(int arg1)
void Test(String arg1)
반응형

'Java' 카테고리의 다른 글

[Java] 클래스 접근 제어자  (0) 2021.03.14
[Java] 메서드 접근 제어자  (0) 2021.03.13
[Java] overrding 오버라이딩  (0) 2021.03.09
[Java] 생성자, super  (0) 2021.03.09
[Java] 생성자  (0) 2021.03.08