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 |
댓글