关于java中的private关键字

private直接翻译过来为私有的,但在Java中它的含义并不是私有的。而是本类中可用的,表面上是说只有本类中可以使用(更改)该变量或者方法。

但他还有一个含义为:只要在我这个类的范围内部(括号内)即可使用,他不关心使用者是谁,是他自己或者别的类中的实例(例如通过this使用)。只要你在我的类里面用就行了。所以private应该理解为本类中可使用的,而非是本类私有的。关于java中的private关键字

图中可以看到成员变量name是私有的,但是我们仍然通过this(实例).name来使用了name。


还有一个更加显著的例子则在于子类对父类private的变量和方法的继承。子类会继承所有父类的方法而非只继承对子类公开的方法。只是在子类中无法直接去使用,要去间接地通过getter和setter来使用罢了。

反过来想,如果子类没有继承父类private方法,那通过getter和setter函数得到和修改的是什么呢?