# OVERLOADING
l Overloading 이란
- 동일한 이름의 메소드를 둘이상 동시에 정의하는 것
- 하나의 클래스 안에 정의된 메소드 이름은 달라야 하지만 아래의 오버로딩의 2가지 조건이 성립되야 가능하다
l 오버로딩 2가지 성립조건
1. 매개변수의 개수
2. 매개변수의 자료형
l 오버로딩의 장점
- 하나의 클래스를 기반으로 다양한 형태의 인스턴스 생성을 가능하게 한다
- 예 : 주민번호를 입력하는 경우, 군번을 입력하는 경우
: 위 2가지 정보를 입력하면 그 사람의 정보가 출력되는 프로그램이 있다면
남자는 2가지 정보를 다 입력할 수 있지만 여자는 주민번호 밖에 입력이 안되기 때문에 2가지 정보를 다 입력해도 결과가 나오고 2가지 중 한가지만 입력해도 결과가 출력되게 할 수 있다
오버로딩 예제 | |
class Person { private int perID; private int milID;
public Person(int pID, int mID) { perID = pID; milID = mID; } //생성자
public Person(int pID) { perID = pID; milID = 0; } //생성자 //여자는 군번이 없기 때문에 한가지 정보만 받아들인다
public void showInfo() { System.out.println("민번: " + perID); if (milID != 0) System.out.println("군번: " + milID + '\n'); else System.out.println("군과 관계 없음 \n"); } }
class Overloading { public static void main(String[] args) { Person man = new Person(950123, 880102); Person woman = new Person(941125); //오버로딩을 이용해서 주민번호와 군번을 따로따로 넣어줄 수 있다 man.showInfo(); woman.showInfo(); } } | |
결과값 | 민번: 950123 군번: 880102
민번: 941125 군과 관계 없음 |
위 예제 업그레이드. 주민번호와 군번을 물어보게 하고 군번이 입력되지 않을 경우 메시지를 출력 | |
class Person { private int perID; private int milID;
public Person(int pID, int mID) { perID = pID; milID = mID; } //생성자
public Person(int pID) { perID = pID; milID = 0; } //생성자 //여자는 군번이 없기 때문에 한가지 정보만 받아들인다
public void showInfo() { System.out.println("민번: " + perID); if (milID != 0) System.out.println("군번: " + milID + '\n'); else System.out.println("군과 관계 없음 \n"); } }
class Overloading { public static void main(String[] args) { int gunbun=0; System.out.print("주민번호 : "); Scanner keyboard = new Scanner(System.in); int jumin = keyboard.nextInt();
System.out.print("군번 : "); Scanner keyboard2 = new Scanner(System.in); String s= keyboard2.nextLine(); if(s != null && !s.equals("")) { gunbun = Integer.parseInt(s); //s에 입력된 값을 정수형으로 형변환 } //키보드 입력시 엔터입력으로 null 값이 들어오면 넘어가도록 한다 //만약 숫자가 들어온다며 군번에 정수로 형변환된 값을 넣어준다
Person man = new Person(jumin, gunbun); Person woman = new Person(jumin);
System.out.println("주민번호 : " + jumin); if (gunbun != 0) System.out.println("군번: " + gunbun + '\n'); else System.out.println("군과 관계 없음 \n");
} } | |
결과값 | 주민번호 : 333333 군번 : 주민번호 : 333333 군과 관계 없음
주민번호 : 333333 군번 : 333333 주민번호 : 333333 군번: 333333
|
'빅데이터과정 > JAVA' 카테고리의 다른 글
#55_140829_JAVA_STRING CLASS (0) | 2014.08.29 |
---|---|
#55_140829_JAVA_THIS (0) | 2014.08.29 |
#54_140828_JAVA_STATIC (0) | 2014.08.28 |
#54_140828_접근제어 지시자 (0) | 2014.08.28 |
#54_140828_JAVA_클래스 패스 (0) | 2014.08.28 |