ref :
https://www.youtube.com/watch?v=Hmu7YH8AXmI&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp&index=76
클래스
와클래스의 멤버(멤버 변수, 메서드)
에부가적인 의미 부여
접근 제어자
는1개만
사용 가능 /그 외 제어자
는조합
가능- 종류
- 접근 제어자 :
클래스
에는public / default
가능
- public
- protected
- private
- default
- 그 외
- static
- final
- abstract
- native / transient / synchronized / volatile / strctfp
- 대상
- 클래스 :
public
/(default)
만 가능- 변수 / 메서드 :
4개 모두 가능
- private
같은 클래스 내에서만
접근 가능- default
같은 패키지 내에서만
접근 가능- protected
같은 패키지 내
에서, 그리고다른 패키지의 자손 클래스
에서 접근 가능- public
접근 제한이 없음
static
- 멤버변수
모든 인스턴스
에공통적으로 사용
되는클래스 변수(cv)
가 된다클래스 변수(cv)
는인스턴스를 생성하지 않고
도사용 가능
클래스가 메모리에 로드될 때
생성- 메서드
인스턴스를 생성하지 않고
도호출이 가능
한static 메서드
가 된다static 메서드 내
에서는인스턴스멤버들을 직접 사용할 수
X
(메모리에 올리는데다른 객체는 아직 존재하지 않기 때문
)
final
final
을 사용해 선언되면변경될 수 없는 상태
가 된다
- 클래스
확장될 수 없는 클래스
가 된다 /부모가 될 수 없다
- String :
보안상
상속받을 수 없게
해서접근할 수 없게 한다
- Math :
static 메서드의 집합
이기 때문에 상속할 일이 없음- 변수
값을 변경할 수 없는 상수
가 된다- 메서드
변경될 수 없는 메서드
가 된다오버라이딩
을 통해재정의 될 수 없다
abstract
추상화를 하기 위한
접근자
- 대상
- 클래스
: 클래스 내에추상 메서드
가선언되어 있음을 의미
- 메서드
:선언부만 작성
하고구현부는 작성하지 않은
추상 메서드
임을 알린다
- 핵심
클래스 내부
에클래스를 선언
하여 사용할 수 있음각 선언 형태
에 따라Scope가 다르다는 것
만인지
하면 된다- 원래
클래스 앞에 접근 지정자
는public / (default)만
가능
하다
-->내부 클래스
는protected / public / (default) / private
모두 가능
- 장점
내부적
으로직접 접근
해서불필요한 객체 생성
을막을 수 있음
- 내부 클래스의 종류
- 인스턴스 내부 클래스 :
인스턴스 변수(iv)
와동일한 Scope
- 스태틱 내부 클래스 :
클래스 변수(cv)
와동일한 Scope
- 지역 내부 클래스 :
지역 변수(lv)
와동일한 Scope
- 익명 내부 클래스