Method
2025. 4. 1. 18:10ㆍJAVA/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 |