[자바 무료 강의] 메서드 오버 로딩 - 코드라떼
Lesson List button
코스자바로 배우는 프로그래밍
hamburger button
강의메서드 오버 로딩최종수정일 2021-09-07
아이콘약 2분

동일한 이름의 메서드를 여러 개 선언하여 사용할 수 있는 것을 메서드 오버 로딩이라고 하는데요. 메서드 오버 로딩에 대해서 배워봅시다.

추가 노트

목차


  1. 메서드 오버로딩
  2. [실습해보기] 메서드 오버로딩을 작성해보자

메서드 오버로딩


생성자 오버로딩과 같이 메서드도 오버로딩 할 수 있습니다. 메서드의 이름이 같더라도 메서드에 선언된 매개 변수의 개수나 자료형이 다르면 동일한 이름의 메서드를 여러 개를 선언할 수 있습니다.

class Person { void setData(String name) { … } void setData(int age) { … } void setData(String name, int age) { … } }
copy

그리고 이런 방식으로 메서드를 사용할 수 있습니다.

Person person = new Person(); person.setData("이철수"); person.setData(30); person.setData("이철수", 30);
copy

다만 생성자 오버로딩에서 주의할 점과 똑같이, 같은 자료형의 매개변수로 메서드를 선언하여 오버로딩 할 수 없습니다.

class Person { // 같은 자료형의 매개변수로 오버로딩 할 수 없다 void setData(String name) { … } // 같은 자료형의 매개변수로 오버로딩 할 수 없다 void setData(String sex) { … } }
copy

이유는 생성자 오버로딩과 동일하므로 따로 설명드리지는 않겠습니다.




[실습해보기] 메서드 오버로딩을 작성해보자


case 1

코드 작성(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); } }
copy


코드 작성(Main.java)

public class Main { public static void main(String[] args) { Person person = new Person(); person.setData("김철수", 40); System.out.println(person.getPersonInfo()); } }
copy


출력

name: 김철수, age: 40
copy
도전자 질문
작성된 질문이 없습니다
이용약관|개인정보취급방침
알유티씨클래스|대표, 개인정보보호책임자 : 이병록
이메일 : cs@codelatte.io
사업자등록번호 : 824-06-01921
통신판매업신고 : 2021-성남분당C-0740
주소 : 경기도 성남시 분당구 대왕판교로645번길 12, 9층 24호
파일
파일파일
Root
파일

실습해보세요의 코드를 작성해보세요.

Output
root$
Lesson List button
코스자바로 배우는 프로그래밍
hamburger button
강의메서드 오버 로딩최종수정일 2021-09-07
아이콘약 2분

동일한 이름의 메서드를 여러 개 선언하여 사용할 수 있는 것을 메서드 오버 로딩이라고 하는데요. 메서드 오버 로딩에 대해서 배워봅시다.

추가 노트

목차


  1. 메서드 오버로딩
  2. [실습해보기] 메서드 오버로딩을 작성해보자

메서드 오버로딩


생성자 오버로딩과 같이 메서드도 오버로딩 할 수 있습니다. 메서드의 이름이 같더라도 메서드에 선언된 매개 변수의 개수나 자료형이 다르면 동일한 이름의 메서드를 여러 개를 선언할 수 있습니다.

class Person { void setData(String name) { … } void setData(int age) { … } void setData(String name, int age) { … } }
copy

그리고 이런 방식으로 메서드를 사용할 수 있습니다.

Person person = new Person(); person.setData("이철수"); person.setData(30); person.setData("이철수", 30);
copy

다만 생성자 오버로딩에서 주의할 점과 똑같이, 같은 자료형의 매개변수로 메서드를 선언하여 오버로딩 할 수 없습니다.

class Person { // 같은 자료형의 매개변수로 오버로딩 할 수 없다 void setData(String name) { … } // 같은 자료형의 매개변수로 오버로딩 할 수 없다 void setData(String sex) { … } }
copy

이유는 생성자 오버로딩과 동일하므로 따로 설명드리지는 않겠습니다.




[실습해보기] 메서드 오버로딩을 작성해보자


case 1

코드 작성(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); } }
copy


코드 작성(Main.java)

public class Main { public static void main(String[] args) { Person person = new Person(); person.setData("김철수", 40); System.out.println(person.getPersonInfo()); } }
copy


출력

name: 김철수, age: 40
copy
도전자 질문
작성된 질문이 없습니다
이용약관|개인정보취급방침
알유티씨클래스|대표, 개인정보보호책임자 : 이병록
이메일 : cs@codelatte.io|운영시간 09:00 - 18:00(평일)
사업자등록번호 : 824-06-01921|통신판매업신고 : 2021-성남분당C-0740
주소 : 경기도 성남시 분당구 대왕판교로645번길 12, 9층 24호(경기창조혁신센터)
파일
파일파일
Root
파일

실습해보세요의 코드를 작성해보세요.

Output
root$