6-12~13 클래스 변수, 인스턴스 변수

oyeon·2020년 12월 23일
0

(완)객체지향 개념

목록 보기
8/37

속성 : 무늬, 숫자, 폭, 높이
개별 속성(iv) : 무늬, 숫자
공유 속성(cv) : 폭, 높이

class Card {
    String kind;	// 무늬
    int number;		// 숫자
    static int width = 100;	// 폭
    static int height = 250;	// 높이
}

cv의 올바른 사용법

Card c = new Card();
c.kind = "HEART";
c.number = 5;
Card.width = 200;	// c.width = 200 가능하나 권장안함
Card.height = 300;	// c.height= 300 가능하나 권장안함

※ width, height의 경우 공유 속성이다. 따라서 c1.width = 50; c1.height = 80; 으로 선언하면 자칫 c1의 속성만이 변경되는 것으로 느껴질 수 있다. 하지만 사실 공유속성이므로 c2.width, c2.height도 마찬가지로 50, 80을 출력한다. 이는 혼동을 주는 안 좋은 방법이므로 권장하지 않는다.

cf )
Method Area 영역 : 클래스 존재
(cv는 메모리에 1개만 만들어짐. 클래스 최초 선언 시 Card c1 = new Card();)

Heap 영역 : 객체를 만들 때마다 생김
(iv 여러개 존재 Card c1 = new Card(); Card c2 = new Card(); ...)

profile
Enjoy to study

0개의 댓글