`
wxl24life
  • 浏览: 293069 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java 类成员的访问控制符

    博客分类:
  • Java
阅读更多

今天被问了一个 Java 基础知识:Java 类成员的访问控制符(Access Modifier)有几种?这些访问控制符之间有何区别?

 

首先回答第一个问题。通常我们可以显示声明的访问控制符有三个:public, private 和 protected。但是,我们也会碰到另一种情况:在成员变量或者方法声明前面不加任何的访问控制符。通过这种方式声明的成员具有缺省访问控制(default access)属性。具有缺省访问属性的类成员的可访问性被限制在包(package)内,因而有人也称之为包可见访问控制。

 

然后,关于四种访问控制属性的对比,可以直接引用 SO 上的一张非常清晰的对比图表:

Modifier    | Class | Package | Subclass | World
————————————+———————+—————————+——————————+———————
public      |  ✔    |    ✔    |    ✔     |   ✔
————————————+———————+—————————+——————————+———————
protected   |  ✔    |    ✔    |    ✔     |   ✘
————————————+———————+—————————+——————————+———————
no modifier |  ✔    |    ✔    |    ✘     |   ✘
————————————+———————+—————————+——————————+———————
private     |  ✔    |    ✘    |    ✘     |   ✘

 

这张图表可以这样解读(以 protected 为例):

proctected 访问控制符所修饰的类成员在声明该成员的类类所在的包中的所有其他类以及该类的所有子类中是可见的,而对除此之外的其他类是不可见的。

 

需要注意的一点是,缺省访问控制的类成员只是包内可见,如果其子类也同一个包内,那么也是子类可见的。但是,由于对包外声明的子类是不可见的,所以有上图标中的第4行第4列的✘。

 

另外,值得领会的另一个问题是:在实际编程中应该如何选择使用哪一种访问控制符?SO上得票数第二的回答也是值得读一下的。总的来说,访问控制符设计的初衷是针对 OO 中的封装性 - 应该尽量将信息隐藏。类成员的访问权限放的越开,日后对于该类成员的任何改变就越要谨慎,因为这个类成员可能被很多人使用。如何选择,应该充分考虑类成员的最终用途。

 

0
0
分享到:
评论

相关推荐

    Java类的修饰符、访问控制符

    Java语言中的类修饰符和访问控制符是编程中至关重要的概念,它们决定了代码的组织结构、访问权限和封装性。本实验旨在深入理解和熟练运用这些关键特性。 首先,Java类修饰符包括`public`, `private`, `protected`...

    理解java中的类的各种权限修饰符

    在Java编程语言中,权限修饰符用于控制类、方法、变量等成员的访问级别。这有助于提高代码的安全性和封装性。本文将详细探讨Java中的五种权限修饰符:`public`、`protected`、`default`(也称为包访问权限)、`...

    实验7 成员访问控制与异常.doc

    通过本次实验,我们不仅学习了如何使用Java包结构来组织类,还深入了解了成员访问控制的重要性和异常处理的基本概念。这些知识对于编写高质量、易于维护的Java应用程序至关重要。同时,通过具体的实践操作,能够更加...

    Java修饰符使用整理(含实例)

    Java 修饰符是 Java 语言中的一种基本语法元素,用于控制访问权限、继承关系、抽象类和静态成员变量等方面。Java 修饰符可以分为两大类:访问修饰符和非访问修饰符。访问修饰符包括 public、protected、default 和 ...

    JAVA封装的特点、访问控制符.docx

    - **private**:私有的访问控制符,限定只有在同一类中的成员才能访问。这样可以确保外部代码无法直接访问和修改私有成员,提高了数据的安全性。 - **默认(不写)**:这种情况下,成员的访问权限限制在同一个包内...

    【后端】java基础(5.3)java高级基础之java的修饰符——访问控制符

    Java语言的访问控制符是编程时用来控制类、属性、方法和构造器访问权限的关键字。主要有四种:public、protected、默认(不修饰)和private。这些修饰符决定了类的成员在不同范围内的可见性。 1. **public**:公共...

    13_访问控制符_2 视频

    在Java编程语言中,访问控制符是用于定义类、接口、方法或变量的可访问性的关键字。这些控制符决定了其他代码包中的类或模块能否访问特定的类成员。本视频"13_访问控制符_2"深入讲解了Java中的访问控制特性,尤其对...

    java修饰符的使用.pdf

    访问控制符是 Java 语言中控制类及类的成员变量和方法的访问权限的修饰符。访问控制符分为四种级别: 1. 公有访问控制符(public):public 修饰符是最宽松的访问控制符,允许其他包中的类访问和引用该类。public ...

    12_访问控制符_1 视频

    在Java编程语言中,访问控制符是用于定义类、接口、方法和变量的可访问性的关键字。这些控制符有助于实现封装,这是面向对象编程的基本原则之一。本视频“12_访问控制符_1”专注于Java中的访问控制,是Java SE(标准...

    java访问权限修饰符public.doc

    在 Java 语言中,访问权限修饰符是指用来限定类、成员变量和方法的可访问范围的关键字。访问权限修饰符分为四种:public、protected、friendly 和 private。每种修饰符都有其特定的访问权限和使用场景。 一、public...

    剖析Java中的访问/非访问控制符以及神奇的main函数

    Java中的访问控制符是编程中用来限制类、接口、字段和方法访问权限的关键字,它们在面向对象的设计中起着至关重要的作用。访问控制符主要包括`private`、默认(无修饰符)、`protected`和`public`,这些控制符决定了...

    Java 中的访问权限控制

    在Java编程语言中,访问权限控制是至关重要的概念,它决定了类、接口、字段和方法的可见性。这种控制机制确保了代码的封装性和安全性,防止未经授权的访问和操作。以下是对这一主题的详细探讨: 1. 访问修饰符: ...

    实例8访问控制(java实例系列)

    在"实例8访问控制"中,可能包含了多个类,每个类使用不同的访问修饰符来定义其成员。例如,可能会有一个`public`类,一个`private`变量,一个`protected`方法等,以展示各种访问控制的效果。 7. **类的访问控制** ...

    java常用的修饰符

    - **public**: 公共访问控制符,允许任何地方的任何类访问。Java程序的主类必须是public,以便作为程序的入口点。 - **abstract**: 抽象类修饰符,用于声明抽象类。抽象类不能实例化,只能作为其他类的基类。 - *...

    java成员变量和方法的public等访问限定符的访问权限.doc

    在 Java 编程中,访问限定符是控制类、成员变量和方法的访问权限的关键。了解访问限定符的作用域是 Java 基础知识之一,对于编程人员来说是必备的知识。本文将详细讲解 Java 中的访问限定符,包括 public、private、...

    JAVA类与对象及数组习题

    在JAVA中,访问修饰符可以控制成员变量的访问权限,例如private、public、protected等。 9. 成员变量的访问: 在JAVA中,成员变量可以通过方法或构造方法访问,例如`private int m`可以通过`public static void fun...

    java修饰符介绍

    3. 类的成员访问控制修饰符: - **public**:与类的访问控制类似,允许任何地方的代码访问该成员。 - **protected**:保护访问权限,允许同一包内的代码和不同包的子类访问。 - **默认(无修饰符)**:同包内可...

Global site tag (gtag.js) - Google Analytics