1. 메서드 오버로딩
생성자 오버로딩과 같이 메서드도 오버로딩 할 수 있습니다. 메서드의 이름이 같더라도 메서드에 선언된 매개 변수의 개수나 자료형이 다르면 동일한 이름의 메서드를 여러 개를 선언할 수 있습니다.
class Person {
void setData(String name) {
…
}
void setData(int age) {
…
}
void setData(String name, int age) {
…
}
}
그리고 이런 방식으로 메서드를 사용할 수 있습니다.
Person person = new Person();
person.setData("이철수");
person.setData(30);
person.setData("이철수", 30);
다만 생성자 오버로딩에서 주의할 점과 똑같이, 같은 자료형의 매개변수로 메서드를 선언하여 오버로딩 할 수 없습니다.
class Person {
// 같은 자료형의 매개변수로 오버로딩 할 수 없다
void setData(String name) {
…
}
// 같은 자료형의 매개변수로 오버로딩 할 수 없다
void setData(String sex) {
…
}
}
2. 메서드 오버로딩을 작성해보기
코드작성(Person.java)
class Person {
String name;
int age;
void setData(String name) {
this.name = name;
}
void setData(int age) {
this.age = age;
}
void setData(String name, int age) {
setData(name);
setData(age);
}
// 인스턴스 메서드
String getPersonInfo() {
return String.format("name: %s, age: %d", name, age);
}
}
코드 작성(Main.java)
public class Main {
public static void main(String[] args) {
Person person = new Person();
person.setData("김철수", 40);
System.out.println(person.getPersonInfo());
}
}
출력
name: 김철수, age: 40
출처 : https://www.codelatte.io/courses/java_programming_basic/BNSC5YYX4OXHGOKY
'JAVA' 카테고리의 다른 글
[JAVA]캡슐화 (0) | 2023.09.12 |
---|---|
[JAVA]객체의 합성 (0) | 2023.09.12 |
[JAVA]메서드 (0) | 2023.09.07 |
[JAVA]생성자 오버로딩 (0) | 2023.09.06 |
[JAVA]생성자, this (0) | 2023.09.05 |