static은 클래스 변수라고 한다. (인스턴스X)
final은 상수 (변하지 않는 값)
Cat 클래스
package static_final;
public class Cat {
private String name; // 인스턴스 변수 => 객체를 생성해야 사용가능
public static final String FOOD = "고양이 사료 ";
// 스테틱 상수 => static은 객체 생성 없이 클래스 이름으로 사용
public Cat(String name) {
this.name = name;
}
@Override
public String toString() {
return "Cat [name=" + name + "]" ;
}
}
App 클래스
package static_final;
public class App {
public static void main(String[] args) {
// 클래스 변수는 클래스 이름의 변수명 (객체의 변수명이 아님)
Cat cat1 = new Cat("마틸다");
Cat cat2 = new Cat("라이언");
System.out.println(cat1);
System.out.println(cat2);
System.out.println(Cat.FOOD);
System.out.println(Math.PI); // Math는 수학공식이 적힌 스태틱. 객체 생성 없이도 자동으로 불러오기 가능
// 스태틱변수나 스태틱 메소드는 클래스 이름만 적으면 객체 생성 없이도 사용 가능
}
}