- [Java] 37. 메서드 오버로딩2024년 04월 23일
- Song hyun
- 작성자
- 2024.04.23.:13
728x90반응형[Java] 37. 메서드 오버로딩
1. 메서드 오버로딩
(1) 메서드 오버로딩의 정의: 메서드 오버로딩(Method Overloading)은 같은 이름의 메서드를 여러 개 정의하는 것을 의미한다. 이 때 메서드의 시그니처(Signature), 즉 메서드의 이름과 파라미터가 달라야 한다.
-메서드 오버로딩을 사용하면, 같은 기능을 하는 메서드들을 하나의 이름으로 통일할 수 있어, 가독성을 높일 수 있다.
*메서드 오버로딩은 System.out.println이다.
-System.out.println은 하나의 메서드로 여러 자료형을 출력할 수 있는, 대표적인 메서드 오버로딩 기능이다.2. 예제 보며 이해하기
기존의 코드는 각각의 캐릭터(질럿/마린/저글링)들이 상대편 캐릭터를 공격하게 되면,
캐릭터별로 다른 형태의 메서드를 사용하여 코드가 길었다. (ex: 질럿 공격시-attackZealot 메서드 사용)
// 마린이 질럿을 공격합니다. public void attackZealot(Zealot z) { System.out.println("[" + this.name + "]이 [" + z.getName() + "]을 공격합니다."); z.beAttacked(this.power); } // 마린이 저글링을 공격합니다. public void attackZergling(Zergling z) { System.out.println("[" + this.name + "]이 [" + z.getName() + "]을 공격합니다."); z.beAttacked(this.power); }
하지만, 아래와 같이 상위 클래스인 Unit에 attack메서드를 생성한 뒤로는,
캐릭터마다 별도의 메서드를 생성해줄 필요가 없게 되었다.
// 마린이 질럿을 공격합니다. public void attack(Zealot z) { System.out.println("[" + this.name + "]이 [" + z.getName() + "]을 공격합니다."); z.beAttacked(this.power); } // 마린이 저글링을 공격합니다. public void attack(Zergling z) { System.out.println("[" + this.name + "]이 [" + z.getName() + "]을 공격합니다."); z.beAttacked(this.power); }
package basic.ch16; public class Profile { public static void main(String[] args) { Profile p1=new Profile("엄송현",20); p1.print(); p1.print("헬로키티"); p1.print(0); p1.print("지나가는 사람",30); } private String name; private String country; private int temperture; public Profile(String name, int temperture) { this.name=name; this.temperture=temperture; } public void print() { System.out.println("내 이름은 "+this.name+"입니다."); System.out.println("오늘의 날씨는 "+this.temperture+"도 입니다."); } public void print (String name) { System.out.println("내 이름은 "+name+"입니다."); } public void print (int temperture) { System.out.println("오늘의 날씨는 "+temperture+"도 입니다."); } public void print (String name, int temperture) { System.out.println("내 이름은 "+name+"이고, 오늘의 날씨는 "+temperture+"입니다."); } }
728x90반응형'Java > 기본 개념 및 클래스' 카테고리의 다른 글
[Java] 39. 포함 관계 (0) 2024.04.23 [Java] 38. 상속 관계와 메서드 오버라이딩 (0) 2024.04.23 [Java] 36. 배열 활용: 랜덤 숫자 생성기 (0) 2024.04.22 [Java] 35. 배열 활용: 전화번호부 만들기 (0) 2024.04.22 [Java] 34. 배열 활용 : 도서 관리 프로그램 만들기 (0) 2024.04.22 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)