Java에서 액세스 한정자는 클래스, 생성자, 변수, 메서드 또는 데이터 멤버의 범위를 제한하는 데 도움이 됩니다. 요소와 함께 사용되는 액세스 한정자에 따라 사용자에게 보안, 접근성 등을 제공합니다. 이 기사에서는 Java 액세스 수정자, 해당 유형 및 액세스 수정자의 사용에 대해 알아 보겠습니다.
Java의 액세스 수정자 유형
Java에는 네 가지 유형의 액세스 한정자를 사용할 수 있습니다.
- 기본값 – 키워드가 필요하지 않습니다.
- 사적인
- 보호됨
- 공공의
1. 기본 액세스 수정자
클래스, 메소드 또는 데이터 멤버에 대해 액세스 한정자가 지정되지 않은 경우 – 기본 기본적으로 액세스 수정자. 액세스 한정자를 사용하여 선언되지 않은 데이터 멤버, 클래스 또는 메서드(예: 기본 액세스 한정자를 갖는 경우)에 액세스할 수 있습니다. 동일한 패키지 내에서만 .
이 예제에서는 두 개의 패키지를 생성하고 패키지의 클래스는 기본 액세스 한정자를 가지며 두 번째 패키지의 클래스에서 한 패키지의 클래스에 액세스하려고 시도합니다.
프로그램 1:
자바 // Java program to illustrate default modifier package p1; // Class Geek is having Default access modifier class Geek { void display() { System.out.println('Hello World!'); } }>
프로그램 2:
관계이다자바
// Java program to illustrate error while // using class from different package with // default modifier package p2; import p1.*; // This class is having default access modifier class GeekNew { public static void main(String args[]) { // Accessing class Geek from package p1 Geek obj = new Geek(); obj.display(); } }> 산출:
Compile time error>
2. 개인 액세스 수정자
개인 액세스 수정자는 키워드를 사용하여 지정됩니다. 사적인 . 비공개로 선언된 메서드나 데이터 멤버에만 액세스할 수 있습니다. 수업 내에서 그들은 선언됩니다.
- 기타 클래스 그만큼 동일한 패키지에 액세스할 수 없습니다. 이 멤버들.
- 최상위 클래스나 인터페이스는 비공개로 선언할 수 없습니다.
- private은 둘러싸는 클래스 내에서만 볼 수 있음을 의미합니다.
- 보호됨은 바깥쪽 클래스와 모든 하위 클래스 내에서만 표시됨을 의미합니다.
따라서 클래스 적용 측면에서 이러한 수정자는 최상위 클래스가 아닌 중첩 클래스에만 적용됩니다.
이 예에서는 동일한 패키지 p1 내에 두 개의 클래스 A와 B를 만듭니다. 클래스 A의 메서드를 비공개로 선언하고 클래스 B에서 이 메서드에 액세스하여 결과를 확인합니다.
새로운 라인 파이썬자바
// Java program to illustrate error while // Using class from different package with // Private Modifier package p1; // Class A class A { private void display() { System.out.println('techcodeview.com'); } } // Class B class B { public static void main(String args[]) { A obj = new A(); // Trying to access private method // of another class obj.display(); } }> 산출:
error: display() has private access in A obj.display();>
3. 보호된 액세스 수정자
보호된 액세스 수정자는 키워드를 사용하여 지정됩니다. 보호됨 .
protected로 선언된 메서드나 데이터 멤버는 다음과 같습니다. 동일한 패키지 또는 다른 패키지의 하위 클래스 내에서 액세스할 수 있습니다.
이 예에서는 두 개의 패키지 p1과 p2를 생성합니다. p1의 클래스 A는 공개되어 p2에서 액세스할 수 있습니다. 클래스 A의 메서드 표시는 보호되고 클래스 B는 클래스 A에서 상속되며 이 보호된 메서드는 클래스 B의 개체를 생성하여 액세스됩니다.
프로그램 1:
자바 // Java Program to Illustrate // Protected Modifier package p1; // Class A public class A { protected void display() { System.out.println('techcodeview.com'); } }>
프로그램 2:
// Java program to illustrate // protected modifier package p2; // importing all classes in package p1 import p1.*; // Class B is subclass of A class B extends A { public static void main(String args[]) { B obj = new B(); obj.display(); } }> 산출:
techcodeview.com>
공개 액세스 수정자
공개 액세스 수정자는 키워드를 사용하여 지정됩니다. 공공의 .
- 공개 액세스 수정자는 가장 넓은 범위 다른 모든 액세스 수정자 중에서
- 공개로 선언된 클래스, 메소드 또는 데이터 멤버는 어디서나 접근 가능 프로그램에서. 공개 데이터 구성원의 범위에는 제한이 없습니다.
프로그램 1:
자바 // Java program to illustrate // public modifier package p1; public class A { public void display() { System.out.println('techcodeview.com'); } }> 프로그램 2:
자바 package p2; import p1.*; class B { public static void main(String args[]) { A obj = new A(); obj.display(); } }> 산출:
techcodeview.com>
중요한 사항:
SQL 연결
- 다른 프로그래머가 귀하의 클래스를 사용하는 경우 특정 구성원에게 적합한 가장 제한적인 액세스 수준을 사용해 보십시오. 특별한 이유가 없는 한 비공개를 사용하세요.
- 상수를 제외한 공개 필드는 피하세요.
Java에서 액세스 수정자를 사용하는 알고리즘
다음은 Java에서 액세스 수정자를 사용하기 위한 기본 알고리즘입니다.
- 클래스를 정의합니다: 관리하려는 개체를 나타내는 클래스를 만듭니다.
- 인스턴스 변수를 정의합니다. 클래스 내에서 관리하려는 데이터를 나타내는 인스턴스 변수를 정의합니다.
- 액세스 한정자 지정: 각 인스턴스 변수에 대해 변수의 가시성을 결정하는 액세스 한정자를 지정합니다. Java의 세 가지 주요 액세스 한정자는 비공개, 보호 및 공개입니다.
- 클래스 내에서만 액세스할 수 있는 변수에는 private을 사용하십시오. 클래스 외부에서 변수에 액세스하지 못하게 하려면 개인 액세스 한정자를 사용하세요. 이는 가장 제한적인 액세스 수정자이며 최고 수준의 캡슐화를 제공합니다.
- 클래스 및 해당 하위 클래스 내에서 액세스할 수 있는 변수에는 protected를 사용하세요. : 클래스 및 해당 하위 클래스 내에서 변수에 대한 액세스를 허용하려면 protected 액세스 한정자를 사용하세요. 이는 비공개보다 덜 제한적이며 일정 수준의 상속을 제공합니다.
- 어디서나 액세스할 수 있는 변수에는 public을 사용하세요. : 어디에서나 변수에 대한 액세스를 허용하려면 공용 액세스 한정자를 사용하세요. 이는 제한이 가장 적은 액세스 수정자이며 최소한의 캡슐화를 제공합니다.
- accessor 및 mutator 메서드를 사용하여 변수에 대한 액세스를 관리합니다. 변수에 액세스하고 수정하려면 변수에 공용 액세스 한정자가 있더라도 접근자(getter) 및 변경자(setter) 메서드를 사용하세요. 이는 추상화 수준을 제공하고 코드를 보다 유지 관리하고 테스트하기 쉽게 만듭니다.
액세스 수정자에 대한 FAQ
1. Java의 액세스 수정자는 무엇입니까?
Java의 액세스 한정자는 클래스의 메소드, 생성자, 필드 및 메소드의 사용을 제어하는 데 사용되는 키워드입니다.
2. Java에서 void란 무엇입니까?
Java에서 Void는 메서드에 반환 값을 지정하지 않는 데 사용됩니다.
3. Java의 12가지 수정자는 무엇입니까?
12 Java의 수정자는 공개, 비공개, 보호, 기본, 최종, 동기화, 추상, 기본, 엄격한 fp, 임시 및 휘발성입니다.