우리는 종종 네 개의 수정 수정 변수, 메소드 및 클래스에 가서 오늘 우리는 그들의 수정 방법의 범위를 테스트하는 시간을 가지고있다.
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, 공개 키, 어디서나 액세스 할 수 있습니다.