메소드

멤버 메소드

  • C언어의 함수와 비슷합니다.

  • 데이터 처리 기능을 구현합니다.

  • 리턴값이 없는 메소드는 void 형을 지정합니다.

  • 메소드가 받는 인수의 데이터 타입은 메소드를 호출하는 쪽과 일치해야 합니다.

  • Method Overloading(중복 정의), Overriding(재정의)기술로 확장 됩니다.

  • 메소드가 리턴하는 값과 리턴되는 값의 데이터 타입은 일치해야 합니다.

메소드를 사용하지 않은 경우

PayCalc2.java

public class Pay2 {
    //멤버 변수, 인스턴스 변수, 필드
    String name;
    int    bonbong;
    int    tax;
    int    silsu;
}
public class PayCalc2 {
    public static void main(String[] args) {
      //┌ Class
      //↓
        Pay2 p1 = new Pay2();
        Pay2 p2 = new Pay2();
      //       ↑
      //       └ 객체, 객체 변수
    
        p1.bonbong = 2000000;
        p1.name = "왕눈이";
        p1.tax = (int)(p1.bonbong * 0.05 + 0.5);
        p1.silsu = p1.bonbong - p1.tax;
    
        p2.bonbong = 2500000;
        p2.name = "아로미";
        p2.tax = (int)(p2.bonbong * 0.05 + 0.5);
        p2.silsu = p2.bonbong - p2.tax;
    
        System.out.println("성명: " + p1.name);
        System.out.println("본봉: " + p1.bonbong);
        System.out.println("세금: " + p1.tax);
        System.out.println("실수령액: " + p1.silsu);
    
        System.out.println("성명: " + p2.name);
        System.out.println("본봉: " + p2.bonbong);
        System.out.println("세금: " + p2.tax);
        System.out.println("실수령액: " + p2.silsu);
    }
}

메소드를 사용한 경우

Pay.java

PayCalc.java

리턴값이 있는 메소드의 사용

PayCalc.java

Pay.java

클래스의 분리

Pay.java

PayCalc.java

메소드를 이용해 성적프로그램 만들기. Sungjuk, SungjukUse

Sungjuk.java

SungjukMgr.java

SungjukUse.java

변수의 유효 범위(scope)

멤버 변수(Instance 변수)

  • 변수가 메소드 밖에 선언되는 변수를 말합니다.

  • 멤버변수, 인스턴스 변수, 필드라고 합니다.

  • 멤버 변수는 모든 메소드가 사용할 수 있습니다.

  • 메모리 모델에서 Heap 메모리를 이용합니다.

  • 변수의 사용이 끝나도 클래스의 객체 자체가 GC에 의해 회수 되기 전에는 할당받은 메모리를 계속 유지하게 됩니다. 따라서 불필요한 멤버 변수를 최대한 사용하지 않아야 메모리를 낭비없이 효율적으로 이용할 수 있습니다.

  • 변수 선언시 값을 주지 않아도 특정 값으로 초기화 됩니다.

지역 변수, Local Variable

  • 변수가 메소드안에 선언되는 것을 말합니다.

  • Stack 메모리를 이용합니다.

  • 메소드의 이용이 끝나면 자동으로 메모리가 회수됩니다.

  • 초기화를 해야 사용할 수 있습니다.

  • 블럭안에 선언: '{ }'안에서만 생명력을 가집니다.

    • Stack 메모리를 이용합니다.

Variable.java

Block.java

Last updated