자바에서 하나의 메서드 이름으로 여러기능을 구현하는것
바로 예제를 보자
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 |