라벨이 인스턴스변수인 게시물 표시

[JAVA] 클래스변수(class variable/Static Field), 인스턴수변수(instance variable/Non-Static Field)

JAVA 클래스변수(class variable), 인스턴수변수(instance variable) java에서의 클래스는 변수와 메서드를 그룹핑해서 가지고있는 묶음이다.  클래스는 일종의 설계도와 같은 역할을 한다. JAVA 클래스는 선언위치에 따른 변수의 종류가 존재한다. class안에 정의된 변수를 멤버변수라고하며 멤버변수는 클래스변수와 인스턴수변수 2가지로 나누어진다. 인스턴스변수(instance variable) = 각각의 클래스가 가지고있는 변수(개별적인 속성) -클래스 영역에 선언되며 클래스의 인스턴스를 생성할 때 만들어진다. 그렇게 때문에 인스턴스 변수의 값을 읽어오거나 저장하기 위해서는 먼저 인스턴스를 생성해야한다. 인스턴스 생성방법 => 클래스명 변수명 = new 클래스명(); -인스턴스는 서로 독립적인 저장공간 즉 각각의 메모리 공간을 생성해서 각각의 서로 다른 값을 갖는다. 인스턴스마다 고유한 상태를 유지해야하는 경우 인스턴스변수로 선언한다. 인스턴스변수는 인스턴스가 생성될 때 마다 생성되므로 인스턴스마다 각기 다른 값을 유지할 수 있지만, 클래스 변수는 모든 인스턴스가 하나의 저장공간을 공유하므로 항상 공통된 값을 갖는다. 다른 폴더에 있는 메소드의 경우 파일을 import해줘야 사용이 가능하다. main메서드 밖에서 선언된 메서드는 다른 클래스에서도 클래스이름.메서드명으로 사용이 가능하다. 또한 매개변수도 전달 가능하다. 클래스 변수(class variable) =공유변수라고도 하며 공통속성을 가지는 변수 (고정값으로 사용) -클래스 영역에 선언되며 클래스가 메모리에 올라갈때 생성된다.  static 클래스(클래스 변수)의경우 저장공간을 만들지 않더라도 컴파일러 과정중에 자동으로 저장공간을 만들어주지만 메모리 공간이 1개이기때문에 값을 1개만 저장가능하다. -클래스 변수는 인스턴스 변수와 달리 new연산자를 사용하여 인스턴스를 생성하지 않고도 언제라도 바로 사용할 수 있으며  참수변수명.클래스변수  또는  클래스이름.클래스변