목차
1. 클래스 분리란?
📌 클래스 분리
자바에서는 기능별로 클래스를 분리해 관리하는 것이 일반적입니다.
예를 들어 계산 기능은 Calculator 클래스에, 실행 코드는 Application 클래스에 작성하는 식입니다.
💡 이렇게 하면 유지보수, 재사용, 가독성이 모두 좋아집니다.
2. 다른 클래스에 정의된 메소드 호출 방법
클래스가 분리되어 있다면, 해당 클래스를 import하거나 패키지명까지 포함한 클래스명으로 호출해야 합니다.
📌인스턴스 메소드 호출
- 클래스를 new로 생성
- 참조변수로 메소드 호출
Calculator calc = new Calculator();
int result = calc.minNumberOf(10, 20);
📌 static 메소드 호출
- 클래스명으로 직접 호출
int result = Calculator.maxNumberOf(10, 20);
3. static vs 인스턴스 메소드 차이
| 구분 | static 메소드 | 인스턴스 메소드 |
| 호출 방식 | 클래스명.메소드() | 참조변수.메소드() |
| 객체 생성 필요 | ❌ 없음 | ✅ 있음 |
| 대표 용도 | 공통 기능 | 객체별 동작 |
💡 static 메소드는 공용 도구, 인스턴스 메소드는 객체가 주인인 기능이라고 생각하면 됩니다.
4. 예제
📁 Calculator.java (계산 기능 클래스)
public class Calculator {
// 인스턴스 메소드
public int minNumberOf(int a, int b) {
return (a < b) ? a : b;
}
// static 메소드
public static int maxNumberOf(int a, int b) {
return (a > b) ? a : b;
}
}
📁 Application.java (실행 클래스)
public class Application {
public static void main(String[] args) {
// 1. 인스턴스 메소드 호출
Calculator calc = new Calculator();
int min = calc.minNumberOf(30, 20);
System.out.println("두 수 중 더 작은 값: " + min);
// 2. static 메소드 호출
int max = Calculator.maxNumberOf(30, 20);
System.out.println("두 수 중 더 큰 값: " + max);
}
}
두 수 중 더 작은 값: 20
두 수 중 더 큰 값: 30
5. 정리
| 항목 | 인스턴스 메소드 호출 | static 메소드 호출 |
| 필요 동작 | 객체 생성 → 호출 | 클래스명으로 바로 호출 |
| 예시 | calc.minNumberOf() | Calculator.maxNumberOf() |
| 주의 | 객체마다 따로 존재 | 공유되므로 신중하게 사용 |
⚠ static 메소드도 참조변수.메소드() 형태로 호출할 수 있지만, 권장되지 않습니다.
마무리
다음 게시글에서는 패키지(package)에 대해서 학습하겠습니다.
'study > Programming' 카테고리의 다른 글
| [JAVA 기초] import 문법 (1) | 2025.04.24 |
|---|---|
| [JAVA 기초] 패키지(package)란? (1) | 2025.04.23 |
| [JAVA 기초] static 메소드 vs 인스턴스 메소드 (1) | 2025.04.21 |
| [JAVA 기초] 메소드의 반환값 (return) (1) | 2025.04.20 |
| [JAVA 기초] 메소드 오버로딩 (1) | 2025.04.19 |