본문 바로가기

개발자노트

클래스) 멤버변수와 클래스변수의 차이 이해(강아지 학원)

package class02;

class Dog {

	String name;

	static String[] action = new String[5]; // 올바르지 않지만 static 설명을 위해 사용

	static int index;

	void showInfo() {

		System.out.println(name + " 강아지");

		for (int i = 0; i < index; i++) {

			System.out.println(action[i]);

		}

	}

}

public class Test06 {

	public static void main(String[] args) {

		Dog dog1 = new Dog();

		dog1.name = "요요";

		Dog dog2 = new Dog();

		dog2.name = "꼬미";

		dog1.action[dog1.index] = "기다려!";

		dog1.index++;

		dog2.action[dog2.index] = "앉아";

		dog2.index++;

		dog1.showInfo();

		dog2.showInfo();

	}

}
 
출력값
 
요요 강아지
기다려!
앉아
꼬미 강아지
기다려!
앉아
 
여기서는 클래스변수를 쉽게 이해하기 위해 강아지 학원을 예로 들자면,
강아지 학원에서 특정한 명령을 하면 간식을 받는 것을 보고 옆에 강아지도 따라서
같이 배운다는 매커니즘처럼 이해하면 된다.