Java 访问修饰符

作者: 就是杨宗 | 来源:发表于2017-09-28 23:30 被阅读19次

最近,又复习了一下Java的访问修饰符,总结一下吧。
Java中有三种访问修饰符,分别是public、protected和private,不带任何修饰符则称之为default。
Java的访问权限控制只存在于编译阶段,而编译生成的字节码文件事实上没有留下任何痕迹,只是在编译的时候进行访问权限的检查。其实,通过反射的手段,可以访问任何包下任何类的成员,例如,访问类的私有成员也是可能的。

一、类

类不能被protected和private修饰,一个源文件中只能有一个public类,并且该源文件名要和public类名一致,其他类只能是default。

二、成员变量和成员方法

简单而言,private具有类内可见性,default具有包内可见性,protected具有包内和子类可见性,public具有包外可见性。
假设类A有public、protected、private和default修饰的成员变量和成员方法。

  1. 在类A的成员方法中,可以直接访问和调用类A中用public、protected、private和default修饰的成员变量和成员方法。
  2. 在类A的main方法中,可以通过构造类A的对象访问和调用public、protected和default修饰的成员变量和成员方法。
  3. 与类A在同一个包中,未继承类A的其他类的成员方法或者main方法,与(2)一致。
  4. 与类A在同一个包中,继承类A的子类,子类的成员方法可以直接访问和调用父类中用public、protected和default修饰的成员变量和成员方法;子类的main方法也是和(2)一样的。
  5. 与类A不在同一个包中,未继承类A的其他类的成员方法或者main方法只能通过构造类A的对象访问public修饰的成员变量和成员方法。
  6. 与类A不在同一个包中,继承类A的子类,它的成员方法可以直接访问和调用父类中用public和protected修饰的成员变量和成员方法;子类的main方法同(5)。
三、关于private的一些事

private修饰final方法没有意义,因为final方法本身就不允许子类覆盖它,然而加上private后,这个方法对于子类而言不具有可见性,谈何覆盖。
private修饰abstract方法是错误的,abstract方法要求子类实现它,然而加上private后,这个方法对于子类而言不具有可见性,谈何实现(覆盖)。

转载请注明如下内容:

文章来自简书,作者:就是杨宗
原文链接:http://www.jianshu.com/p/e81452a19228

相关文章

  • java学习笔记第二天

    java修饰符 java修饰符 java语言提供了很多修饰符,主要分为下面两类: 1.访问修饰符 2.非访问修饰符...

  • Java知识之修饰符

    Java中的修饰符 Java中的修饰符主要分为两类: 访问控制修饰符 非访问控制修饰符 访问控制修饰符分: pub...

  • java基础-static

    概述 static 在java体系里的地位:java语言的一个修饰符,属于非访问修饰符,所谓访问修饰符就是控制访问...

  • Java 修饰符

    Java 修饰符 Java语言提供了很多修饰符,主要分为以下两类: 访问修饰符 非访问修饰符 修饰符用来定义类、方...

  • java修饰符有哪些?

    java修饰符有哪些? Java语言提供了很多修饰符,主要分为以下两类: 1、访问修饰符; 2、非访问修饰符。 (...

  • 日常记忆Java修饰符

    Java修饰符 Java语言提供的很多修饰符,主要分为以下两类: 访问修饰符 非访问修饰符修饰符用来定义类、方法或...

  • Java中访问修饰符和构造函数的一点总结

    Java访问修饰符 Java用于类的修饰符(2个)和限定符(2个) 注意:内部类可以拥有更多的访问修饰符 Java...

  • java(3-Java 修饰符)

    Java 修饰符主要两类:访问修饰符非访问修饰符 访问控制修饰符 default (即默认,什么也不写): 在同一...

  • JAVA基础-访问修饰符

    访问权限 Java中有三种访问权限修饰符:private、protected、public,如果不加访问修饰符,表...

  • Java的访问修饰符

    Java中的访问修饰符定义了变量,方法,构造函数或类的可访问性(范围)。Java中有4种访问修饰符: Public...

网友评论

    本文标题:Java 访问修饰符

    本文链接:https://www.haomeiwen.com/subject/wftvextx.html