이번 편의 목표: 연체료 계산을 메서드로 분리하고, 매개변수를 받아 결과를 돌려줍니다.
같은 곱셈을 여러 곳에 적으면 하루 요금이 바뀔 때 빠뜨리는 곳이 생깁니다. 계산에 이름을 붙이면 호출하는 쪽은 일수만 넘기면 됩니다.
반환이 있는 메서드
아직 객체는 만들지 않습니다. main과 같은 클래스의 static 메서드로 시작합니다.
public class FeeMethod {
static int lateFee(int lateDays) {
return lateDays * 100;
}
public static void main(String[] args) {
System.out.println(lateFee(3));
System.out.println(lateFee(0));
}
}출력은 300과 0입니다. return은 값을 호출한 곳으로 돌려주고 그 메서드를 끝냅니다. 매개변수의 이름은 호출하는 쪽의 변수 이름과 달라도 됩니다.
반환값이 없으면 void를 적습니다. 출력만 하는 메서드가 그 예입니다.
static void printFee(String title, int lateDays) {
System.out.println(title + " " + lateFee(lateDays) + "원");
}오버로딩
이름이 같고 매개변수 구성이 다르면 오버로딩입니다. 하루 요금을 따로 받는 계산을 추가할 수 있습니다.
static int lateFee(int lateDays, int dailyFee) {
return lateDays * dailyFee;
}lateFee(3)은 첫 메서드, lateFee(3, 50)은 둘째 메서드가 선택됩니다. 전자책의 50원은 상속 편에서 객체의 책임으로 옮깁니다. 지금은 계산을 메서드로 빼는 것까지가 목표입니다.
직접 해 보기
연체 일수와 하루 요금을 받아 곱을 반환하는 메서드를 만들고, 2일과 100원으로 호출해 출력하세요.
해설
public class CustomFee {
static int lateFee(int lateDays, int dailyFee) {
return lateDays * dailyFee;
}
public static void main(String[] args) {
System.out.println(lateFee(2, 100));
}
}출력은 200입니다.
COMMENTS
댓글 0
이 글에 대한 의견이나 질문을 남겨 주세요.
댓글은 구글이나 카카오로 시작한 뒤에 남길 수 있습니다.
등록된 댓글이 없습니다.