static : '정적인, 고정된'이라는 뜻으로
어떤 객체에 소속되는 것이 아닌, 클래스에 고정되어 있는 변수나 메서드
int maxSpeed
를 인스턴스 변수로 만들면 각각의 객체가 하나씩 age를 가집니다.
lass Person {
int maxSpeed;
}
Person p1 = new Person();
p1.maxSpeed = 100;
Person p2 = new Person();
p2.maxSpeed = 200;
Person p3 = new Person();
p3.maxSpeed = 300;
System.out.println(p1.maxSpeed); // 100
System.out.println(p2.maxSpeed); // 200
System.out.println(p3.maxSpeed); // 300
ing maxSpeed
를 static 변수로 만들면 오직 클래스가 변수를 가집니다.
class Person {
static int maxSpeed;
}
Person p1 = new Person();
p1.maxSpeed = 100; // 이 코드는 실질적으로 `Person.maxSpeed = 100;` 으로 처리된다. 왜냐하면 p1 객체에는 maxSpeed 변수가 없고, maxSpeed 변수는 클래스에 1개만 존재하기 때문이다.
Person p2 = new Person();
p2.maxSpeed = 200;
Person p3 = new Person();
p3.maxSpeed = 300;
System.out.println(p1.maxSpeed); // 300 // 이 코드는 실질적으로 `System.out.println(Person.maxSpeed);` 와 같다.
System.out.println(p2.maxSpeed); // 300
System.out.println(p3.maxSpeed); // 300