JAVA

210811_클래스와 객체

요옫 2021. 8. 11. 12:18

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