Ⅱ. 메소드
1. 메소드
- 메소드 : 클래스 내부에 정의된 기능(함수)
- 메소드 명 : 기능을 나타내는 이름 (작명규칙은 변수와 동일)
- 리턴 타입 : 이 메소드가 어떤 자료형의 값을 반환할 것인가
- 매개변수 정의 : 이 메소드가 어떤 값을 괄호 안에 받을 것인가
// Example1
class Car {
String color;
String name;
// 다음과 같이 매개변수를 여러 개 할 땐, 콤마 ','로 표시
void chargeFuel(String oil, int price) {
System.out.printf("%s %d원 어치 넣어주세요\n", oil, price); // %s 는 문자열
}
}
public class Main {
public static void main(String[] args) {
Car a = new Car();
Car b = new Car();
a.chargeFuel("경유", 30000); // 경유 30000원 어치 넣어주세요
b.chargeFuel("휘발유", 50000); // 휘발유 50000원 어치 넣어주세요
}
}
// Example2
class Car {
void ridePerson(String[] person) {
for (int i = 0; i < person.length; i++) {
System.out.println(person[i] + "야, 타라");
}
}
}
public class Main {
public static void main(String[] args) {
Car a = new Car();
Car b = new Car();
a.ridePerson(new String[] {"영희", "철수", "맹구"}); // 영희야, 타라!
// 철수야, 타라!
// 맹구야, 타라!
b.ridePerson(new String[] {"짱구", "훈이", "철수", "맹구",}); // 짱구야, 타라!
// 훈이야, 타라!
// 철수야, 타라!
// 맹구야, 타라!
}
}
2. 메소드 오버로딩 (Overloading)
- 동일한 이름과 리턴 타입을 가진 메소드를 여러 개 정의하는 것
// Example
class Car {
void chargeFuel(String who, String oil, int price) {
System.out.printf("%s, %s %d원 어치 넣어주세요\n", who, oil, price);
}
void chargeFuel(String oil, int price) {
// 이러면 하나는 고정시키고 나머지만 다르게 할 수 있음
// (자바가 원하는 곳을 지정하여 실행)
System.out.printf("%s %d원 넣어주세요\n", oil, price);
}
void chargeFuel(int price) {
System.out.printf("기름 %d원 넣어주세요\n", price);
}
}
public class Main {
public static void main(String[] args) {
Car a = new Car();
Car b = new Car();
Car c = new Car();
a.chargeFuel("아저씨", "휘발유", 50000); // 아저씨, 휘발유 50000원 넣어주세요
b.chargeFuel("경유", 30000); // 경유 30000원 넣어주세요
c.chargeFuel(70000); // 기름 70000원 넣어주세요
}
}
3. 메소드의 가별 길이 배열 매개변수 : 몇 개를 받을 지 모를 경우, 사용
// Example
class Car {
// 고장 시, 어디를 수지할 지 매 상황마다 다름
void repairCar(String... parts) {
// ...은 몇 개 받을 지 모를 경우, 사용 (parts는 배열명)
for (String part : parts) {
// patrs의 개수만큼 반복을 하되, part에 번갈아 저장 (for-each문)
System.out.printf("%s 좀 수리해주세요\n", part);
}
}
}
public class Main {
public static void main(String[] args) {
Car a = new Car();
Car b = new Car();
a.repairCar("에어백", "변속기", "타이어"); // 에어백 좀 수리해주세요
// 변속기 좀 수리해주세요
// 타이머 좀 수리해주세요
b.repairCar("에어컨"); // 에어컨 좀 수리해주세요
}
}
'Programming Language > Java' 카테고리의 다른 글
클래스 내부 구성요소 - 4. this 키워드와 this( ) 메소드 (0) | 2022.07.09 |
---|---|
클래스 내부 구성요소 - 3. 생성자 (0) | 2022.07.09 |
클래스 내부 구성요소 - 1. 필드 (0) | 2022.07.08 |
클래스의 기본 문법 - 2. 클래스의 활용 (0) | 2022.07.08 |
클래스의 기본 문법 - 1. 클래스 개념 및 기본 구조 (0) | 2022.07.08 |