본문 바로가기

수업 복습하기/Java

Day 11 - 오버로딩 (Overloading)

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