码迷,mamicode.com
首页 > 其他好文 > 详细

private、default、protected和public的作用域

时间:2020-01-25 23:31:04      阅读:74      评论:0      收藏:0      [点我收藏+]

标签:作用   def   import   super   prot   scope   port   变量   关键字   

我们经常用四种修饰符去修饰变量、方法和类,今天我们来测试他们修饰方法时候的作用域。

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关键字,任何地方都可以访问。

private、default、protected和public的作用域

标签:作用   def   import   super   prot   scope   port   变量   关键字   

原文地址:https://www.cnblogs.com/feiqiangsheng/p/12233495.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!