1. Static 으로 매서드를 만든 경우
public class MyUtil {
public static int hap(int a, int b){
int v=a+b;
return v;
}
}
2. NoneStatic 으로 매서드를 만든 경우
public class MyUtil1 {
public int hap(int a, int b){
int v=a+b;
return v;
}
}
호출해서 사용할 때의 차이
public class StaticAccess {
public static void main(String[] args) {
int a=10;
int b=20;
//Static
int sum=MyUtil.hap(a,b); //클래스이름.호출매서드
System.out.println("sum = " + sum);
//NoneStatic
MyUtil1 my=new MyUtil1(); //객체 생성
int sum1= my.hap1(a,b); //생성한 객체.호출매서드
System.out.println("sum1 = " + sum);
}
}
sum = 30
sum1 = 30
종료 코드 0(으)로 완료된 프로세스
*생성자는 반드시 public 이다? -> X
Static으로 생성한 매서드도 객체를 생성하는 방법으로 호출해서 사용할 수 있는데 바람직하지 않음.
private 생성자를 추가해서 객체를 생성할 수 없도록 할 수 있음.
자바에서 제공하는 system, math 클래스도 private 생성자를 가지고 있어서 System s=new System(); 식으로 사용할 수 없다.
public class AllStatic {
private AllStatic(){} //private 생성자 추가
public static int hap(int a, int b){
int v=a+b;
return v;
}
'Study > Java' 카테고리의 다른 글
| [개념]연산자2 (1) | 2025.06.18 |
|---|---|
| [개념]JVM이 사용하는 메모리 영역 (0) | 2025.06.15 |
| [개념]매서드(Method) (0) | 2025.06.02 |
| [개념] for문과 while문 (4) | 2025.05.30 |
| [개념]If문과 Switch-case문 (0) | 2025.05.30 |