java-访问修饰符的区别

Posted 心香

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java-访问修饰符的区别相关的知识,希望对你有一定的参考价值。

说明:所谓访问权限,是指对象是否可以通过“.”运算符操作自己的变量或通过“.”运算符使用类中的方法。

 

1、Java中的四种访问修饰符:public、protected、default(无修饰符,默认)、private。

 

2、四种修饰符可修饰的成分(类、方法、成员变量)

 

public

protected

default

private

×

×(内部类可以用private修饰)

方法

成员变量

 

3、四种修饰符的访问权限

  public:对所有类可见

  protected:对同一包中的类可见、对同一包及不同包中的子类可见

  default:对同一包中的类可见、对同一包中的子类可见

  private:仅对类本身可见   

  可见是可访问的意思,即由这些修饰符修饰的成分(类、方法、成员变量)可以被其它类访问。对子类可见即子类可以继承。

  这里需要注意的是protected与default,二者的区别在于不同包中的子类是否可以继承。

访问权限

同一包

同一包中的子类

不同包中的子类

不同包

public

protected

×

default

×

×

private

×

×

×

×

 

 注:

 -  修饰符修饰变量或方法时:

 -  一个类中的实例方法总是可以操作该类中的实例变量和类变量;类方法总是可以操作该类中的类变量,与访问权限没有关系。

 -  private:如果Tom类中的某个成员是私有类变量(静态成员变量),那么在另外一个类中也不能通过类名Tom来操作这个私有类变量。如果Tom类中的某个方法是私有的类方法,那么在另外一个类中,也不能通过类名Tom来调用这个私有的类方法。

 -  private:对于私有成员变量或方法,只有在本类中创建该类的对象时,这个对象才能访问自己的私有成员变量和类中的私有方法。

 -  public:当在任何一个类中用类Tom创建了一个对象后,该对象能访问自己的public变量和类中的public方法。

 -  default:当在另外一个类中用类Tom创建了一个对象后,如果这个类与Tom类在同一个包中,那么该对象能访问自己的友好变量和友好方法。

 -  default:在源文件中编写命名的类总是在同一个包中。如果源文件使用import语句引入了另外一个包中的类,并用该类创建了一个对象,那么该类的这个对象将不能访问自己的友好变量和友好方法。

 -  protected:当在另外一个类中用类Tom创建了一个对象后,如果这个类与类Tom在同一个包中,那么该对象能访问自己的protected变量和protected方法。

 

 *  修饰符修饰类时:

 *  可以在任何另外一个类中,使用public类创建对象。

 *  如果一个类不加public修饰,这样的类被称为友好类,那么在另外一个类中使用友好类创建对象时,要保证它们在同一个包中。

 

 

部分引用:https://www.cnblogs.com/deltadeblog/p/7123661.html

 

以上是关于java-访问修饰符的区别的主要内容,如果未能解决你的问题,请参考以下文章

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

没有访问修饰符的字段,java [重复]

JAVA中的四种作用域访问修饰符以及各自的关键字个特点是?

Java中各种(类方法属性)访问修饰符与修饰符的说明

__block修饰符(四)

Java中各种(类方法属性)访问修饰符与修饰符的简单说明