자바 하위 클래스 접근 제한 방법 분석

본 고의 실례 는 자바 가 하위 클래스 의 접근 을 제한 하 는 방법 을 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
눈여겨보다
때때로 부 류 는 자신의'프라이버시'를 보호 하려 고 한다.설령 자신의 구성원 이 하위 클래스 에 계승 되 더 라 도 하위 클래스 가 자신의 클래스 의 모든 속성 이나 방법 에 접근 하 는 것 을 원 하지 않 는 다.이때 일부 속성 과 방법 을 숨겨 서 하위 클래스 가 사용 하지 못 하 게 해 야 한다.이 때 속성 이나 방법 을 설명 할 때'private'키 워드 를 추가 하여 개인 접근 권한 을 표시 할 수 있 습 니 다.즉,이 속성 이나 방법 이 있 는 종 류 를 제외 하고 다른 외부 클래스(하위 클래스 포함)는 접근 할 권리 가 없습니다.
2 실전-하위 클래스 의 방문 제한
코드

class Person
{
   //         
   private String name;
   private int age;
}
class Student extends Person
{
   //               
   public void setVar()
   {
      super.name="  ";
      super.age=25;
      name = "  ";
      age = 25;
   }
}
public class RestrictVisit
{
   public static void main( String[] args )
   {
      new Student().setVar();
   }
}

2 운행
Exception in thread "main" java.lang.Error: Unresolved  compilation problems:
     The field Person.name is not visible
     The field Person.age is not visible
     The field Person.name is not visible
     The field Person.age is not visible
     at Student.setVar(RestrictVisit.java:23)
     at RestrictVisit.main(RestrictVisit.java:34)
3 실전-자 류 가 부 류 를 방문 하 는 사유 구성원
코드

class Person{
  //         
  private String name;
  private int age;
  Person(String name, int age)
  {
    this.name = name;
    this.age = age;
  }
  //               
  void setVar(String name, int age)
  {
    this.name = name;
    this.age = age;
  }
  
  void print()
  {
    System.out.println("I am : " + name + ", I am : " + age + " years old");
  }
}
class Student extends Person
{
  Student(String name, int age)
  {
    super(name, age);
  }
  /*  
  void Test () //                 
  {
    System.out.println("I am : " + name + ", I am : " + age + " years old");
  }
  */
  
  /*
  void print()
  {
    System.out.println("I am : " + name + ", I am : " + age + " years old");
  }
  */
  
}
public class RestrictVisit2
{
  public static void main( String[] args )
  {
    Student s = new Student("Jack",30);
    s.print();
    s.setVar("Tom", 25);
    s.print();
    // s.Test();
  }
}

2 운행
I am : Jack, I am : 30 years old
I am : Tom, I am : 25 years old
더 많은 자바 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 고 에서 말 한 것 이 여러분 의 자바 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기