접근 지정자
- 클래스나 멤버(멤버 변수(필드, 속성), 멤버 함수(메소드))에 사용됨
멤버에 접근하는 클래스 |
접근 지정자 | |||
private | default | protected | public | |
같은 패키지의 클래스 | x | o | o | o |
다른 패키지의 클래스 | x | x | x | x |
접근 가능 영역 | 동일 클래스 내 | 동일 패키지 내 | 동일 패키지 내 + 자식 클래스 | 모든 클래스 |
- 클래스
- 멤버
static 멤버
non-static 멤버 | static 멤버 | |
선언 | class Sample { int n; void g() {…} } |
class Sample { static int n; static void g() {…} } |
공간적 특성 | 멤버는 객체마다 별도 존재 - 인스턴스 멤버 |
멤버는 클래스당 하나 생성 - 객체 내부가 아닌 별도의 공간에 생성 |
시간적 특성 | 객체 생성 시에 멤버 생성 - 객체 생성 후 사용 가능 - 객체가 사라지면 멤버도 사라짐 |
클래스 로딩 시 멤버 생성 - 객체 생성 전에도 사용 가능 - 객체가 사라져도 멤버는 사라지지 않음 |
공유의 특성 | 공유되지 않음 - 각각의 공간 유지 |
동일 클래스의 모든 객체들에 의해 공유 |
- static 멤버를 객체의 멤버로 접근
- n : 속성 n // g(),h() : 메소드
- m : static 멤버 변수 m // f() : static 멤버 함수 f
- s1 과 s2 객체에서 static 멤버는 공유되지만 non-static 멤버는 공유되지 않음
-> n의 값은 각 객체가 다르지만 m의 값은 같음
- static 멤버를 클래스 이름으로 접근
- StaticSample.m -> StaticSample 클래스의 static 멤버 변수 m에 접근
- s1.m -> 객체 s1의 static 멤버변수 m에 접근
- StaticSample.f() -> StaticSample 클래스의 static 멤버 함수 f()에 접근
- static 활용
'java,jsp,spring > java' 카테고리의 다른 글
java 추상클래스, 인터페이스 (0) | 2022.07.31 |
---|---|
java 상속 (0) | 2022.07.31 |
java 객체 배열 등 (0) | 2022.07.25 |
java 객체 지향 (0) | 2022.07.23 |
java 예외 처리 (0) | 2022.07.20 |