선언위치에 따른 변수의 종류

유신·2021년 2월 20일
0

java

목록 보기
3/8

변수의 선언된 위치에 따라 클래스 변수, 인스턴스변수, 지역 변수로 나뉜다.

  • 멤버변수: 객체의 속성

    멤버 변수중 static이 붙은 것은 클래스 변수
    붙지 않은 것은 인스턴스 변수이다.

    나머지는 지역 변수이다.(클래스 영역 이외의 영역) ->메서드, 생성자, 초기화 블럭 내부

  • 인스턴스 변수: 독립적인 저장공간을 가지므로 서로 다른 값을 가질 수 있다.
    인스턴스 마다 고유한 상태를 유지해야 하는 속성의 경우 인스턴스 변수로 선언

  • 클래스 변수 인스턴스가 공통된 저장공간을 공유하게 된다.
    한 클래스의 모든 인서튼스들이 공통적인 값을 유지해야하는 속성의 경우 클래스 변수로 선언

  • 지역변수는 메서드 내에 선언되어 메서드 내에서만 사용가능하며, 메서드가 종료되면 소멸되어 사용할 수 없게 된다.

package Algorithm;

public class array_test {
		public static void main(String[] args) {
		Tv[] tv=new Tv[3]; // 길이가 3인 Tv객체 배열
		
		for(int i=0; i<tv.length;i++) {
			tv[i]=new Tv();
			tv[i].channel= i+10; 
		}
		
			for(int i=0;i<tv.length;i++) {
				System.out.println("tv channel ==>"+tv[i].channel);
				System.out.println("tv width ==>"+tv[i].width);
				System.out.println("tv height ==>"+tv[i].height);
				
			}
			
		}
}

class Tv{
	String color;
	boolean power;
	int channel;
	static int width = 100; //클래스 변수 
	static int height = 250; //클래스 변수
	
	void power() {power=!power;}
	void channelup() { ++channel;}
	void channelDown() {--channel;}
}
 
답 클래스변수는 값을 공유한다 . 
tv channel ==>10
tv width ==>100
tv height ==>250
tv channel ==>11
tv width ==>100
tv height ==>250
tv channel ==>12
tv width ==>100
tv height ==>250

profile
초보개발자

0개의 댓글

관련 채용 정보