본문 바로가기

코딩 하루 1문제 프로젝트

클래스 변수와 인스턴스 변수

반응형
public class Card {
	String kind;
	int number;
	
	static int width = 100;
	static int height = 250;
	
	
	public static void main(String[] args) {
		Card c1 = new Card(); 
		Card c2 = new Card();
		
		System.out.println("Card.width = " +Card.width);
		System.out.println("Card.height = " +Card.height);
		
		c1.kind = "Spade";
		c1.number = 7;
		
		c2.kind = "Heart";
		c2.number = 3;
		
		System.out.println("c1은" + c1.kind + "," + c1.number + "이며, 크기는 (" + c1.width +","+ c1.height +")" );
		System.out.println("c2는" + c2.kind + "," + c2.number + "이며, 크기는 (" + c2.width +","+ c2.height +")" );
		
		Card.width = 50;		// 클래스 변수 값을 변화시킨다. c1말고 Card로 쓰는 것이 정확함.
		Card.height = 80;
		
		System.out.println("c1은" + c1.kind + "," + c1.number + "이며, 크기는 (" + c1.width +","+ c1.height +")" );
		System.out.println("c2는" + c2.kind + "," + c2.number + "이며, 크기는 (" + c2.width +","+ c2.height +")" );
		
	}
}

클래스 변수(Static붙음)는 객체 생성 없이 '클래스이름.클래스 변수'로 직접 사용이 가능하다. 

 

인스턴스 변수의 값을 변경하는 것과 클래스 변수의 값을 변경하는 것을 연습할 수 있는 문제다. 

 

클래스 변수는 인스턴스(객체)가 하나의 저장공간을 공유하기 때문에, 항상 공통된 값을 갖는다. 

반응형