JAVA

[JAVA]메서드 오버로딩

당고개 2023. 9. 8. 16:37

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