- 객체를 생성하지 않고 사용 가능
class A {
int x; // 인스턴스 필드
void instanceMet(){} // 인스턴스 메서드
}
class B {
static int y; // 정적 필드
static void staticMet(){}// 정적 메서드
}
예상했던 대로 c1 객체에 있는 x와 y의 필드값이 출력 되었다.
Count 클래스의 인스턴스 c2를 생성 후 필드 초기화를 하지 않고 x,y 필드를 출력하였다.
예상은 x와 y가 모두 0이 나올 것이라고 생각했었는데
c2의 y가 19로 출력 되었다.
c2의 y를 200 으로 초기화 한 후 c1 y와 c2 y를 출력해 보았다.
c1과 c2의 필드인 y의 값이 모두 200이 되었다.
static 필드는 클래스에 고정된다.
Count 생성자로 100개의 인스턴스를 만들어도 filed y는 1개 이다.
Count class의 필드 y는 static으로 설정되어 있고, static 필드는 참조할때
인스턴스.y가 아닌
클래스.y인 Count.y 으로 표현하는 것이 맞다.
c1.y ; c2.y; 를 모두 Count.y로 변경 하였다.
static 필드는 객체 생성 없이 가능하다.
static 필드가 아닌 x는 Count.x가 아닌 Count 인스턴스이름 = new Count(); 로 객체를 생성한 후
인스턴스이름.x로 해야 참조 가능
Math.PI도 static 필드로 객체 생성없이 사용 가능하다.
[ Math 클래스의 PI ]
static void s_met(){
a = 10; (x)
met(); (x)
} 교안 오타 수정
'JAVA' 카테고리의 다른 글
java_fianl_22.06.09(day13) (0) | 2022.06.09 |
---|---|
java_static활용_싱글턴 패턴_22.06.09(day13) (0) | 2022.06.09 |
java_상속예제_22.06.08(day12) (0) | 2022.06.08 |
java_상속_22.06.08(day12) (0) | 2022.06.08 |
java_캡슐화_22.06.08(day12) (0) | 2022.06.08 |