java 基础(含泪撰写java中作用域的区别)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gongzhiyao3739124/article/details/52574964

        今天cvte电话面试被问到了这个问题,真真没有想到,写了这么长时间的android的我,居然没有回答好这个问题,还真是哭笑不得啊,今天把它马下来,不为别的,就当是给自己的一个警戒。

       java中的作用域有 public ,protected,private,default。坑就在这,我以为default和protected是一样的。

       现在来逐个讲解一下:

1.对于public修饰符来说,它具有最大的访问权限,可以访问任何一个在CLASSPATH下的类,接口等,它往往用于对象或类对外的一种接口的形式。

2.对于protected修饰符,它主要的作用是用来保护子类,它的含义在于子类可以用它修饰的成员,其他的不可以,他相对于传递给子类的一种继承的东西。

3.对于private来说,它的访问权限仅限于类的内部,是一种封装的体现,例如,大多数的成员变量都是private修饰符,它不希望被外部类访问。

4.对于default,就是不写,有时候也成为friendly(友元),他是针对本包访问而设计的,任何处于本包下的类,接口,异常等,都可以访问,即使是父类没有用protected修饰的成员也可以。


通过下面的图片可以更好的理解上面的区别:

https://img-my.csdn.net/uploads/201609/18/1474184258_4767.jpg

从上面可以更直观的看到:

1.public:可以被其他所有类访问

2.protected:可以被自身,子类,以及同一包下的类访问。

3.default:可以被自身和同一包中的类访问。

4.private:只可以被自身访问。

展开阅读全文

没有更多推荐了,返回首页