정적(멈춰있다)static라는 단어를 쓰는 이유는 -> 실제로 멈춰있기 때문이다
-> 한 번 할당받은 곳에서 안 움직인다(프로그램이 시작되고 자리를 잡은 뒤에 프로그램이 끝날 때까지 안 움직이고 고정되어 있다) -> 객체를 만들지 않고 클래스에게 직접 호출하는 형태로 사용할 수 있다
-동적 할당 - 할당을 상황에 따라 유두리 있게 하겠다
인스턴스 메서드
클래스 메서드
static의 장점
-객체(인스턴스)를 만들지 않아도 사용이 가능하다
-실행속도가 빠르다
static의 단점
-메모리 관리를 효율적으로 못한다
-언어가 가진 본질을 흐린다(static을 난발했을 경우)
static을 주로 언제 사용하는가?
-> 클래스 안에 static메서드화
-static이 붙은 메서드는 인스턴스 안 만들고 클래스한테 직접 호출 가능
-static이 붙은 변수는 모든 인스턴스들이 공유하는 공유자원이다
-외부에서 하는 것을 내부로 받아오는 것
-인자와 매개변수는 갯수와 타입이 일치해야 됨
매개변수 : 메서드 외부와 메서드 내부를 연결하는 매개체
-결과를 가지게 하는 것
class Main {
public static void main(String[] args) {
// 계산기.합(10, 20);
int result = 계산기.합(10, 20);
System.out.println(result);
}
}
class 계산기 {
static int 합(int a, int b) {
System.out.println(a + b);
return 0;
}
}
출력
30
0
return의 기능
-값을 반환한다
-메서드 종료