MST

星途 面试题库

面试题:Java中访问控制符的作用及不同访问控制符修饰成员的访问范围

请详细阐述Java中public、private、protected以及默认(包访问权限)这几种访问控制符的作用,并说明它们修饰类的成员变量、成员方法时,在同一个类、同一个包内的其他类、不同包的子类以及不同包的非子类中的访问范围情况。
20.7万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试

1. public

  • 作用:表示公共的访问权限,被public修饰的成员变量和成员方法可以被任何类访问,无论该类是否在同一个包内,是否为子类。
  • 访问范围
    • 同一个类:可以访问。
    • 同一个包内的其他类:可以访问。
    • 不同包的子类:可以访问。
    • 不同包的非子类:可以访问。

2. private

  • 作用:表示私有的访问权限,被private修饰的成员变量和成员方法只能在本类内部被访问,其他任何类都无法访问,包括同一个包内的其他类、不同包的子类以及不同包的非子类。
  • 访问范围
    • 同一个类:可以访问。
    • 同一个包内的其他类:不可以访问。
    • 不同包的子类:不可以访问。
    • 不同包的非子类:不可以访问。

3. protected

  • 作用:表示受保护的访问权限,被protected修饰的成员变量和成员方法可以被本类、同一个包内的其他类以及不同包的子类访问,但不能被不同包的非子类访问。
  • 访问范围
    • 同一个类:可以访问。
    • 同一个包内的其他类:可以访问。
    • 不同包的子类:可以访问。
    • 不同包的非子类:不可以访问。

4. 默认(包访问权限)

  • 作用:当成员变量或成员方法没有显式地使用任何访问控制符修饰时,就具有默认的包访问权限。具有默认访问权限的成员只能在同一个包内的类中被访问,不同包的类(无论是否为子类)都无法访问。
  • 访问范围
    • 同一个类:可以访问。
    • 同一个包内的其他类:可以访问。
    • 不同包的子类:不可以访问。
    • 不同包的非子类:不可以访问。