JAVA_33_제어자

charl hi·2021년 8월 18일
0

JAVA

목록 보기
33/53

제어자 modifier

  • 클래스와 클래스의 멤버(변수, 메소드)에 부가적인 의미 부여

1) 접근제어자

: public, protected, (아무것도없음/default), private

-> 중 1개만 쓸 수 있다.

퍼 프로 디

2) 그 외

: static, final, abstract, ...

사용 방법

  • 하나의 대상에 여러 제어자를 같이 사용할 수 있다. 단, 접근 제어자는 하나만!

  • 순서는 상관없으나, 보통 접근제어자를 제일 먼저 쓴다.



static

: 클래스의, 공통적인

static + 멤버변수

  • 모든 인스턴스에 공통으로 사용되는 클래스 변수
  • 객체 생성 없이 사용 가능
  • cv

static + 메소드

  • 객체 생성 없이 호출 가능
  • ✨✨인스턴스 멤버 (iv, 인스턴스 메소드) 사용 불가✨✨

static 초기화 블럭

  • 클래스 초기화 블럭
  • static변수(cv)의 복잡한 초기화
  • static { ... }


fianl

: 마지막의, 변경될 수 없는

final + 클래스

  • 변경 불가 클래스. 확장 불가 클래스.
  • 상속클래스의 최하 : 조상이 될 수 없는 클래스. 자식을 둘 수 없다.

final + 메소드

  • 변경 불가 메소드
  • 오버라이딩 불가 : 자식인 메소드가 덮어쓰기 못함

final + 멤버변수/지역변수

  • 값 변경 불가. 상수


abstract

: 추상의, 미완성의
-> 나중에 추상화 배울 예정!

abstract + 클래스

  • abstract메소드가 있는 클래스
  • 추상클래스, 미완성 클래스
  • 미완성 설계도니까 ✨ 인스턴스 생성 불가
  • 인스턴스 생성하려면?
    -> 추상클래스(미완성 클래스)를 상속받아서 구상클래스(완전한 클래스)를 만든 후에 객체 생성

abstract + 메소드

  • 추상메소드, 미완성 메소드
  • 선언부만 작성, 구현부{}는 없음


접근 제어자

private

: 같은 클래스 내에서만 접근 가능

(default)

: 같은 패키지 내에서만 접근 가능

-> ✨(default)클래스명

protected

: 같은 패키지 내에서 +(또는?) 다른 패키지의 자손 클래스에서 접근 가능

public

: 접근 제한 없음

-> ✨public + 클래스명

  • 다른 패키지에서 접근할 경우, import해줘야 한다!
    아니면 패키지명.클래스명으로 접근하든가!

  • 퍼 프로 디

  • public > protected > (default) > private

  • 네개 모두 멤버(변수, 메소드)에 붙을 수 있다.

  • public(오직 하나!!), (default)만 클래스에 붙을 수 있다.

강의




Ref

0개의 댓글

관련 채용 정보