"오버로딩"의 두 판 사이의 차이
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> | ||
− | + | *'''구조''' | |
− | |||
− | |||
− | |||
− | |||
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); } }
각주
참고자료
- 개발이 하고 싶어요, <오버로딩(Overloading) 오버라이딩(Overriding)>, 2013-12-09
- 우종선, <자바 오버로딩/메소드 오버로딩/생성자 오버로딩>, 2017-09-15
- AraGrooveit Blog, <자바(JAVA), 생성자 오버로딩과 메소드 오버로딩>, 2015-11-04
같이 보기