의견.png

"오버로딩"의 두 판 사이의 차이

해시넷
이동: 둘러보기, 검색
3번째 줄: 3번째 줄:
 
== 종류 ==
 
== 종류 ==
 
오버로딩의 종류는 메소드 오버로딩과 생성자 오버로딩으로 나뉜다. 오버로딩이라고만 부르면 주로 메소드 오버로딩을 칭한다고 생각하면 된다.<ref name="https://hunit.tistory.com/156">AraGrooveit, 〈[자바(JAVA), 생성자 오버로딩과 메소드 오버로딩]〉, 《개인블로그》, 2015-11-04</ref>
 
오버로딩의 종류는 메소드 오버로딩과 생성자 오버로딩으로 나뉜다. 오버로딩이라고만 부르면 주로 메소드 오버로딩을 칭한다고 생각하면 된다.<ref name="https://hunit.tistory.com/156">AraGrooveit, 〈[자바(JAVA), 생성자 오버로딩과 메소드 오버로딩]〉, 《개인블로그》, 2015-11-04</ref>
 +
===메소드 오버로딩===
 +
*'''특징'''
 +
- 매개변수의 타입의 개수나 순서 중 하나만 달라도 오버로딩이 가능하다.
 +
- 리턴타입은 오버로딩에 영향을 주지않는다.<ref name="https://hunit.tistory.com/156">AraGrooveit, 〈[자바(JAVA), 생성자 오버로딩과 메소드 오버로딩]〉, 《개인블로그》, 2015-11-04</ref>
  
[[파일:test.jpg]]
+
*'''구조'''
 
 
== 구조 ==
 
하나의 클래스 안에 같은 이름을 가지고 있는 메소드를 여러개 정의한다. 매개변수의 개수나 유형을 다르게 하여 같은 이름의 메소드들이 다른 결과값을 출력할 수 있게 한다.<ref name="https://hyeonstorage.tistory.com/185">개발이 하고 싶어요, 〈[[JAVA] 오버로딩(Overloading) 오버라이딩(Overriding)]〉, 《개인블로그》, 2013-12-08</ref>
 
 
 
 
  public class 클래스이름 {
 
  public class 클래스이름 {
 
     // A메소드 호출
 
     // A메소드 호출
24번째 줄: 24번째 줄:
 
  }
 
  }
  
== 활용 ==
+
*'''활용'''
 
  // 오버로딩하기 위한 클래스 생성
 
  // 오버로딩하기 위한 클래스 생성
 
  public class Overloading {
 
  public class Overloading {
56번째 줄: 56번째 줄:
 
         // test(char a) 호출 -> 출력 : 매개변수 = x
 
         // test(char a) 호출 -> 출력 : 매개변수 = x
 
         ol.test(x);
 
         ol.test(x);
 +
    }
 +
}
 +
 +
 +
 +
===생성자 오버로딩===
 +
*'''특징'''
 +
- 매개변수의 타입의 개수나 순서 모두 달라야지 오버로딩이 가능하다.<ref name="https://hunit.tistory.com/156">AraGrooveit, 〈[자바(JAVA), 생성자 오버로딩과 메소드 오버로딩]〉, 《개인블로그》, 2015-11-04</ref>
 +
 +
*'''구조'''
 +
class 클래스이름 {
 +
    private 타입 매개변수a;
 +
    private 타입 매개변수b;
 +
 +
    public 클래스이름(타입 매개변수a_1) {
 +
        매개변수a = 매개변수a_1;
 +
    }
 +
 +
    public 클래스이름(타입 매개변수a_1, 타입 매개변수b_1) {
 +
        매개변수a = 매개변수a_1;
 +
        매개변수b = 매개변수b_1;
 +
    }
 +
}
 +
 +
*'''활용'''
 +
// 오버로딩하기 위한 생성자 정의
 +
class Overloading {
 +
    private String test1;
 +
    private int test2;
 +
    public Overloading(String a) {
 +
        test1 = a;
 +
    }
 +
    public Overloading(String a, int b) {
 +
        test1 = a;
 +
        test2 = b;
 +
    }
 +
}
 +
 +
// 위의 정의된 생성자 사용
 +
public class test {
 +
    public static void main(String[] args) {
 +
        // 생성자 사용
 +
        Overloading ol1 = new Overloading("x");
 +
        Overloading ol2 = new Overloading("x", 5);
 
     }
 
     }
 
  }
 
  }
63번째 줄: 107번째 줄:
 
== 참고자료 ==
 
== 참고자료 ==
 
