목차
1. static 메소드란?
📌 static
정적인 메소드를 의미하며, 객체를 생성하지 않고도 호출할 수 있는 메소드입니다.
💡 클래스에 고정(static)되어 있는 메소드 → 공용 메소드라고도 함
📌 특징
- 객체 생성 없이 클래스명으로 바로 호출 가능
- 클래스가 메모리에 올라갈 때 함께 올라감 (한 번만 로딩)
- 인스턴스 변수나 메소드에는 직접 접근할 수 없음
(단, 객체를 생성하면 접근 가능은 하지만 권장하지 않음)
2. 인스턴스 메소드란?
📌 인스턴스 메소드
static 키워드가 없는 일반적인 메소드입니다.
객체(인스턴스)를 생성한 뒤 참조변수.메소드이름() 형식으로 호출합니다.
📌 특징
- 메모리에는 객체가 생성될 때 함께 올라감
- 객체마다 별도로 존재하므로 객체 상태에 따라 동작
- 클래스명으로 직접 호출할 수 없음
3. 호출 방식 비교
| 구분 | 호출 방식 | 설명 |
| static 메소드 | 클래스명.메소드() | 객체 없이 호출 가능 |
| 인스턴스 메소드 | 참조변수.메소드() | 객체 생성 후 호출 가능 |
public class Calculator {
// static 메소드
public static int add(int a, int b) {
return a + b;
}
// 인스턴스 메소드
public int multiply(int a, int b) {
return a * b;
}
}
📌 호출 예시
public class Application {
public static void main(String[] args) {
// static 메소드 호출 (클래스명 사용)
int result1 = Calculator.add(10, 20);
System.out.println("static 메소드 결과: " + result1);
// 인스턴스 메소드 호출 (객체 생성 후 참조변수 사용)
Calculator calc = new Calculator();
int result2 = calc.multiply(5, 4);
System.out.println("인스턴스 메소드 결과: " + result2);
}
}
📌 실습 예제: sumTwoNumbers() 호출
public class Application {
public static void main(String[] args) {
// 1. static 메소드 호출 (클래스명 사용)
int sum1 = sumTwoNumbers(10, 20);
System.out.println("1) 클래스명 생략하고 호출: " + sum1);
// 2. static 메소드 호출 (클래스명 명시)
int sum2 = Application.sumTwoNumbers(30, 40);
System.out.println("2) 클래스명 명시하고 호출: " + sum2);
}
public static int sumTwoNumbers(int a, int b) {
return a + b;
}
}
1) 클래스명 생략하고 호출: 30
2) 클래스명 명시하고 호출: 70
✅ 같은 클래스 내부에서는 클래스명을 생략해도 호출 가능하지만,
다른 클래스에 정의된 static 메소드는 반드시 클래스명.메소드()형식으로 호출해야 합니다.
4. 정리
| 항목 | static 메소드 | 인스턴스 메소드 |
| 메모리 시점 | 클래스 로딩 시 | 객체 생성 시 |
| 호출 방식 | 클래스명.메소드() | 참조변수.메소드() |
| 객체 생성 필요 여부 | ❌ 불필요 | ✅ 필요 |
| 사용 목적 | 공용 기능 (예: 수학 계산) | 객체에 따라 다르게 동작하는 기능 |
마무리
다음 게시글에서는 클래스 분리와 메소드 호출에 대해 학습하겠습니다.
'study > Programming' 카테고리의 다른 글
| [JAVA 기초] 패키지(package)란? (1) | 2025.04.23 |
|---|---|
| [JAVA 기초] 클래스 분리와 메소드 호출 (1) | 2025.04.22 |
| [JAVA 기초] 메소드의 반환값 (return) (1) | 2025.04.20 |
| [JAVA 기초] 메소드 오버로딩 (1) | 2025.04.19 |
| [JAVA 기초] 매개변수와 전달인자 (1) | 2025.04.18 |