logo

Java의 액세스 수정자

Java에서 액세스 한정자는 클래스, 생성자, 변수, 메서드 또는 데이터 멤버의 범위를 제한하는 데 도움이 됩니다. 요소와 함께 사용되는 액세스 한정자에 따라 사용자에게 보안, 접근성 등을 제공합니다. 이 기사에서는 Java 액세스 수정자, 해당 유형 및 액세스 수정자의 사용에 대해 알아 보겠습니다.

Java의 액세스 수정자 유형

Java에는 네 가지 유형의 액세스 한정자를 사용할 수 있습니다.

  1. 기본값 – 키워드가 필요하지 않습니다.
  2. 사적인
  3. 보호됨
  4. 공공의

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, 임시 및 휘발성입니다.