* 개발이 하고 싶어요, <[https://hyeonstorage.tistory.com/185 오버로딩(Overloading) 오버라이딩(Overriding)]>, 2013-12-09
 
* 개발이 하고 싶어요, <[https://hyeonstorage.tistory.com/185 오버로딩(Overloading) 오버라이딩(Overriding)]>, 2013-12-09
 +
* 우종선, <[https://fors.tistory.com/72 자바 오버로딩/메소드 오버로딩/생성자 오버로딩]>, 2017-09-15
 +
* AraGrooveit Blog, <[https://hunit.tistory.com/156 자바(JAVA), 생성자 오버로딩과 메소드 오버로딩]>, 2015-11-04
  
 
== 같이 보기 ==
 
== 같이 보기 ==
68번째 줄: 114번째 줄:
 
* [[클래스]]
 
* [[클래스]]
 
* [[메소드]]
 
* [[메소드]]
 +
* [[다형성]]
 
* [[오버라이딩]]
 
* [[오버라이딩]]
  
 
{{프로그래밍|토막글}}
 
{{프로그래밍|토막글}}

2020년 8월 5일 (수) 17:42 판

오버로딩(Overloading)이란 같은 이름의 메소드(Method) 또는 생성자를 매개변수의 개수나 타입을 다르게 지정함으로써 2개 이상 정의하는것을 의미한다.[1]

종류

오버로딩의 종류는 메소드 오버로딩과 생성자 오버로딩으로 나뉜다. 오버로딩이라고만 부르면 주로 메소드 오버로딩을 칭한다고 생각하면 된다.[2]

메소드 오버로딩

  • 특징

- 매개변수의 타입의 개수나 순서 중 하나만 달라도 오버로딩이 가능하다. - 리턴타입은 오버로딩에 영향을 주지않는다.[2]

  • 구조
public class 클래스이름 {
   // A메소드 호출
   void A메소드() {
       System.out.println("매개 변수값 = 없음");
   }
   // A메소드에 매개변수a로 int형 호출
   void A메소드(int a) {
       System.out.println("매개 변수값 = " + a);
   }
   // A메소드에 매개변수a로 char형 호출
   void A메소드(char a) {
       System.out.println("매개 변수값 = " + a);
   }
}
  • 활용
// 오버로딩하기 위한 클래스 생성
public class Overloading {
   // test() 호출
   void test() {
       System.out.println("매개변수 = 없음");
   }
   // test에 매개변수a로 int형 호출
   void test(int a) {
       System.out.println("매개변수 = " + a);
   }
   // test에 매개변수a,b로 int형 2개 호출
   void test(int a, int b) {
       System.out.println("매개변수 = " + a + "," + b);
   }
   // test에 매개변수a로 char형 호출
   void test(char a) {
       System.out.println("매개변수 = " + a);
   }
}
// 위의 생성된 클래스 사용
public class test {
   public static void main(String[] args) {
       // 객체 생성
       Overloading ol = new Overloading();
       // test() 호출 -> 출력 : 매개변수 = 없음
       ol.test();
       // test(int a, int b) 호출 -> 출력 : 매개변수 = 5 , 10
       ol.test(5, 10);
       // test(char a) 호출 -> 출력 : 매개변수 = x
       ol.test(x);
   }
}


생성자 오버로딩

  • 특징

- 매개변수의 타입의 개수나 순서 모두 달라야지 오버로딩이 가능하다.[2]

  • 구조
class 클래스이름 {
   private 타입 매개변수a;
   private 타입 매개변수b;
   public 클래스이름(타입 매개변수a_1) {
       매개변수a = 매개변수a_1;
   }
   public 클래스이름(타입 매개변수a_1, 타입 매개변수b_1) {
       매개변수a = 매개변수a_1;
       매개변수b = 매개변수b_1;
   }
}
  • 활용
// 오버로딩하기 위한 생성자 정의
class Overloading {
   private String test1;
   private int test2;
   public Overloading(String a) {
        test1 = a;
   }
   public Overloading(String a, int b) {
        test1 = a;
        test2 = b;
   }
}
// 위의 정의된 생성자 사용
public class test {
   public static void main(String[] args) {
       // 생성자 사용
       Overloading ol1 = new Overloading("x"); 
       Overloading ol2 = new Overloading("x", 5);
   }
}

각주

  1. 우종선, 〈[자바 오버로딩/메소드 오버로딩/생성자 오버로딩]〉, 《개인블로그》, 2017-09-15
  2. 2.0 2.1 2.2 AraGrooveit, 〈[자바(JAVA), 생성자 오버로딩과 메소드 오버로딩]〉, 《개인블로그》, 2015-11-04

참고자료

같이 보기


  의견.png 이 오버로딩 문서는 프로그래밍에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.