보호된 키워드는 변수, 메서드, 생성자에 액세스할 수 있는 범위를 제한하는 데 사용되는 키워드입니다. Java의 액세스 수정자 유형 중 하나입니다. 이는 메소드, 변수, 생성자 및 클래스의 범위를 구별하는 데 사용됩니다. Java에는 4가지 유형의 액세스 수정자가 있으며 다음과 같습니다.
광고 이 카테고리에서 인기 있는 강좌 JAVA MASTERY - 전문 분야 | 78 코스 시리즈 | 15가지 모의고사변수나 메소드가 보호됨으로 표시되면 아래 메소드를 통해서만 액세스할 수 있습니다.
보호 키워드는 클래스 외부의 변수에 액세스하기 위해 도입되었으며(비공개 키워드의 경우 불가능) 특정 메소드만 동일한 것을 상속할 수 있다는 점에서 공개 키워드와 비공개 키워드의 조합과 같습니다.
보호된 키워드는 앞에 '보호됨'이라는 키워드가 붙어 선언됩니다. 먼저 아래와 같이 “MyClass”라는 클래스 중 하나에서 보호 키워드를 선언합니다.
class MyClass { protected String name = "Katy"; protected int token= 55; } public class SubClass extends MyClass { public static void main(String[] args) { SubClass obj = new SubClass(); System.out.println(obj.name + "'s token number is: " + obj.token); } }
여기서 "SubClass" 클래스는 "MyClass"를 확장하므로 여기서는 SubClass의 객체를 생성하고 변수를 호출하여 protected 키워드를 사용할 수 있습니다.
출력:
보호된 키워드는 멤버 수준, 즉 함수 외부에 선언되고 정적이 아닌 내부 클래스에서만 사용할 수 있습니다. Protected 키워드는 클래스 외부 및 다른 패키지의 하위 클래스에서 액세스할 수 있다는 점에서 private 키워드와 다릅니다.
보호된 키워드 사용에 대한 몇 가지 제한 사항은 다음과 같습니다.
보호 키워드의 개념을 더 잘 이해할 수 있는 몇 가지 예를 살펴보겠습니다.
여기에서는 "package1"의 상위 클래스에서 키워드를 호출하려고 합니다. "package2"에는 "ProtectedExample2"가 생성되어 있고 여기서는 "disp"라는 키워드가 호출됩니다. 그러나 하위 클래스가 기본 클래스에서 해당 값을 상속받지 않았으므로 코드는 키워드에 액세스할 수 없으며 표시된 대로 예외가 발생합니다.
코드:
package com.package1; public class Example { protected String disp="Printing message from protected variable from package1"; } //Create new package as com.package2 //Create new class as ProtectedExample2 package com.package2; import com.package1.Example; public class ProtectedExample2 { public static void main(String[] args) { ProtectedExample2 a=new ProtectedExample2(); System.out.println(a.disp); } }
출력:
이 예에서는 보호된 클래스 “ProtectedExample5”에 액세스하려고 합니다. 이로 인해 컴파일 오류가 발생합니다.
코드:
protected class ProtectedExample5 { void display() { System.out.println("Try to access outer protected class"); } public static void main(String[] args) { ProtectedExample5 p=new ProtectedExample5(); p.display(); } }
출력:
아래 예에서는 먼저 "com.package1"이라는 패키지를 만들고 "Example"이라는 이름으로 새 클래스를 만듭니다. 여기서는 키워드 "disp"가 보호됨을 선언합니다. 우리는 "Example1" 클래스를 사용하여 이 보호된 키워드를 표시하려고 합니다. 이를 위해서는 먼저 상위 클래스 “Example1”의 객체를 생성한 후 키워드 “disp”에 할당된 값을 출력해야 합니다.
코드:
package com.package1; public class Example { protected String disp="Printing message from protected variable from package1"; } class Example1 { public static void main(String[] args) { Example obj=new Example(); System.out.println(obj.disp); } }
출력:
Using the same code as above, we shall see how to call the protected keyword by creating a different package, “package2”. A protected keyword can be accessed only through inheritance from package1; hence “ProtectedExample2” is extended from “Example”. In a similar way as the first example, we have to create an object of the class “ProtectedExample2” in order to access the protected keyword from package “com.package1”.
Code:
package com.package2; import com.package1.Example; public class ProtectedExample2 extends Example{ public static void main(String[] args) { ProtectedExample2 a=new ProtectedExample2(); System.out.println(a.disp); } }
Output:
Here the class is declared as protected inside the inherited class “Example5”. Also, a protected class called “Example” is declared outside the function but in the same package. When an object of “Example5” is created and the protected class “disp()” is called, we can observe that the overridden method is called instead of the outside class. This is because we shall not be able to import “com.package1” and its class “Example” since it is not visible and causes a compilation error.
Code:
//Create a file by Example.java package com.package1; class Example { protected void disp() { System.out.println("Printing from protected class in the outside function"); } } //Create a class by the name Example5.java public class Example5 extends Example { protected void disp() { System.out.println("Accessing the overriden function"); } public static void main(String[] args) { Example5 exp=new Example5(); exp.disp(); } }
Output:
The importance of protected keyword in java is:
As shown in the above examples, we choose protected keywords depending on the access level we require at the code level. They help greatly in cases where the same variable or class needs to be accessed from other inherited methods in the program. A parent-child relationship is always present between the parent class and its sub-classes which are using the protected keyword.
위 내용은 Java의 보호된 키워드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!