728x90
반응형
static method (정적 메서드)
정적 메서드는 Class 레벨에서 정의되며 특정 인스턴스에 속하지 않는다.
즉 인스턴스를 생성하지 않고도 호출할 수 있는 메서드이다.
따라서 정적 메서드는 클래스 레벨에서 동작하지만 인스턴스 변수에 접근할 수 없고 정적 변수에만 접근이 가능하다.
인스턴스를 통해 호출하는 것도 문법에 위배되지는 않지만 권장하는 방법이 아니다.
정적 메서드는 아래 코드와 같이 사용할 수 있다.
class Example {
static int add(int a, int b) {
return a + b;
}
static int multiply(int a, int b) {
return a * b;
}
public static void main(String[] args) {
int num1 = add(5, 7);
int num2 = Example.add(10, 5);
System.out.println(num1);
System.out.println(num2);
}
}
class 외부에서 접근할 때에는 인스턴스를 통해서 접근할 필요 없이 class 이름을 통해서 접근할 수 있다.
class math {
static int add(int a, int b) {
return a + b;
}
static int multiply(int a, int b) {
return a * b;
}
}
class Example {
public static void main(String[] args) {
int num1 = math.add(5, 7);
int num2 = math.add(10, 5);
System.out.println(num1);
System.out.println(num2);
}
}
instance method (인스턴스 메서드)
instance method는 static 선언 없이 정의된 메서드로 class 외부에서 접근할 때에는 인스턴스를 통해서 접근해야 한다.
따라서 아래 코드처럼 사용할 수 있다.
class math {
int add(int a, int b) {
return a + b;
}
int multiply(int a, int b) {
return a * b;
}
}
class Example {
public static void main(String[] args) {
math a = new math();
int num1 = a.add(5, 7);
int num2 = a.add(10, 5);
System.out.println(num1);
System.out.println(num2);
}
}
728x90
반응형
'Java > Java 문법' 카테고리의 다른 글
[Java] 상속 (Inheritance), extends (0) | 2024.10.01 |
---|---|
[Java] 배열, Boundary Checking (경계 검사), 비대칭 배열 (0) | 2024.09.30 |
[Java] String, 문자열 비교, String Class 메서드 (0) | 2024.09.30 |
[Java] 객체 생성 (class) (0) | 2024.09.18 |
[Java] main 함수, 출력 (0) | 2024.09.18 |