메서드정리

이동원·2024년 4월 2일

메서드복습 ,문제풀이 (함수의 한종류)

  • 여러번같은 계산,수정 해야한다면 코드를 반복 적고수정하는것 보다 함수를 정의(만들고) 필요할때마다 필요한 입력값을 넣어서 해당함수를 호출하면 편하다.

  • 반환타입없고호출만할땐 void (return생략가능),있을땐 return+값; ,매개변수없고출력만할땐 비워두고 정의 비워두고 호출 가능

  • return 문을 만나면 즉시 메서드를 빠져나간다.

  • ★자바는 항상 변수의 값을 복사해서 대입한다.★

  • 메서드 호출할때는 전달하는 인수의 타입과 매개변수의 타입이 맞아야한다 단 타입이 달라도 자동형변환이 가능한경우는 가능
    안되는경우는 명시적 형변환 해줘야한다 .

  • 메서드오버로딩 :이름이 같고 매개변수가 다른 메서드를 여러개 정의할수 있다.
    메서드 이름이 같아도 매개변수의 타입 및 순서가 달라도 오버로딩할수있다 .

  • 본인의 타입에 최대한 맞는 메서드 우선 실행 하고 없으면 형변환 가능한 타입의 메서드를 찾아서 실행한다.

cf) 인수 : (호출할때 매개변수에) 넘기는 값 (호출자입장)
매개변수 : 매서드를 정의할떄 선언한 변수 ,호출자 인수를 받고 메서드 내부에 쓸수있는 중매역할

문제 - 입출금 리펙토링

다음은 입금, 출금을 나타내는 코드이다.
입금(deposit)과, 출금(withdraw)을 메서드로 만들어서 리펙토링 해보자.

    package method.ex; 
public class MethodEx3 {
public static void main(String[] args) { 
int balance = 10000;
// 입금 1000
int depositAmount = 1000;
        balance += depositAmount;
+ "원");
System.out.println(depositAmount + "원을 입금하였습니다. 현재 잔액: " + balance 
// 출금 2000
int withdrawAmount = 2000;
if (balance >= withdrawAmount) {
            balance -= withdrawAmount;
System.out.println(withdrawAmount + "원을 출금하였습니다. 현재 잔액: " +
balance + "원"); 
        } else {
System.out.println(withdrawAmount + "원을 출금하려 했으나 잔액이 부족합니
다."); 
        }
System.out.println("최종 잔액: " + balance + "원");
    } 
}

실행 결과

정답
1000원을 입금하였습니다. 현재 잔액: 11000원
2000원을 출금하였습니다. 현재 잔액: 9000원
최종 잔액: 9000원

javapackage method.ex;
public class MethodEx3Ref {
public static void main(String[] args) { 
int balance = 10000;
        balance = deposit(balance, 1000);
        balance = withdraw(balance, 2000);
System.out.println("최종 잔액: " + balance + "원");
    }
public static int deposit(int balance, int amount) { 
        balance += amount;
"원"); 
    }
System.out.println(amount + "원을 입금하였습니다. 현재 잔액: " + balance + 
return balance;
public static int withdraw(int balance, int amount) { 
if (balance >= amount) {
            balance -= amount;
System.out.println(amount + "원을 출금하였습니다. 현재 잔액: " + balance +
"원");
        } else {
System.out.println(amount + "원을 출금하려 했으나 잔액이 부족합니다.");
        }
return balance;
    } 
}

0개의 댓글