热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java访问控制详解:public、protected、friendly与private权限总结及应用建议

在Java中,访问控制是确保代码安全性和封装性的重要机制。本文详细介绍了`public`、`protected`、`default`(也称为包内可见)和`private`四种访问修饰符的使用规则及其应用场景。特别地,对于`private`修饰符,文章指出被其修饰的成员变量和方法只能在定义它们的类内部访问,外部类通过对象无法直接访问这些私有成员。此外,文章还提供了在实际开发中如何合理选择和应用这些访问控制符的建议,以提高代码的可维护性和安全性。

現在假設有一個Tom類

(1)Tom類里用private修飾的成員變量和方法稱為私有變量和私有方法。

在任何一個其他類中用Tom類創建的對象,都不能通過對象訪問私有變量和私有方法;也不能通過類名訪問私有類變量和私有類方法。

(2)Tom類里用public修飾的成員變量和方法稱為共有變量和共有方法。在任何一個其他類中用Tom類創建的對象,可以通過對象訪問共有成員變量和共有方法;也可以通過類名訪問共有類成員變量和共有類方法。

(3)Tom類里沒有用訪問權限修飾詞修飾的,叫做友好型變量和友好型方法。在任何其他類里用Tom類創建的對象,只有該類與Tom類是在同一個包下面,則可以通過對象訪問友好型變量和友好型方法,也可以通過類名訪問友好型類變量和友好型類方法。

(4)protected修飾的稱為受保護型,訪問權限情況和友好型一樣,只是在繼承上又區別,在此就不討論了。

(5)訪問權限從高到低:public    protected   友好型   private

(6) 類(class)的修飾不能用private和protected,只有public和友好型。

public修飾類,這個類稱為public類,在任何一個類中都可以用public類創建對象。

不加訪問權限關鍵字的類叫做友好類,要想在某一個類中用友好類創建對象,要保證這個類要和友好類在一個包。



推荐阅读
  • 异常要理解Java异常处理是如何工作的,需要掌握一下三种异常类型:检查性异常:最具代表性的检查性异常是用户错误或问题引起的异常ÿ ... [详细]
  • Java每日一题:876. 链表的中间节点解析
    本文详细介绍了LeetCode上编号为876的题目——链表的中间节点,包括问题描述、解决方案和代码实现。 ... [详细]
  • 本文详细探讨了JavaScript中的作用域链和闭包机制,解释了它们的工作原理及其在实际编程中的应用。通过具体的代码示例,帮助读者更好地理解和掌握这些概念。 ... [详细]
  • 雨林木风 GHOST XP SP3 经典珍藏版 V2017.11
    雨林木风 GHOST XP SP3 经典珍藏版 V2017.11 ... [详细]
  • 编写了几个500行左右代码的程序,但基本上解决问题还是面向过程的思维,如何从问题中抽象出类,形成类的划分和设计,从而用面向对象的思维解决问题?有这方面的入门好书吗?最好是结合几个具体的案例分析的 ... [详细]
  • 本文详细介绍了如何在 Android 开发中高效地管理和使用资源,包括本地资源和系统资源的访问方法。通过实例和代码片段,帮助开发者更好地理解和应用资源管理的最佳实践。 ... [详细]
  • Python 内存管理机制详解
    本文深入探讨了Python的内存管理机制,涵盖了垃圾回收、引用计数和内存池机制。通过具体示例和专业解释,帮助读者理解Python如何高效地管理和释放内存资源。 ... [详细]
  • 本文详细探讨了 org.apache.hadoop.ha.HAServiceTarget 类中的 checkFencingConfigured 方法,包括其功能、应用场景及代码示例。通过实际代码片段,帮助开发者更好地理解和使用该方法。 ... [详细]
  • Linux系统中Java程序Too Many Open Files问题的深入解析与解决方案
    本文详细分析了在Linux环境下运行的Java应用程序中可能出现的“Too many open files”异常现象,探讨其成因及解决方法。该问题通常出现在高并发文件访问或大量网络连接场景下,对系统性能和稳定性有较大影响。 ... [详细]
  • Appium + Java 自动化测试中处理页面空白区域点击问题
    在进行移动应用自动化测试时,有时会遇到某些页面没有返回按钮,只能通过点击空白区域返回的情况。本文将探讨如何在Appium + Java环境中有效解决此类问题,并提供详细的解决方案。 ... [详细]
  • 本文详细介绍了JSP的三大指令:page、include和taglib,重点探讨了静态包含与动态包含的区别及其应用场景,并解释了如何使用taglib指令引入第三方标签库。 ... [详细]
  • 2018-2019学年第六周《Java数据结构与算法》学习总结
    本文总结了2018-2019学年第六周在《Java数据结构与算法》课程中的学习内容,重点介绍了非线性数据结构——树的相关知识及其应用。 ... [详细]
  • JavaScript 中创建对象的多种方法
    本文详细介绍了 JavaScript 中创建对象的几种常见方式,包括对象字面量、构造函数和 Object.create 方法,并提供了示例代码和属性描述符的解释。 ... [详细]
  • Java 实现二维极点算法
    本文介绍了一种使用 Java 编程语言实现的二维极点算法。该算法用于从一组二维坐标中筛选出极点,适用于需要处理几何图形和空间数据的应用场景。文章不仅详细解释了算法的工作原理,还提供了完整的代码示例。 ... [详细]
  • 深入理解Java字符串池机制
    本文详细解析了Java中的字符串池(String Pool)机制,探讨其工作原理、实现方式及其对性能的影响。通过具体的代码示例和分析,帮助读者更好地理解和应用这一重要特性。 ... [详细]
author-avatar
爱被结束_347
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有