当前位置: 技术文章>> 100道Java面试题之-Java中的访问修饰符有哪些?它们之间的区别是什么?

文章标题:100道Java面试题之-Java中的访问修饰符有哪些?它们之间的区别是什么?
  • 文章分类: 后端
  • 5352 阅读

Java中的访问修饰符用于控制类、类的成员变量和方法的访问权限,它们主要包括以下四种:

访问修饰符

  1. public

    • 含义:公共访问修饰符,表示该成员可以被任何类访问。
    • 访问范围:无限制,任何类都可以访问。
    • 示例public class MyClasspublic int myVariablepublic void myMethod()
  2. protected

    • 含义:受保护的访问修饰符,表示该成员可以被类本身、子类和同一个包中的其他类访问。
    • 访问范围:同一包内的类可以访问,不同包中的子类也可以访问。
    • 示例protected int myProtectedVariableprotected void myProtectedMethod()
  3. default(无修饰符,也称为包访问权限)

    • 含义:当成员变量或方法没有指定访问修饰符时,它的访问权限默认为default。
    • 访问范围:只能被同一个包中的其他类访问。
    • 示例int myDefaultVariablevoid myDefaultMethod()(注意这里没有显式的修饰符)。
  4. private

    • 含义:私有访问修饰符,表示该成员只能被类本身访问。
    • 访问范围:仅限于类内部,子类和其他类都无法访问。
    • 示例private String myPrivateVariableprivate void myPrivateMethod()

访问修饰符之间的区别

以下是四种访问修饰符之间的主要区别,可以通过表格形式展示:

修饰符 同一类 同一包 子类 其他包
public ✔️ ✔️ ✔️ ✔️
protected ✔️ ✔️ ✔️
default ✔️ ✔️
private ✔️
  • public:完全开放,任何地方都可以访问。
  • protected:在包内和子类中开放,但在其他包中需要通过子类访问。
  • default(无修饰符):仅在同一个包内开放。
  • private:完全封闭,仅在类内部开放。

使用建议

  • public:适用于需要被外部广泛访问的类、方法和变量。
  • protected:适用于需要被子类访问,但不需要被其他包中的类直接访问的成员。
  • default(无修饰符):适用于仅在包内部使用的类、方法和变量。
  • private:适用于类的内部实现细节,不希望被外部访问的成员。

合理使用访问修饰符可以提高代码的安全性、可读性和可维护性。在编写Java代码时,应根据需要为每个类、成员变量和方法选择适当的访问修饰符。

推荐文章