`
liuwei1981
  • 浏览: 753996 次
  • 性别: Icon_minigender_1
  • 来自: 太原
博客专栏
F8258633-f7e0-30b8-bd3a-a0836a5f4de5
Java编程Step-by...
浏览量:156551
社区版块
存档分类
最新评论

60.访问控制

 
阅读更多

前面讲到了继承,通过继承,可以让子类拥有父类中已经实现的属性和方法,避免在整个软件体系中,出现重复的代码,提高软件的开发效率和可靠性。

 

但是有的时候,我们希望父类中的某些属性和方法,仅用于父类自己使用,对子类保密。

 

并且很多时候,当别的对象调用该类对象的时候,也希望这些调用操作是有限制,类的设计只保持部分方法接口公开。

 

这就需要在类定义的时候,进行访问控制。

 

在开始时其实已经说到了,通过将属性设置为private(私有的)的,可以限制对相应属性的访问。

 

在Java中,可以在类、类的属性以及类的方法前面加上一个修饰符(modifier),来对类进行一些访问上的控制。

 

比如,我们在前面已经讨论过的,一般情况下将类的属性定义为私有(private)的,而通过公共的(public)方法来对这些属性进行访问。

 

在这个类程序外的其他程序只能通过公共的方法来访问这个类的属性,这样,实现了信息的隐藏和封装

 

但是,有时候我们也需要让其他的程序直接访问类的属性,或者只能让子类访问父类的属性,这个时候就不能用private来限制这些属性了。


在Java中,定义了三个修饰符用来控制类、类的属性以及类的方法等的访问范围。通过这三个修饰符,可以定义四种程度的限制。

 

下面将对这些修饰符作详细的说明。

private:这是限制最严格的一个修饰符,使用这个关键字来限制的属性或者方法,只能在同一个类中被访问。也就是说,在这个类文件之外,这些属性或方法是被隐藏的。这个修饰符最常用于修饰类中的全局变量。

 

注意,这个修饰符不能用在类前面。


DefaultDefault不是关键字,只是对类、类的属性以及类的方法的访问权限的一种称呼。如果在类、类的属性、类的方法前面没有添加任何的修饰符,则我们说它的访问权限是default的。

 

在这种情况下,只有类本身或者同一个包中的其他类可以访问这些属性或方法,而对于其他包中的类而言是不可访问的。


protected:protected修饰符修饰的属性或方法,可以被同一个类、同一个包中的类以及子类访问。注意,这个修饰符同样不能用于类前面。


public :这个修饰符对类、类的属性以及类的方法均可用。它是限制最宽松的一种限制,使用这个修饰符修饰的类属性、类的方法可以被任何其他的类访问,无论这个类是否在同一个包中,以及是否是子类等。


一般来说,我们应该将和其他类无关的属性或者方法设置为private的,只有需要将它给其他的类访问的属性或方法才将它设置为public或者protected,或者不加任何修饰符,让其为default。


访问控制修饰符的限制程度从高到低为:private Default protected public。


注意:
  Default不是Java关键符,它只是表明了一种访问限制状态。

 

 

分享到:
评论

相关推荐

    arm指令集-中文 (ARM微控制器基础)

    ARM 存储器访问指令........................................................................................................ 11  LDR 和STR .................................................................

    复旦nois教材01.rar

    1 第一章 绪论....................................................................................................................................1 1.1 概述................................................

    操作系统原理 计算机

    CH1 操作系统概论............................................................................................................................1 1.1 操作系统概观.............................................

    BIND9管理员参考手册

    目录 第一章: DNS 的起源和背景 .................................................................................................................1 第二章: DNS 的体系结构和原理 ...........................

    java核心知识点整理.pdf

    1. 目录 1. 2. 目录 .........................................................................................................................................................1 JVM .........................

    internet网和control网

    控制网................................................................................................9 传统方法...........................................................................................

    Android学习系列教程实例.pdf

    60 3.3.2. 效果展示 ................................ 63 3.4. 二级列表 ......................................... 65 3.4.1. 示例分析 ................................ 65 3.4.2. 效果展示 ....................

    Altium Designer 14 中文教程

    3.2.1 访问栅格管理器 .......................................................................................................... 31 3.2.2 创建和定义笛卡尔坐标栅格 ........................................

    mini2440用户手册

    1.3.9 PWM控制蜂鸣器.......................................................................................................................- 31 -  1.3.10 串口.............................................

    HP-Unix命令 HP系统宝典

    访问FC60 的串行接口.................. 61 深入检查FC60 的运行状态................. 61 LUN 中同时有两个以上的硬盘’损坏’........... 62 LUN 的配置信息丢失................................ 62 LUN mapping ...

    Sybase ASE 15.7 开发文档:系统管理指南(卷二)

    第 1 章 限制对服务器资源的访问 第 2 章 镜像数据库设备 第 3 章 配置内存 第 4 章 配置数据高速缓存 第 5 章 管理多处理器服务器 第 6 章 创建和管理用户数据库 第 7 章 装入和卸下数据库 第 8 章 分布式事务管理 ...

    spring3.1中文参考文档

    1.2.2 数据访问/整合 ................................................................................................................................9 1.2.3 Web ...........................................

    ARM指令集 肯定可以下载

    ARM 存储器访问指令........................................................................................................ 11  LDR 和STR .................................................................

    JAVA核心知识点整理(有效)

    1. 目录 1. 2. 目录 .........................................................................................................................................................1 JVM ........................

    Struts in Action中文版

    3. 构建一个简单应用....................................................................................60 3.1. 被支柱支撑的支柱......................................................................

    linux网路编程 中文 23M 版

    2.5 顿.................................................................60 第3 章文件系统简介........................................................ 61 3.1 Linux下的文件系统..............................

    带有蓝牙低功耗(BLE)连接的 PSoC 6 MCU 入门.pdf

    (LL)........................................................64B.4 主机控制接口 (HCI)...........................................64B.5 逻辑链路控制及适配协议 (L2CAP)....................65B.6 安全管理器...

    数据仓库基础

    第一章对数据仓库的迫切需求...................................................................................................23 本章目标:.................................................................

    struts in Action

    3. 构建一个简单应用....................................................................................60 3.1. 被支柱支撑的支柱............................................................................

Global site tag (gtag.js) - Google Analytics