JAVA 패키지, 접근 제어자

다람·2023년 2월 22일
0

JAVA

목록 보기
10/27
post-thumbnail

패키지

  • 클래스 + 인터페이스의 집합을 의미
  • 모든 클래스는 반드시 하나 이상의 패키지에 포함되어야 한다.

import 문의 선언

  1. import 패키지이름.클래스이름;
  2. import 패키지이름*;

접근 제어자

  • 객체 지향에서 정보 은닉이란 사용자가 굳이 알 필요가 없는 사용자로부터 숨겨야 한다는 개념이다. 이런 정보 은닉을 위해 접근 제어자라는 기능을 제공하고 있다.

접근 제어자 종류

  1. private
    • 같은 클래스 내에서만 접근 가능하다.
  2. public
    • 접근 제한이 전혀 없다.
  3. default
    • 같은 패키지만 접근 가능하다.
  4. protected
    • 같은 패키지 내에서, 다른 패키지의 자손 클래스에서 접근 가능하다.
    • 부모 클래스에서는 public, 외부에서는 private로 취급

접근 제어자의 접근 범위

접근 제어자를 사용하는 이유

  • 클래스의 내부에 선언된 데이터를 보호하기 위해서이다.
    데이터가 유효한 값을 유지하도록 또는 비밀번호와 같은 데이터를 외부에서 함부로 변경하지 못하도록 하기 위해서 외부로부터 접근을 제한하는 것이 필요하다.
  • 이것을 데이터 감추기 하고하며 객체 지향 개념에선 캡슐화라고 한다.

그 외 기타 제어자가 있다.

final 제어자

  • 변경할 수 없다는 의미
  • 필드나 지역 변수에 사용하면 값을 변경할 수 없는 상수가 된다.
  • 클래스에 사용하면 해당 클래스는 다른 클래스가 상속받을 수 없다.
  • 메소드에 사용하면 오버라이딩을 할 수 없다.

final 사용할 수 있는 대상 : 클래스, 메소드, 필드, 지역변수

// 클래스 사용
public final class MyClass{
		...
}

// 메소드 사용
public final  void myMothod(){
		...
}

// 필드 선언
private final String name;

static 제어자

  • 공통적인 이라는 의미로 사용
  • 변수에 사용하면 해당 변수를 클래스 변수로 만들어준다.
  • 메소드에 사용하면 해당 메소드를 클래스 메소드로 만들어준다.

static 제어자를 가지는 멤버 특징

  1. 프로그램 시작 시 최초에 단 한 번만 생성되고 초기화된다.
  2. 인스턴스를 생성하지 않고도 바로 사용할 수 있게 된다.
  3. 해당 클래스이 모든 인스턴스가 공유한다.

static 사용할 수 있는 대상 : 메소드, 필드, 초기화 블록

abstract 제어자

  • 추상적인 의미로 사용
  • 선언부만 있고 구현부가 없는 메소드를 추상 메소드라고 하며 반드시 abstract 제어자를 붙여야 한다.
  • 하나 이상의 추상 메소드가 포함하고 있는 추상 클래스도 반드시 abstract 제어자를 붙여야 한다.

abstract 사용할 수 있는 대상 : 클래스, 메소드

제어자의 조합

profile
안녕

0개의 댓글