Cat 클래스 static 변수추가
package static_variable;
public class Cat {
private String name; // 인스턴스 변수 => 객체를 생성해야 사용가능
public static final String FOOD = "고양이 사료 ";
private static int count = 0;
public Cat(String name) {
this.name = name;
count++; // 객체 생성시 count 증가
}
public int getCount() {
return count;
}
@Override
public String toString() {
return "Cat [name=" + name + "]" ;
}
}
App 클래스
package static_variable;
public class App {
public static void main(String[] args) {
// 스태틱 변수는 클래스의 변수로 각각의 객체에서 공유가능
// 스태틱 변수는 객체를 만들 때 생성하는 게 아니라 클래스에 존재함
Cat cat1 = new Cat("마틸다");
Cat cat2 = new Cat("라이언");
Cat cat3 = new Cat("울버린");
System.out.println(cat1);
System.out.println(cat2);
System.out.println(cat3);
System.out.println(Cat.FOOD);
System.out.println(cat1.getCount());
System.out.println(cat2.getCount());
System.out.println(cat3.getCount());
}
}
static 변수 count는 객체와 상관없이 클래스만 가지고 접근
그러고 생성자에 count++ 있어서 고양이 객체를 만들면 증가
각각의 고양이 객체 cat1, cat2, cat3에서 메서드 getCount()로 값을 가져와서 확인한다