Java的四种访问权限修饰符public、protected、friendly详细通俗的解释

首先,在Java编程语言中有四种权限的修饰符,可以修饰类、类成员变量。类
成员函数。
(一)、public
(1) 首先public的意思是公共的公开的

(2) 当pubic用来修饰类的时候,需要注意的是在一个java源文件中呢只能有一个
声明为publuc的类
,而且只要有一个类用public修饰了,那个java源文件的文件名
就必须、一定要和这个被public修饰的类的类名一摸一样,不然是通过不了编译的。

(3) 修饰类的还有一种情况就是不使用pubilc而是使用默认的修饰符,就是在类
的前面什么修饰符也不加,这样的话不同的包是不可以访问到这个类的,意思就是
修饰的类只能在本包中使用
,所以对于java这种面向对象的程序语言来说,一般应该
将类设置成public类,使用了public修饰的类就可以导入到任何的类中。

(4) 当public用来修饰类中的成员即变量和方法时,那么被public修饰的成员可以
在不同包中、相同包中、子类中都能访问到。当前类可以直接访问,不同包的类则只要
通过该类的对象进行访问便可以。就像空气,不管是人还是动物、植物都可以访问。

(5)在类的继承上,被public修饰的成员能被所有的子类继承下来,就是你以后建的
房子,花园,可以被你的子孙都继承下来。

(二)protected
(1) 首先protected是用来修饰类成员(变量和方法)的,意思是受到保护的,即
受到该类所在的包所保护。

(2)protected修饰的变量和方法在同一个package(包)中的时候,则同一个包中的所有
类都可以访问到,包括该类的子类也可以访问,不管子类是否和父类在同一个包。就是说你
收藏的祖传宝贝,只要是你的子孙,不管他现在是和你住得近,还是住得比较远,他们都可以
访问你收藏的祖传宝贝。

(3)同时呢,被protected修饰的成员是可以被该类的子类继承下去的,和上面那个例子意思
差不多

(三)friendly

(1)首先呢,friendly的意思是友好的,就是在成员的前面不写任何的访问修饰符的时候,就会
默认是friendly,friendly和default是一样的,这里的友好指的就是对同一个包的类友好。

(2)那么就是在相同的包里面,所有的类都能访问,但是在不同的包中,即使是子类中也不可以访问,也就是说只有在同一个包中的子类才能访问到父类中friendly修饰的成员。就像你收藏的宝贝,一个子孙孝顺,在你旁边一直照顾你,一个子孙不孝顺,很多年都不回来看望,那就不友好了,对吧,所以即使是你的子孙,也不能访问你收藏的宝贝。

(3)在类的继承上呢,被friendly修饰的成员也只能被该类所在用一个包的子类继承下来,也
就是说只有孝顺的才可以继承宝贝。

(四)private

(1)首先呢private的意思是私有的,就是只能在当前类中被访问到,他的作用域是最小的,在
不同的类是不能访问的。

(2)在类的继承上呢,子类是继承不了父类被private修饰的变量的,就像你的眼睛、鼻子、耳朵
是你私有的,你只能自己使用,是不可以继承给你子孙的。

访问权限    当前类   同一包  子类  其他包

 public        √      √     √    √
 
 protect       √      √     √    ×
 
 friendly      √      √     ×    ×  

 private       √      ×     ×    ×

你可能感兴趣的:(Java的四种访问权限修饰符public、protected、friendly详细通俗的解释)