>  기사  >  Java  >  자바의 비공개

자바의 비공개

WBOY
WBOY원래의
2024-08-30 15:22:241080검색

Java에서 'private' 키워드는 Java 코드 블록의 클래스, 메소드 또는 변수에 대한 접근성을 제한하는 데 사용됩니다. 프로그램에서 클래스, 메서드 또는 변수에 비공개 권한이 부여된 경우 이는 공개 메서드와 달리 클래스 또는 메서드 외부에서 특정 클래스, 메서드 또는 변수에 액세스할 수 없음을 의미합니다. Private 키워드는 일반적으로 Java의 완전히 캡슐화된 클래스에서 사용됩니다.

Java에서 개인 키워드는 어떻게 작동하나요?

Java의 개인 키워드는 특정 클래스 내에서 작동합니다. 클래스 외부에서는 접근이 불가능합니다. 클래스/클래스 및 인터페이스/인터페이스 외부에서는 작동하지 않습니다. Private 키워드는 클래스의 멤버가 PRIVATE이고 완전히 캡슐화된 클래스에서도 잘 작동합니다. Private 키워드, 변수 또는 메서드는 클래스 외부에서 PRIVATE METHOD를 호출하기 위해 일부 액세스 수정자를 사용하여 하위 클래스/클래스로 재정의될 수도 있습니다. 이를 통해 Private 키워드는 Private Access Modifier를 사용하여 클래스 외부에서도 작동합니다.

무료 소프트웨어 개발 과정 시작

웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등

다음은 개인 수정자의 몇 가지 예입니다.

예시 #1

여기에서는 아래 예에 표시된 클래스 AB에서 액세스하는 개인 데이터 멤버로 인해 컴파일 오류를 표시하는 개인 액세스 수정자의 예를 설명합니다. Private 메서드나 Private 멤버는 특정 클래스 내에서만 액세스할 수 있습니다.

코드:

class AB{
private double number = 100;
private int squares(int a){
return a*a;
}
}
public class Main{
public static void main(String args[]){
AB obj = new AB();
System.out.println(obj.number);
System.out.println(obj.squares(10));
}
}

출력:

자바의 비공개

예시 #2

아래 프로그램에서 PRIVATE 키워드의 사용을 보여주는 예입니다.

코드:

class Emp{
private int id1;
private String name14;
private int age14;
public int getId1() {
return id1;
}
public void setId(int id1) {
this.id1 = id1;
}
public String getName14() {
return name14;
}
public void setName14(String name14) {
this.name14 = name14;
}
public int getAge14() {
return age14;
}
public void setAge14(int age14) {
this.age14 = age14;
}
}
public class Main{
public static void main(String args[]){
Emp e=new Emp();
e.setId(1473);
e.setName14("Pavan Kumar Sake");
e.setAge14(24);
System.out.println(e.getId1()+" "+e.getName14()+" "+e.getAge14());
}
}

출력:

자바의 비공개

예시 #3

이 예에서는 기본값인 액세스 한정자를 사용하여 PRIVATE METHOD를 하위 클래스로 재정의하는 방법을 볼 수 있습니다. 하위 클래스에서 상위 클래스 메서드를 호출하는 것도 허용되지 않습니다.

코드:

class ABC{
private void msg()
{
System.out.println("Hey Buddy this is the parent class method"); //Output of the Private Method
}
}
public class Main extends ABC{ // Private method is overridden using the access modifier
void msg()
{
System.out.println("Buddy this is the child class method");
}
public static void main(String args[]){
Main obj=new Main();
obj.msg();
}
}

출력:

자바의 비공개

예시 #4

이 예에서는 PRIVATE METHOD가 클래스 외부에서 호출될 수 없음을 보여줍니다. 이제 클래스 런타임 동작을 변경하여 Private 메서드가 Outside 클래스에서 호출됩니다.

코드:

import java.lang.reflect.Method;
class ABC {
private void display()
{
System.out.println("Hey Now private method is invoked/Called");
}
}
public class Main{
public static void main(String[] args)throws Exception{
Class d = Class.forName("ABC");
Object p= d.newInstance();
Method n =d.getDeclaredMethod("display", null);
n.setAccessible(true);
n.invoke(p, null);
}
}

출력:

자바의 비공개

예시 #5

Java 프로그래밍 언어의 비공개 메소드 및 필드의 예입니다. 여기서 프라이빗 메서드/메서드는 컴파일 타임에 정적 바인딩을 사용하며 재정의할 수도 없습니다. Private 변수는 실제로 내부 클래스 내부에서 액세스할 수 있으므로 Private 변수 출력과 혼동하지 마십시오. PRIVATE 변수/변수가 클래스 외부에서 호출/호출되면 컴파일러에서 오류가 발생합니다.

코드:

public class Main {
private String i_m_private1 = " \n Hey Buddy I am a private member and i am not even accessible outside of this Class";
private void privateMethod1() {
System.out.println("Outer Class Private Method");
}
public static void main(String args[]) {
Main outerClass = new Main();
NestedClass nestc = outerClass.new NestedClass();
nestc.showPrivate(); //This syntax shows private method/methods are accessible inside the class/inner class.
outerClass = nestc;
nestc.privateMethod1(); //It don't call/invoke private method from the inner class because
// you can not override the private method inside the inner class.
}
class NestedClass extends Main {
public void showPrivate() {
System.out.println("Now we are going to access Outer Class Private Method: " + i_m_private1);
privateMethod1();
}
private void privateMethod1() {
System.out.println("Nested Class's Private Method");
}
}
}

출력:

자바의 비공개

장점

아래에서는 Java에서 Private 메소드/필드를 사용할 때의 이점을 설명하겠습니다.

  • Java 프로그래밍 언어의 메소드, 필드, 내부 클래스에도 적용할 수 있습니다.
  • 외부 인터페이스나 클래스에는 private을 할당할 수 없습니다.
  • Java 프로그래밍 언어에서는 항상 최상위 클래스가 비공개일 수 없습니다.
  • 물론 비공개 변수나 비공개 메서드는 Java 클래스 외부에서 액세스할 수 없지만 setAccessible(true)를 사용하고 PRIVATE 가시성을 변경하여 리플렉션을 통해 다른 방식으로 액세스할 수 있다는 것을 알고 있습니다.
  • Java 프로그래밍 언어에서는 내부 클래스 내부에서도 이 메소드를 재정의할 수 없습니다.
  • PRIVATE 회원은 Java Virtual Machine 및 컴파일러가 더 나은 성능을 위해 최적화할 수 있도록 허용합니다.

Java의 개인 생성자에 대한 규칙 및 규정

다음은 비공개를 위한 몇 가지 규칙과 규정입니다.

  • 클래스에 PRIVATE CONSTRUCTOR가 포함된 경우 외부 클래스에서 해당 특정 클래스의 개체를 생성할 수 없습니다.
  • 클래스 외부에서 비공개 키워드에 접근하면 안 됩니다. 시도하면 해당 증서에 대한 컴파일 오류가 발생합니다. 그러기 위해서는 코드를 수정해야 합니다.
  • 이 Java 언어에서는 최상위 클래스를 비공개로 설정할 수 없습니다.

결론

주요 주제를 마치며 Java에서 개인 키워드를 사용하는 것이 얼마나 유용하고 쉬운지 알게 되어 실제로 기쁩니다. 이 글에서는 private 키워드, private 변수, 접근 한정자, private 생성자, 그리고 프로그램에서 이러한 private 키워드를 사용하는 방법을 이해하시길 바랍니다.

위 내용은 자바의 비공개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.