Back/JAVA

정적(Static) 변수/메서드

시월해 2021. 3. 8. 17:19

* 자바에서 사용되는 용어들.
 1. 변수 : 프로그램이 끝날때까지 언제든지 변할 수 있는 속성(데이터).
          ==> 소문자로 시작
 2. 상수 : 프로그램이 끝날때까지 절대 변하지 않는 속성(데이터)
          ==> 모든 글자가 대문자 
           
 3. instance(인스턴스) 변수 / 메서드
    - 객체의 생성과 동시에 만들어지는 변수 / 메서드.
    - 객체는 heap 메모리 공간에 만들어짐.
       반드시 객체 생성 후 사용이 가능함.
    - 호출방법 : 참조변수.멤버변수 / 참조변수.멤버메서드
     
 4. static(스태틱, 정적) 변수 / 메서드
    - 객체의 생성과 상관없이 별도로 만들어지는 변수 / 메서드.
    - static 메모리(method 영역)에서 별도로 만들어짐.
    - 공통으로 사용되는 변수 / 메서드.
    - 객체를 생성하지 않아도 어느 클래스나 접근 가능.
    - 접근하는 방법이 쉬우나 실제로 항상 메모리에 상주하게 되어 메모리 회수가 안되는 단점이 있음.
      시스템이 며칠, 몇 주, 몇 달 정도 가동이 되면 점점 느려지는 현상이 발생함.
    - 호출방법 : 클래스이름.멤버변수 / 클래스이름.멤버메서드

 


public class Static {
	
	// 멤버변수
	int su1 = 200; // 인스턴스 변수
	int su2 = 100; // 인스턴스 변수
	static int num = 500; // static(정적) 변수
	
	// 멤버메서드
	public void sum() { // 인스턴스 메서드
		System.out.println("sum >>> " + (su1 + su2));
	}
	
	public static int adder(int num1, int num2) {
		return num1 + num2;
	}

}

num 변수와 adder 메서드는 static 변수로 선언했기 때문에 객체를 인스턴스화 하지 않아도 사용이 가능하다.