privatedefaultprotected和public的作用域
Posted feiqiangsheng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了privatedefaultprotected和public的作用域相关的知识,希望对你有一定的参考价值。
我们经常用四种修饰符去修饰变量、方法和类,今天我们来测试他们修饰方法时候的作用域。
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();
}
}
测试一
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、private关键子,只能在本类中才可以访问。
2、default关键字,同包下才可以访问。
3、protected关键字,同包下和不同包下的子类才可以访问。
4、public关键字,任何地方都可以访问。
以上是关于privatedefaultprotected和public的作用域的主要内容,如果未能解决你的问题,请参考以下文章