개인, 기본, 보호, 공공 범위 지정

우리는 종종 네 개의 수정 수정 변수, 메소드 및 클래스에 가서 오늘 우리는 그들의 수정 방법의 범위를 테스트하는 시간을 가지고있다.

Person 클래스

package Scope1;
/**
 * 测试类
 */
public class Person {
    public void publicMed(){}
    protected  void protectedMed(){}
    void defaultMed(){}
    private void privateMed(){}
    // 都可以访问
    public void test(){
        Person person = new Person();
        person.protectedMed();
        person.defaultMed();
        person.privateMed();
        person.publicMed();
    }
}

테스트 1

package Scope1;
/**
 * 同包,非子类
 */
public class Test01 {
    public void test01(){
        Person person = new Person();
        person.publicMed();
        person.protectedMed();
        person.defaultMed();
        // private方法不可见
    }
}

시험 두

package Scope1;
/**
 * 同包,子类
 */
public class Test02 extends Person{
    public void test02(){
        super.publicMed();
        super.protectedMed();
        super.defaultMed();
        // private方法不可见
    }
}

테스트 세

package Scope2;
import Scope1.Person;
/**
 * 非同包,非子类
 */
public class Test03 {
    public void test02(){
        Person person = new Person();
        person.publicMed();
        // protected方法不可见
        // default方法不可见
        // private方法不可见
    }
}

테스트 4

package Scope2;
import Scope1.Person;
/**
 * 非同包,子类
 */
public class Test04 extends Person{
    public void test04(){
        super.publicMed();
        super.protectedMed();
        // default方法不可见
        // private方法不可见
    }
}

개요

1, 개인 키의 서브, 그것은 단지이 클래스에 액세스 할 수 있습니다.
2, 기본 키워드는 동일한 패키지에서 액세스 할 수 있습니다.
3 서로 다른 패킷들에 의해 보호 동일한 패키지 아래 키워드 및 서브 클래스는 액세스 할 수있다.
4, 공개 키, 어디서나 액세스 할 수 있습니다.

추천

출처www.cnblogs.com/feiqiangsheng/p/12233495.html