221214 JAVA

거니·2022년 12월 14일
0

JAVA

목록 보기
9/14

접근지정자

클래스나 일부 멤버를 공개하여 다른 클래스에서 접근하도록 허용
객체지향 언어의 캡슐화 정책은 멤버를 보호하는 목적
접근지정자에는 ( private, 디폴트, protected, public ) 4가지가 있다

private

-외부로부터 차단
-동일 클래스 내에서만 접근 허용
-상속받은 서브클래스 접근 불가

디폴트(접근지정자 생략)

-동일패키지에 허용
-같은 패키지 내의 다른클래스에게 접근 허용
-접근지정자로 default를 입력하는 것이 아닌 생략하는 것으로 지정한다.

protected

-동일 패키지와 자식클래스 까지 허용
-같은패키지 내의 다른 모든 클래스에게 접근 허용

public

-모든 클래스에 허용
-패키지에 관계 없이 모든 클래스에게 접근 허용

예시


public인 a와 디폴트인 c는 동일한 패키지 내에 있는 클래스에서 접근하는게 가능하지만
private인 b는 같은 패키지 내에 있지만 다른 클래스이기 때문에 접근이 불가능 하다.

singleton


static멤버

static

객체마다 생기는 것이 아님
공간적 특성 - 클래스당 하나만 생성 (클래스 멤버)
시간적 특성 - 클래스가 로딩될 때 공간 할당(객체가 생기기 전에 이미 생성됨)
공유의 특성 - 동일한 클래스의 모든 객체에 의해 공유

non-static

공간적 특성 - 멤버들은 객체마다 독립적으로 별도 존재 (인스턴스 멤버)
시간적 특성 - 객체 생성 시에 멤버 형성됨
비공유 특성 - 멤버들은 다른 객체에 의해 공유되지 않고 베타적

static 메소드의 제약 조건

static메소드에는 static 멤버만 사용 가능
non-static메소드에는 static 멤버 사용 가능
static은 객체 없이도 존재하기 때문에 this 사용 불가능

final

final 클래스

final클래스를 지정해 주면 더이상 상속이 불가능
(기능을 여기서 멈춘다)

finl 메소드

오버라이딩할 수 없는 메소드임을 선언
오버라이딩할 수 없게 하고 무조건 상속받아 사용하는 메소드를 지정할때 사용

final 필드

final로 필드를 선언하면 필드는 상수가 된다.
상수 필드는 한 번 초기화 되면 값의 변경이 불가능해짐.

0개의 댓글