본문 바로가기
GD's IT Lectures : 기초부터 시리즈/자바(JAVA) 기초부터 ~

[자바(JAVA)] 패키지와 접근 제어자

by GDNGY 2023. 4. 27.

12. 패키지와 접근 제어자

자바에서 패키지와 접근 제어자는 코드의 구조화와 캡슐화를 돕는 중요한 기능입니다.

 

12.1. 패키지의 정의와 사용

패키지(package)는 관련된 클래스와 인터페이스를 그룹화하여 이름 공간(namespace)을 구분하고 코드의 조직화를 돕는 기능입니다. 패키지는 폴더 구조로 표현되며, 클래스 파일이 해당 폴더에 저장됩니다. 패키지 이름은 일반적으로 도메인 이름을 역순으로 사용하며, 소문자로 작성합니다.

 

패키지를 사용하려면 클래스 선언부 위에 package 키워드를 사용하여 패키지를 지정합니다.

package com.example.myapp;

public class MyClass {
    // ...
}

 

12.2. import문

다른 패키지의 클래스나 인터페이스를 사용하려면 import문을 사용하여 해당 클래스나 인터페이스를 불러옵니다. import문은 클래스 선언부 위에 작성합니다.

import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        // ...
    }
}

 

와일드카드(*)를 사용하여 한 패키지의 모든 클래스를 한 번에 불러올 수 있습니다.

import java.util.*;

 

12.3. 접근 제어자 (public, private, protected, default (패키지 전용))

접근 제어자(access modifier)는 클래스, 메서드,변수 등의 접근 범위를 제한하는 역할을 합니다. 자바에서는 네 가지 접근 제어자를 제공합니다.

  • public: 모든 클래스에서 접근 가능합니다.
  • private: 선언된 클래스 내에서만 접근 가능합니다.
  • protected: 선언된 클래스와 같은 패키지에 있는 클래스, 그리고 해당 클래스를 상속받은 다른 패키지의 클래스에서 접근 가능합니다.
  • default (패키지 전용): 접근 제어자를 명시하지 않으면 기본적으로 적용되며, 같은 패키지 내의 클래스에서만 접근 가능합니다.

 

12.4. 패키지 접근

패키지 접근은 클래스와 멤버 변수, 메소드 등의 접근 범위를 관리합니다. 접근 제어자를 사용하여 클래스와 멤버의 접근을 제한하고, 필요한 경우 다른 패키지의 클래스를 import 하여 사용할 수 있습니다.

package com.example.myapp;

import java.util.ArrayList;

public class Main {
    private String name; // private 접근 제어자를 사용하여 같은 클래스에서만 접근 가능

    public void setName(String name) { // public 접근 제어 자를 사용하여 모든 클래스에서 접근 가능하게 함
        this.name = name;
    }
    protected ArrayList<String> getData() { // protected 접근 제어자를 사용하여 같은 패키지 및 상속받은 클래스에서 접근 가능
        ArrayList<String> data = new ArrayList<>();
        // ...
        return data;
    }

    void defaultMethod() { // default 접근 제어자를 사용하여 같은 패키지 내의 클래스에서만 접근 가능
        // ...
    }
}

패키지와 접근 제어자는 코드의 구조화, 캡슐화, 재사용성, 유지 관리성을 개선하는데 도움을 줍니다. 패키지를 사용하여 관련된 클래스와 인터페이스를 그룹화하고, 접근 제어자를 사용하여 적절한 가시성과 접근 범위를 설정할 수 있습니다.

반응형

댓글