본문 바로가기

빅데이터과정/JAVA

#54_140828_JAVA_OVERLOADING

728x90

# OVERLOADING




 

Overloading 이란

동일한 이름의 메소드를 둘이상 동시에 정의하는 것

하나의 클래스 안에 정의된 메소드 이름은 달라야 하지만 아래의 오버로딩의 2가지 조건이 성립되야 가능하다

 

오버로딩 2가지 성립조건

1.    매개변수의 개수

2.    매개변수의 자료형

 

 

오버로딩의 장점

하나의 클래스를 기반으로 다양한 형태의 인스턴스 생성을 가능하게 한다

예 주민번호를 입력하는 경우군번을 입력하는 경우

위 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