본문 바로가기
Java Tutorial

[Java 필수 지식] 접근제어자

by 미소5 2024. 11. 17.
728x90
반응형
제어자=     접근제어자(public, protected, private) +그 외 static, final, abstract 등등


  • 제어자는 클래스와 클래스의 멤버에 부가적인 의미를 부여한다.
  • 하나의 대상에 여러 제어자 사용 가능하나,  접근제어자는 1개만 가능!

 


  • 접근제어자:  private ( 아무것도 안붙임 ) <  protected  public
제어자 같은 클래스 같은 패키지 자손클래스 전체
public O O O O
protected O O O  
(  X  ) O O    
private O      

 

  • public
    • 접근제한이 전혀 없음
  • protected
    • 같은 패키지 내에서, 그리고 다른 패키지의 자손클래스에서 접근 가능
  • ( X )
    • 같은 패키지 내에서만 접근 가능
  • private
    • 같은 클래스 내에서만 접근 가능

 

 


 

  • final
제어자 대상 의미
final

클래스 변경될 수 없는, 확장될 수 없는 클래스 (다른 클래스의 조상이 될 수 없다)
메소드 변경될 수 없는 메소드 ( 오바라이딩(재정의)될 수 없다 )
멤버변수, 지역변수 값을 변경할 수 없는 상수

 

-예시

final int hour = 15;	//상수
// hour = 10;   //값 변경 불가

  • abstract
제어자 대상 의미
abstract 클래스 추상메소드를 포함한 클래스 (미완성클래스)
* 추상클래스는 객체를 생성할 수 없다.
메소드 추상메소드 :  중괄호{}가 없는 메소드 (선언부만 있고 구현부는 없다)

 

 


  • static
제어자 대상 의미
static 멤버변수 * 클래스변수는 객체 생성 없이 사용 가능
* 모든 인스턴스에 공통으로 사용되는 클래스변수
메소드 * 객체 생성 없이 호출가능한 static메소드
  • static은 언제 붙여야 할까?
    • 멤버( 변수&메소드 ) 중에서 공통 속성에 static을 붙인다. (인스턴스 변수는 개별속성, 클래스 변수는 공통속성)
    • 인스턴스멤버(인스턴스변수& 인스턴스메소드)를 사용하지않는 메소드에  static을 붙인다.

 


  • 인스턴스 변수와 클래스 변수의 차이
    • 인스턴스 변수객체 생성 후 사용할 수 있고, 클래스 변수 객체 생성 없이 아무때나 사용할 수 있다. 
  • 인스턴스 변수 사용
클래스명 참조변수명=new 클래스명;           //객체 생성
참조변수명.인스턴스변수
  • 클래스 변수 사용
  클래스명.클래스변수		//객체 생성 없이 아무때나 사용 (객체 자동생성됨)

 

 

 

728x90
반응형

'Java Tutorial' 카테고리의 다른 글

[Java] Map컬렉션  (1) 2024.07.14
[Java] 스트림 (Stream) +Optional 클래스  (0) 2024.07.02
[Java] 인터페이스 (interface)  (0) 2024.06.16
[Java] StringBuilder 클래스  (0) 2023.07.24
[Java] 예외 처리  (0) 2023.07.02