컴퓨터/Java
[Java] 오버로딩
peridott
2024. 7. 25. 10:01
main_MethodOverloading.java
package _03_overloading;
class Over {
// 오버로딩의 조건
// 1. 메서드 이름이 같아야 한다
// 2. 매개변수의 개수가 다르던지 자료형이 달라야 한다
int add() {
return 0;
}
int add(int num1) {
return num1;
}
int add(int num1, int num2) {
return num1 + num2;
}
double add(int num1, double num2) { // 리턴 자료형은 상관없음
return num1 + num2;
}
String add(String name) {
return "이름 : " + name;
}
}
public class T01_main_MethodOverloading {
public static void main(String[] args) {
Over o1 = new Over();
System.out.println(o1.add(3,5));
System.out.println(o1.add(3,5.0));
System.out.println(o1.add());
System.out.println(o1.add(7));
System.out.println(o1.add("홍길동"));
}
}
main_ConOverloading.java
package _03_overloading;
class Aaa {
int num;
double dou;
String name;
Aaa() {
num = 1;
dou = 1.0;
name = "홍길동";
System.out.println("매개변수가 없는 생성자");
}
Aaa(int num) {
this.num = num;
dou = 1.0;
name = "홍길동";
System.out.println("매개변수가 1개인 생성자");
}
Aaa(int num, double dou) {
this.num = num;
this.dou = dou;
name = "홍길동";
System.out.println("매개변수가 2개인 생성자(int,double)");
}
Aaa(int num, String name) {
this.num = num;
dou = dou;
this.name = name;
System.out.println("매개변수가 2개인 생성자(int,String)");
}
Aaa(int num, double dou, String name) {
this.num = num;
this.dou = dou;
this.name = name;
System.out.println("매개변수가 3개인 생성자");
}
// 가변인자 : 들어올 인자의 갯수를 모를때
// (int... str) : 인자는 0개 이상
void method(int... num) {
System.out.println("인자가 0개 이상");
}
// (String name, String... str) : 인자는 1개 이상
void method(String name, String... str) {
System.out.println("인자가 반드시 1개 이상");
}
// 오류 : 모든 인자는 가변인자에 들어감
/*
void method(String... str, String num) {
}
*/
}
public class T02_main_ConOverloading {
public static void main(String[] args) {
Aaa a1 = new Aaa();
Aaa a2 = new Aaa(5, 10.56, "나야나");
Aaa a3 = new Aaa(10, "문자열");
Aaa a4 = new Aaa(50, 50.1234);
a4.method(5);
a4.method("문자");
a4.method();
}
}
ThisConOverloading.java
package _03_overloading;
class ThisAaa {
int num;
double dou;
String name;
// 생성자에서 this() : 다른 생성자 호출
// this()는 맨 첫줄에 있어야 됨
ThisAaa() {
this(1, 1.0, "홍길동");
System.out.println("매개변수가 없는 생성자");
}
ThisAaa(int num) {
this(num, 1.0, "홍길동");
System.out.println("매개변수가 1개인 생성자");
}
ThisAaa(int num, double dou) {
this(num, dou, "홍길동");
System.out.println("매개변수가 2개인 생성자(int,double)");
}
ThisAaa(int num, double dou, String name) {
this.num = num;
this.dou = dou;
this.name = name;
System.out.println("매개변수가 3개인 생성자");
}
}
public class T03_main_ThisConOverloading {
public static void main(String[] args) {
ThisAaa a1 = new ThisAaa();
/*ThisAaa a2 = new ThisAaa(5, 10.56, "나야나");
ThisAaa a4 = new ThisAaa(50, 50.1234);*/
}
}