class Card{
//4개의 멤버변수
//1.인스턴스 변수
//반드시 생성해서 참조변수명을 통해 접근 가능
//참조변수명.인스턴스변수명
String kind; //카드무늬, string이라 null로 초기화
int number; //카드숫자, int라 0으로 초기화
//2.클래스 변수
//클래스변수: 같은 클래스의 모든 인스턴스들이 공유
//인스턴스 생성없이 접근 가능 -> 클래스명.클래스변수명 으로 접근
static int width; //카드 너비
static int height; //카드 높이
}
public class CardTestEx2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Card.width=10;
Card.height=20;
//클래스로딩될 때 바로 접근
System.out.println(Card.width);
System.out.println(Card.height);
//인스턴스 변수 생성
Card c1=new Card();
System.out.println(c1.kind); //null
System.out.println(c1.number); //0
Card c2=new Card();
c2.kind="Heart";
c2.number=7;
Card c3=new Card();
c3.kind="Spade";
c3.number=5;
Card c4=new Card();
c4.kind="Heart";
c4.number=2;
Card c5=new Card();
c5.kind="Diamond";
c5.number=4;
//출력
System.out.println(c2.kind+","+c2.number+"."+Card.width+","+Card.height);
System.out.println(c3.kind+","+c3.number+"."+Card.width+","+Card.height);
System.out.println(c4.kind+","+c4.number+"."+Card.width+","+Card.height);
System.out.println(c5.kind+","+c5.number+"."+Card.width+","+Card.height);
//클래스변수는 인스턴스 참조명으로 접근시 인스턴스로 착각할 수 있으므로 클래스명으로 접근하자.
//클래스변수 새로 초기화
Card.width=50;
Card.height=80;
System.out.println(c2.kind+","+c2.number+"."+Card.width+","+Card.height);
System.out.println(c3.kind+","+c3.number+"."+Card.width+","+Card.height);
System.out.println(c4.kind+","+c4.number+"."+Card.width+","+Card.height);
System.out.println(c5.kind+","+c5.number+"."+Card.width+","+Card.height);
//결과
10
20
null
0
Heart,7.10,20
Spade,5.10,20
Heart,2.10,20
Diamond,4.10,20
Heart,7.50,80
Spade,5.50,80
Heart,2.50,80
Diamond,4.50,80
'JAVA' 카테고리의 다른 글
210811_클래스와 객체(예제) (0) | 2021.08.11 |
---|---|
210811_클래스(예제) (0) | 2021.08.11 |
210811+배열+성씨검색 (0) | 2021.08.11 |
210810_2차원배열+빙고 (0) | 2021.08.10 |
210810_2차원 배열 (0) | 2021.08.10 |