본문 바로가기
(혼) (공) (자)

객체지향-오버로딩

by 만석이 2024. 1. 12.
자바에서 하나의 메서드 이름으로 여러기능을 구현하는것

 

 

바로 예제를 보자

public void result() {
System.out.println("인자가 없는 메서드");
}

public void result(int n) {
System.out.println("정수를 인자로 받는 메서드");
}

public void result(char n) {
System.out.println("문자를 인자로 받는 메서드");
}
public void result(String n) {
System.out.println("문자열을 인자로 받는 메서드");
}

public void result(int n, String s) {
System.out.println("정수, 문자열을 인자로 받는 메소드");
}

mo.result();
mo.result(5);
mo.result('A');
mo.result("ABC");
mo.result(5,"ABC");

 

 

오버로딩의 조건


 

1.메서드이름 같아야한다.
2.파라미터의 개수가 달라야 한다.
3.파라미터의 개수가 같아도 타입이 다르면 가능하다.
4.파라미터의 개수가 같아도 순서가 다르면 가능하다.

5.매개변수생성자 를 기본생성자못만들때 오버로딩으로 기본생성자 만들수있다.

 

 

하나의 예시를 더 보자

public class BreadTest {

int bread;
String s;


public void MakeBread(int bread) {


this.bread = bread;



for(int i=0; i<bread; i++) {
System.out.println("빵을 만들었습니다.");
}

System.out.println("요청하신"+bread+"개의 빵을 만들었습니다.");

System.out.println("----------------------------------");
}



public void MakeBread(int bread,String s) {


this.bread = bread;
this.s=s;


for(int i=0; i<bread; i++) {
System.out.println(s +" 을 만들었습니다.");
}

System.out.println(s+"을 "+bread+"개 만들었습니다.");
}


public class BreadMain {
public static void main(String[] args) {
BreadTest breadTest = new  BreadTest();


breadTest.MakeBread(5);
breadTest.MakeBread(5,"뿡어빵");

}
}

}

 

첫번째 MakeBread는 정수만 받고 

두번째  MakeBread는 정수 와 문자열을 같이 받았다.

 

breadTest.MakeBread(5);
breadTest.MakeBread(5,"뿡어빵");

 

이렇게 입력해도 알아서 매개변수 타입에 맞는 매서드를 찾아가는것을 알수있다.

'(혼) (공) (자)' 카테고리의 다른 글

상속-Super  (0) 2024.01.12
Static  (0) 2024.01.12
상속-오버라이딩  (0) 2024.01.12
상속  (0) 2024.01.12
Class - 매개변수 생성자 _this  (0) 2024.01.09