인스턴스 멤버란
정적 멤버란
정적메소드 선언시 주의할 점
public class ClassName{
// 인스턴스 필드
int field1;
//인스턴스 메소드
void method1(){...}
// 정적 필드
Static int field2;
//정적 메소드
Static void method(){...}
Static void method3(){
this.field1 = 10; // (x)컴파일 에러
this.method(); // (x)컴파일 에러
field2 = 10; // (o)
method2(); // (o)
}
}
정적 메소드에서 인스턴스 멤버를 사용하고 싶다면 객체를 먼저 생성후 참조 변수로 접근해야합니다
Static void method(){
ClassName obj = new ClassName();
obj.field1 = 10;
obj.method();
}
final은 최종적이라는 뜻을 가지고 있다
초기값이 저장되면 이것이 최종적인 값이 되어
프로그램 실행 도중에 수정할수 없다
그렇다면 final은 상수인가?
final 필드는 객체마다 저장되고 생성자의 매개값을 통해서 여러가지 값을 가질수 있기 때문에 상수가 될수 없다