728x90
728x90
= 오버로딩 (Overloading)
간단하게 표현하자면 중복!메서드나 생성자를 선언할 때 매개 변수의 유형이나 개수를 다르게 선언하면 되는 것!하나의 메서드로 다른 유형을 통해서 다른 동작이 실행되게 한다. (우리가 수업시간에 같은 생성자나 메서드 구별하기 위해 이미 하던 것)
= 오버로딩의 조건이름이 같아야한다접근 제한자, 반한 유형은 영향을 미치지 않는다.
매개 변수의 유형, 개수, 순서가 달라야한다!
오버로딩 예시 확인해보기!
< overloading.basic >
package overloading.basic;
public class Basic {
/*
* 오버로딩 - 같은 이름의 메서드, 생성자를 여러개 만드는 것
*
* 규칙
* 1. 이름이 똑같음
* 2. 반환유형은 상관이 없음.
* 3. 매개변수의 타입, 종류, 개수 등이 다르면 됩니다. (완전히 동일하지 않으면 됩니다)
*/
void input(int a) {
System.out.println("정수 1개 받음");
}
// int input(int b) {
// } 이거는 안된다.
void input(String a) {
System.out.println("문자열 1개 받음");
}
void input(double a,int b) {
System.out.println("정수와 실수 1개 받음");
}
void input(int a,double b) {
System.out.println("실수와 정수 1개 받음");
}
void input(String a,String b) {
System.out.println("문자열 2개 받음");
}
void input(char a, String b, double c) {
System.out.println("문자, 문자열, 실수 1개 받음");
}
}
< MainClass>
package overloading.basic;
public class MainClass {
public static void main(String[] args) {
Basic b = new Basic();
b.input(1);
b.input("1");
b.input(3.14,1);
b.input(1,3.14);
b.input("홍길동","안녕하세용");
b.input('a',"홍길동",3.14);
}
}
< 출력값>
메서드이름이 input과 같지만, 매개변수 유형 타입 순서가 달라졌더니 나오는 출력값이 다르다는 것이 포인트!
728x90
'수업 복습하기 > Java' 카테고리의 다른 글
Day 11 - super (생성자, 메서드) (0) | 2021.08.30 |
---|---|
Day 11 - this() & this. (0) | 2021.08.30 |
Day 10 - 오버라이딩(Overriding) (0) | 2021.08.30 |
Day 10 - 상속(Inheritance) (0) | 2021.08.29 |
Day 10 - 기본타입과 참조타입 (0) | 2021.08.29 |