새소식

Java

[Java] 메소드 선언 Method Declaration

  • -

 

 

메소드 선언

 

 

1)    메소드(Method)의 개념

 

클래스 안에서 어떤 작업을 수행하는 코드의 블록으로,

 

특정한 기능을 수행하고, 필요에 따라 값을 반환할 수 있습니다.

 

메소드는 다른 메소드를 호출할 수 있으며, 이를 통해 코드의 모듈화와 계층화를 구현할 수 있습니다.

 

2)    메소드 선언

 

메소드를 정의하고 구현하기 위한 구문

 

[접근 제어자] [반환 타입] 메소드이름([매개변수 리스트]) {
    // 메소드의 실행 코드
}

 

 

①  접근 제어자 ( Access Modifier )

메소드의 접근 범위를 지정하는 키워드


● public: 어떤 클래스에서든 접근 가능
 protected: 같은 패키지 내 또는 상속 관계의 클래스에서 접근 가능
 private: 해당 클래스 내에서만 접근 가능

 

 

 

 

 

 

②  반환 타입 ( Return Type )

메소드가 실행된 후 반환하는 값의 데이터 타입을 지정

반환 타입이 없는 경우 void로 지정합니다. 

 

메소드가 값을 반환하는 경우, 반환 타입을 명시하고 return 키워드를 사용하여 값을 반환합니다.

(반환되는 타입은 기본 데이터 타입 또는 클래스 타입)

 

 

 

 

 

 

 

  메소드 이름 ( Method Name )

메소드 이름은 일반적으로 소문자로 시작하는 동사 또는 동사구를 사용합니다.
메소드 이름은 다른 코드에서 해당 메소드를 호출할 때 사용됩니다.

 

 

 

 

 

 

④  메개변수 리스트 ( Parameter List )

메소드가 받는 입력 값인 매개변수들(메소드가 실행 시 전달되는 값)의 목록을 지정

매개변수는 데이터 타입과 변수 이름으로 선언되고
매개변수가 없는 경우 빈 괄호 ()를 사용


 

 

 

 

 예외 선언 ( Exception Declaration )

메소드가 발생할 수 있는 예외를 선언합니다.
예외 선언은 throws 키워드를 사용하여 명시하며, 발생 가능한 예외의 타입을 나열합니다.

 

 

 

 

 

 

  메소드 몸체 ( Method Body )

중괄호 {}로 둘러싸인 메소드의 실행 코드 부분으로 메소드가 수행할 동작을 정의함.

메소드 몸체 내에서 필요한 로직과 처리를 구현해서 실행 결과는 몸체 내의 로직에 따라 결정됩니다.

 

 

 

 

 

 

 

 

3)    메소드 선언시 주의할 점

 

1) 이름은 일반적으로 동사 또는 동사구로 작성되며, 기능을 명확하게 나타내도록 지정해야 합니다.

2) 매개변수의 개수와 타입은 메소드 호출 시에 일치해야 합니다.

3) 반환 타입이 있는 메소드는 return 키워드를 사용하여 값을 반환해야 합니다.

 

 

 

 

 

 

 

 

 

 

4)    예시

 

Pikachu.Java

public class Pikachu {
    private String name;
    private int level;

    public Pikachu(String name, int level) {
        this.name = name;
        this.level = level;
    }

    public void attack(Charmander opponent) {
        System.out.println(name + "이(가) " + opponent.getName() + "을(를) 공격합니다!");
        opponent.takeDamage(15);
    }

    public void displayInfo() {
        System.out.println("Name: " + name);
        System.out.println("Level: " + level);
        System.out.println();
    }
}

 

● 피카츄에게는 attack 이라는 메소드가 있음.

 

●     public void attack(Charmander opponent) {
        System.out.println(name + "이(가) " + opponent.getName() + "을(를) 공격합니다!");
        opponent.takeDamage(15); }

 

→ Charmander라는 객체가 opponent라는 매개변수에 할당됨.

     즉, opponent는 전투 상황에서 attack의 대상인 Charmander 객체를 나타냅니다.

    또한 opponent.takeDamage부분은 메소드 내에서 다른 메소드인 takeDamage를 호출한 것도 확인할 수 있습니다.

    (다른 메소드를 호출하여 사용할 수 있다!!!!)

 

Charmander.Java

public class Charmander {
    private String name;
    private int level;
    private int health;

    public Charmander(String name, int level) {
        this.name = name;
        this.level = level;
        this.health = 100;
    }

    public void defend() {
        System.out.println(name + "이(가) 방어합니다!");
        System.out.println();
    }

    public void takeDamage(int damage) {
        health -= damage;
        System.out.println(name + "이(가) " + damage + "의 데미지를 입었습니다.");
        if (health <= 0) {
            System.out.println(name + "이(가) 쓰러졌습니다!");
        } else {
            System.out.println(name + "의 체력: " + health);
        }
        System.out.println();
    }

    public String getName() {
        return name;
    }

    public void displayInfo() {
        System.out.println("Name: " + name);
        System.out.println("Level: " + level);
        System.out.println("Health: " + health);
        System.out.println();
    }
}

 

파이리는 defend와 takeDamage라는 메소드가 있음.

 

 

PokemonBattle.Java

public class PokemonBattle {
    public static void main(String[] args) {
        Pikachu pikachu = new Pikachu("Pikachu", 10);
        Charmander charmander = new Charmander("Charmander", 8);

        // Pikachu의 공격 메소드 호출
        pikachu.attack(charmander);

        // Charmander의 방어 메소드 호출
        charmander.defend();

        // Pikachu와 Charmander의 정보 출력
        pikachu.displayInfo();
        charmander.displayInfo();
    }
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2023.06.19 - [Java] - 클래스 선언 및 생성자

 

클래스 선언 및 생성자

1. 클래스 선언 1) 클래스 선언의 개념 객체를 생성하기 위한 템플릿 또는 설계도 역할을 합니다. 클래스는 속성(attribute)과 메서드(method)로 구성되어 있으며, 객체의 상태와 동작을 정의하는데 사

devwarriorjungi.tistory.com

 

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.