본문 바로가기
JAVA

day07)static(클래스) 변수, 객체 배열

by code_learner 2021. 12. 30.

static(클래스, 정적)변수

 

1. 멤버변수, 인스턴스 변수: 각 객체끼리 그 값을 공유하지 않는다.

2. static변수, 정적변수, 클래스변수: 클래스가 변수의 주인으로, 각객체끼리 그 값을 공유한다.

 

class A{
	int a; //멤버변수 인스턴스 변수
	static int b;//정적변수, 클래스 변수

	void show() {
		System.out.println(a+" "+b);
	}
}


public class Test03 {
	public static void main(String[] args) {
		
		A a1=new A();
		A a2 = new A();
		a1.a=100;
		a1.b=200;
		a2.a=300;
		a2.b=400;
		a1.show();
		a2.show();
		
        /*결과:
		100 400
		300 400-->b값 공유
		*/
	}
}

 


 

객체배열

//1. 정수배열
int[] i = new int[2];
i[0]=1;
i[1]=2;
//배열의 방에 값을 바로 대입한다.


//2. 객체 배열
Player[] p=new Player[3];
p[0]=new Player("홍길동"); // 객체를 생성
p[1]=new Player("임꺽정"); // -> 객체화 => 생성자
p[2]=new Player("아무무");
//배열의 방에 객체의 주소값을 대입한다.

for(int v: i){
	System.out.print(v+" ");//결과: 1 2
}

 for(Player v: p) {
    	  System.out.println(v);
          //결과:class04.Player@33909752
			class04.Player@55f96302
			class04.Player@3d4eac69
          //주소값 객체의 주소값 출력
}

따라서 for(int v: i)에서 v는 value를 가져오는 것이기 때문에 변경해도 배열의 본체값은 변경되지 않지만,

for(Player v: p)에서는 v는 주소값을 가져오기 때문에 본체값을 변경하는 것이 가능하다.

'JAVA' 카테고리의 다른 글

day08)상속  (0) 2021.12.31
day08) getter, setter  (0) 2021.12.31
day06) 객체  (0) 2021.12.28
day05)재귀함수  (0) 2021.12.27
day05) 함수(메서드)  (0) 2021.12.27

댓글