본문 바로가기

java,jsp,spring/java

java 접근 지정자, static

접근 지정자

  • 클래스나 멤버(멤버 변수(필드, 속성), 멤버 함수(메소드))에 사용됨    
멤버에 접근하는
클래스
접근 지정자
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