Method

2025. 4. 1. 18:10JAVA/JAVA 기초 문법

📂 메서드(Method)란?

메서드는 특정 작업(기능)을 수행하는 코드 블럭이다.

자바에서 메서드는 코드의 재사용성을 높이고, 유지보수를 쉽게 하기 위해 사용된다.

메서드는 누군가 호출 하기 위해 사용하며, 무조건 return(반환)을 한다

 

📝 메서드의 구성 요소

// 반환 타입  메서드 이름 매개 변수(파라미터)
public int animals(int a, intb) {
    int dog = a + b;    // 실행 코드
    return dog;         // 결과 반환
}

1. 접근 제어자(Access Modifier)

 ▶ 메서드가 어디서 접근할 수 있는지를 지정 [public, private, protected, package-private(default)]

 

2. 변환 타입(Return Type) 

 ▶ 메서드가 반환하는 데이터의 타입 [void일 경우 반환하지 않음]

 

3. 메서드 이름(Method Name)

  메서드의 식별자로, 메서드를 호출할 때 사용 [Camel Case 방식으로 작성 > ex) helloWorld]

 

4. 매개변수(Parameter)

 ▶ 메서드 정의시 선언된 변수 [이름을 지정할 수 없다]

 

5. 메서드 본문(Method Body)

  ▶ 메서드가 실제로 실행하는 동작을 정의한 코드. { } 중괄호로 묶임

📝 메서드의 종류

 1️⃣ 인스턴스 메서드 (Instance Method)

  • 객체(인스턴스)를 생성해야 호출할 수 있는 메서드
  • 객체의 상태(인스턴스 변수)를 변경하거나 참조할 수 있음
  • static 키워드가 없는 일반적인 메서드(non-static method)
  • 클래스에 속하지만, 객체별로 동작

기본적인 인스턴스 메서드

Animals클래스
public class Animals {
      private int dog = 0;
      private int cat = 1;  // 인스턴스 변수
      
      public Animals () {}  
     
      public Animals(int dog) {
		this.dog = dog;
	}
      
      public Animals(int dog, int cat) {
		this(dog);
		this.cat = cat;
	}                                     // 컨스트럭터
    
      public void Name() {
         System.out.println()   // 인스턴스 메서드 (객체의 상태를 출력)
    }
}

Main클래스
public class Main {
      public static void main(String[] args) {
         Animals animals = new Animals();      // 객체 생성
         animals.Name();   // 객체를 통해 인스턴스 메서드 호출
    }
}


✔ Name() 은 인스턴스 메서드 이므로, 객체(animals)를 생성한 후에만 호출 가능

✔ static 없이 선언

 

 2️⃣ 스태틱 메서드 (Static Method)

  • 클래스 이름으로 직접 호출 가능 (객체 생성 불필요)
  • static 키워드로 선언
  • 클래스의 인스턴스 메서드를 호출할 수 없음(this 사용 불가)

기본적인 스태틱 메서드

Animals 클래스
public class Animals {
     // static 메서드
     public static int dog(int a) {
        return a+1;
        }
}

Main 클래스
public class Main {
     public static void main(String[] args) {
         int result = Animals.dog(1) // 객체 생성 없이 호출
         System.out.println(a+1);
         }
}

실행 결과
2

✔ Animals.dog()처럼 클래스 이름으로 직접 호출 가능

✔ dog()는 객체의 상태와 무관하게 동작

 

🟦 인스턴스 메서드와 스태틱 메서드

  스태틱 메서드 (Static Method) 인스턴스 메서드 (Instance Method)
호출 방식 클래스 이름으로 호출 [Class.method()[ 객체를 통해 호출 [obj.method()]
객체 생성 필요 필요 없음 (클래스가 로드될 때 호출 가능) 필요함 (객체를 생성한 후에 호출 가능)
static 키워드 ✅ 사용됨 (static 키워드로 선언) ❌ 사용되지 않음
객체 변수 접근 ❌ 불가능 (객체의 인스턴스 변수에 접근 불가) ✅ 가능 (객체의 인스턴스 변수와 메서드에 접근 가능)
this 키워드 사용 ❌ 사용할 수 없음 (객체를 참조할 수 없음) ✅ 사용할 수 있음 (현재 객체를 참조할 수 있음)
주로 사용되는 경우 객체의 상태와 무관한 공통적인 기능을 제공할 때 객체의 상태를 변경하거나 조회할 때
메모리 저장 위치 클래스에 저장 (객체 생성 없이 클래스에 로드됨) 객체에 저장 (각 객체마다 별도의 인스턴스가 존재)
예시 Math.sqrt(25) person.getName()

 

 

'JAVA > JAVA 기초 문법' 카테고리의 다른 글

변수(Variable) 필드(Field) 객체(Object)  (0) 2025.04.04
Parameter와 Argument  (0) 2025.04.02
데이터 캡슐화(Data Encapsulaton)  (0) 2025.03.28
Expression 과 Statement  (0) 2025.03.28
아스키코드 유니코드  (0) 2025.03.28