面试题解五 访问修饰符的区别

java中的访问修饰符

修饰符权限图:

public是Java语言中访问限制最宽的修饰符,一般称之为“公共的”,可以修饰成员变量、成员方法、构造方法和类
其次是protected介于public 和 private 之间的一种访问修饰符,一般称之为“保护访问权限”,可以修饰成员变量,成员方法,构造方法,但不能修饰类
在其次是default,default是默认在代码中表示的形式是什么都不写,通常称为“默认访问权限“或者“包访问权限”,它可以修饰类,成员变量,成员方法,构造方法
最后是private Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”,被private修饰在同一个类中可以访问,其他的场景都不可以访问

关于类:
public:被public修饰的类的名字必须和文件名一致。在同一文件下可以有多个类,但是只能有一个public修饰的类,并且被public修饰的类的名字必须和文件名一致。

关于成员变量和成员方法:
public:被public修饰的成员变量和成员方法,可以被当前类、同包下不同的类、其它包的类访问。
protected:被protected修饰的成员变量和成员方法,可以被当前类、同包下的不同类、以及该类的子类访问(包括不同包下的子类)
default:默认的权限修饰符(不写其它权限修饰符就默认为default),可以被当前类、同包下的不同类访问
private: 被private修饰的成员变量和成员方法,只能被当前类访问,其它的场景都不能访问

关于构造方法:
被public修饰的构造方法,其它的类都可以通过new这个类的对象来调用它;被deafult修饰的构造方法,当前类、同包下的类都可以通过new对象来调用它;被private修饰的构造方法,别的类将无法通过new对象来调用它。

java中对象的访问形式

java访问主要分为两种不同的形式,一种是通过类的对象访问,一般来说正常访问类中的成员变量和成员方法需要先创建对象,然后再通过对象来访问。子类是可以直接对父类中非私有成员进行访问的,换一种说法子类继承了父类中所有的非私有化成员,然后对自己从父类那继承得到的成员进行访问。(另一方面,如果该子类与父类不在同一个包里,那么通过父类的对象实例是不能访问父类的protected成员的)另一种是直接访问,对于static修饰的类的成员,是可以通过类名来直接调用的。

posted @ 2020-08-05 22:01  TidalCoast  阅读(239)  评论(0编辑  收藏  举报