메소드

멤버 메소드(method)

멤버 메소드는 클래스 내부에 위치하는 코드 저장 블록으로 필요에 의해 호출하여 실행할 수 있다. 다양한 용도로 활용될 수 있기 때문에 여러 가지의 활용법을 살펴보도록 한다.

형태

메소드는 다음의 형태를 가진다.

반환형 이름(매개변수){
    실행코드
}
  • 반환형 : 메소드가 실행된 뒤 반환될 데이터의 형태를 말한다.

  • 이름 : 메소드를 실행하기 위한 호출에 사용된다.

  • 매개변수 : 메소드를 실행하기 위해 필요한 데이터를 저장하는 변수를 말한다.

  • 실행코드 : 메소드가 실행될 때 해야할 작업을 적으며, 위에서 아래로 실행된다.

this

메소드에서 사용할 수 있는 키워드로 인스턴스 자신, 주인공을 의미한다. 메모리에서 메소드는 인스턴스에 포함되지 않기 때문에 어느 인스턴스에서 실행하였는지 구분하기 위해 this라는 내장 키워드를 제공하며, 이를 통해 실행한 인스턴스에 접근할 수 있다.

주의사항

메소드를 만들 경우 다음의 내용을 주의해야 한다.

  • (필수) 메소드는 클래스 안에 만들어야 한다.

  • (필수) 메소드 간 범위가 겹칠 수 없다.

  • (필수) 메소드 내부에 메소드를 만들 수 없다.

  • (권장) 메소드의 이름은 소문자로 시작해야 한다.

데모 1

class Item {
    String name;
    int price;
    
    void setting(String name, int price){
        this.name = name;
        this.price = price;
    }
    void print(){
        System.out.println("이름 : "+this.name);
        System.out.println("가격 : "+this.price+"원");
    }
}

public class MemberMethodExample01 {
    public static void main(String[] args){
        Item a = new Item();
        a.setting("운동화", 150000);
        a.print();
    }
}

위 코드에는 두 개의 메소드가 사용되었다.

  • setting

  • print

setting 메소드의 코드는 다음과 같다.

void setting(String name, int price){
    this.name = name;
    this.price = price;
}

setting 메소드에서는 name, price에 해당하는 값을 외부에서 받아 설정하기 위한 코드가 작성되어 있다. 여기서 같은 이름의 변수가 두 개씩 존재하게 되는데, 그림으로 보면 다음과 같다.

print 메소드의 코드는 다음과 같다.

void print(){
    System.out.println("이름 : "+this.name);
    System.out.println("가격 : "+this.price+"원");
}

print 메소드에도 this.namethis.price가 있으며, 이는 마찬가지로 인스턴스가 가진 nameprice를 의미한다. 이 메소드에서는 nameprice가 한 개씩만 존재하기 때문에 this는 생략이 가능하다.

void print(){
    System.out.println("이름 : "+name);
    System.out.println("가격 : "+price+"원");
}

결론

멤버 메소드는 클래스에서 기능을 담당하며, 멤버 필드를 이용할 수 있어 다양한 처리가 가능하다. 특화된 형태로 설정 메소드(setter method), 반환 메소드(getter method) 등이 존재하며, 이는 해당 문서에서 살펴본다.

Last updated