본문 바로가기

자바

접근제어자와 제어자


접근제어자 - public / protected / default / private


public : 접근 제한이 전혀 없다.


protected : 같은 패키지와 다른 패키지의 자손클래스에서 접근 가능


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


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


접근제어자의 사용범위

클래스 - public,default

메서드 - 접근제어 모두 사용 가능

멤버변수 - 접근제어자 모두 사용 가능

지역변수 - 접근제어자 모두 사용 불가능



제어자 - static / final, abstract, native, transient, synchronized, volatile, strictfp


static : 클래스의, 공통적인(멤버변수, 메서드, 초기화블럭)

클래스가 실행될 때 메모리에 바로 올라오게 되어 인스턴스 생성을 하지 않고도 멤버변수나 메서드를 사용할 수 있다.

인스턴스 메서드와 static 메서드의 근본적인 차이는 메서드 내에서 인스턴스 멤버를 사용하는가의 여부에 있다.

인스턴스 멤버를 사용하지 않는 메서드는 static을 붙여서 static메서드로 선언하는 것을 고려해봐야 한다.


final : 마지막의, 변경될 수 없는(클래스 메서드 멤버변수 지역변수)

클래스에 사용하면 상속을 줄 수 없다.(조상클래스가 될 수 없다)

메서드에 사용하면 오버라이딩을 통해 재정의 될 수 없다.

변수에 사용하면 값을 변경할 수 없는 상수가 된다.(final이 붙는 변수의 이름은 모든글자를 대문자로 선언한다 ex-final int NUMBER;)


abstract : 추상의, 미완성의(클래스, 메서드)

클래스에 사용하면 해당 클래스안에 추상메서드가 선언되어있음을 말한다.

메서드에 사용하면 선언부만 작성하고 구현부는 작성하지 않은 추상메서드임을 알린다.