1. 생성자 오버로딩
- 클래스 이름이 동일할 것
- 매개 변수의 타입, 개수, 순서가 달라야 한다
public class Car {
//필드
String model;
String color;
int price;
int speed;
Car(){ //기본생성자
}
Car(String model){
this.model = model;
// 필드 model = 매개변수 model
}
Car(String model, String color){
this.model = model;
this.color = color;
}
Car(int price, int speed){
this.price = price;
this.speed = speed;
}
}
public class MainClass {
public static void main(String[] args) {
Car car1 = new Car();
Car car2 = new Car("승합차");
Car car3 = new Car("승합차", "블랙");
Car car4 = new Car(1000000,110);
}
2. 메소드 오버로딩
- 메소드 이름이 동일할 것
- 매개 변수의 타입, 개수, 순서가 달라야 한다
package overload;
public class MainClass {
public static void main(String[] args) {
method();
method('a');
method(10);
method('a', 10);
int sum = sumProc(90, 95, 100, 75);
System.out.println(sum);
sum = sumProc(10, 20, 30);
}
//*******************************************************
static void method() {
System.out.println("method()");
}
static void method(char c) {
System.out.println("method(c)");
}
static void method(int i) {
System.out.println("method(int i)");
}
static void method(char c, int i) {
System.out.println("method(char c, int i)");
}
//매개변수 순서만 달라지는 것은 오버로딩X
static void method( int i, char c) {
System.out.println("method( int i, char c)");
}
//타입은 바뀌지 않고 매개변수 이름만 바뀌는것은 오버로딩X
static void method(char a, int k) {
System.out.println("method(char c, int i)");
}
//리턴 값이 동일해야함 void -> int (X)
static int method(char c, int i) {
System.out.println("method(char c, int i)");
return 1;
}
//*******************************************************
//+...가변인수 (매개변수 갯수 유동적)
static int sumProc(int...num) {
int sum = 0;
for (int i = 0; i < num.length; i++) {
sum += num[i];
}
return sum;
}
//가변인수는 맨 뒤에 위치할 것 (int...num, String name) 불가능
static void sumPorc(String name, int...num) {
int sum = 0;
for(int i = 0; i < num.length; i++) {
sum += num[i];
System.out.println(name + "님의 합계 " + num + "점 입니다.");
}
}
}
'BackEnd > Java' 카테고리의 다른 글
[Java] 서로다른 클래스의 객체생성과 메소드 호출 (0) | 2022.01.08 |
---|---|
[Java] 상속 자동 타입 변환&강제 타입 변환 / 업캐스팅&다운캐스팅 + instanceof (0) | 2021.12.16 |
[Java] 상속 오버라이드(@Override) (0) | 2021.12.15 |
[Java] Escape Sequences 사용하기 (0) | 2021.12.06 |
[Java] Class Scanner 사용해서 입력받기 (0) | 2021.12.06 |