인스턴스변수, 클래스(static)변수
::::특별한 Java Story 2013. 6. 3. 17:49 |package jungsuk;
class Card{
String kind;
int number;
public static int width = 100;
public static int height = 200; //변수 앞에 static 을 붙이면 클래스 변수가 되며, 누구나 고정값을 가지고 사용
}
public class CardTest {
public static void main(String[] args) {
System.out.println(Card.width); //인스턴스화를 안시켜도 사용이 되네~~
System.out.println(Card.height);
Card c1 = new Card();
c1.kind = "heart";
c1.number = 7; //각 카드들은 값이 다 다를수 있으니 인스턴스 변수를 써주는구낭~
Card c2 = new Card();
c2.kind = "spade";
c2.number = 8;
System.out.println(c1.kind+","+c1.number+","+c1.height+","+c1.width);
System.out.println(c2.kind+","+c2.number+","+c2.height+","+c2.width);
c1.width = 300;
c1.height = 400;
System.out.println(c1.kind+","+c1.number+","+c1.height+","+c1.width);
System.out.println(c2.kind+","+c2.number+","+c2.height+","+c2.width); //얼래c2도 바뀌었네?ㅋ
//Card.width 와 c1 ,c2는 같은 저장공간을 참조 혹은 공유를 하기때문에 항상 같은값을 같는다.
//사실상 c1하고 c2로 각각 인스턴스화를 시켰다 뿐이지 클래스 안에 static 으로 하나의 저장 공간을 가지고 논다.
}
}
'::::특별한 Java Story' 카테고리의 다른 글
변수의 초기화 (0) | 2013.06.04 |
---|---|
클래스메서드(static 메서드) 와 인스턴스메서드 (0) | 2013.06.03 |
오버로딩?! 메서드 오버로딩?! (0) | 2013.06.03 |
인스턴스 메서드 (0) | 2013.06.03 |
재귀호출 (메서드가 나와서..리~~) (0) | 2013.06.03 |