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 으로 하나의 저장 공간을 가지고 논다.
  
  
  
 }

}

Posted by 옆모습오빠
: