课时105:访问控制权限

简介: 面向对象开发的三大特点为封装、继承和多态。封装涉及属性和结构的封装及访问权限控制,主要通过四种访问修饰符实现:Private、Default、Protected 和 Public。继承围绕接口展开,多态实现参数统一。封装中,属性定义用 Private,方法定义用 Public,可解决大部分设计问题。示例代码展示了不同包中的类如何通过 Protected 访问父类属性。

课时105:访问控制权限

1.1面对对象开发的三大特点


在面向对象的开发过程中有三大主要特点:封装、继承、多态。

1封装:不仅仅是属性封装还包括结构封装,还牵动着访问权限的问题。

2继承:围绕抽象位接口展开。

3多态:可以实现参数的统一。


对于封装性而言主要的实现依靠的就是访问控制权限,而访问控制权限在程序之中一共定义有四种: Private、Default(什么都不写)、Protected、Public,这四种权限的作用如下:

 

No

访问范围

Private

Default

Protected

Public

1

同一包的同一类

2

同一包的不同类

 

3

不同包的子类

 

 

4

不同包的所有类

 

 

 

 

在整个访问控制权限的处理之中,只有 Protected (受保护)的权限是比较新的概念

下面对访问权限的使用说明,本次定义两个类:

(1)cn.mldn.a.Message类:提供有 Protected 访问权限;

(2) cn.mldn.b.NetMessage类:将直接访问 Protected 属性

 

1.2定义 Message 


package cn.mlden.a ;
public class Message {
    protected String info = "ww.mldn.cn" ;
}

追加 Protected 访问权限

 

1.3定义子类,与父类不在同一个包中


package cn.mlden.b ;
import cn.mlden.a.Message ;
public class NetMessage extends Message {
    public void print() {
        System.out.println(super.info) ;
    }
}

定义子类NetMessage,对 Info 进行访问。

 

1.4编写测试类,通过子类实现操作


package cn.mldn.test ;
import cn.mldn.b.* ;
public class TestMessage {
    public static void main(String args[]) {
        new NetMessage().print() ;
    }
}

这个程序是通过子类访问了父类中的Protected属性。如果此时你直接通过了Message访问 Info 属性,那么就将出现错误的提示。

程序运行结果:

image.png

 

1.5在测试类中直接访问 Message


package cn.mldn.test ;
import cn.mldn.a.* ;
public class TestMessage {
    public static void main(String args[]) {
       System.out.println(new Message().info) ;
    }
}

TestMessage.java:5: 错误:Info可以在Message中访问Protected

程序运行结果:

image.png

在程序之中的封装一共有三个对应的访问权限: Private  Default一般不用 Protected ,但是如果每次在使用的时候进行区分会比较麻烦,所有可以给出一个参考的选择方案(90%的设计问题):

1只要是进行属性的定义,全部使用Private;

2只要是进行方法的定义,全部使用Public。


能解决90%的设计问题,有些时候要根据实际情况进行调整,根据代码的运行过程、环境来进行动态的调整。

相关实践学习
消息队列+Serverless+Tablestore:实现高弹性的电商订单系统
基于消息队列以及函数计算,快速部署一个高弹性的商品订单系统,能够应对抢购场景下的高并发情况。
云安全基础课 - 访问控制概述
课程大纲 课程目标和内容介绍视频时长 访问控制概述视频时长 身份标识和认证技术视频时长 授权机制视频时长 访问控制的常见攻击视频时长
相关文章
|
6月前
|
安全 网络安全 数据安全/隐私保护
访问控制列表(ACL)是网络安全中的一种重要机制,用于定义和管理对网络资源的访问权限
访问控制列表(ACL)是网络安全中的一种重要机制,用于定义和管理对网络资源的访问权限。它通过设置一系列规则,控制谁可以访问特定资源、在什么条件下访问以及可以执行哪些操作。ACL 可以应用于路由器、防火墙等设备,分为标准、扩展、基于时间和基于用户等多种类型,广泛用于企业网络和互联网中,以增强安全性和精细管理。
913 7
|
6月前
|
安全 网络安全 数据安全/隐私保护
访问控制列表(ACL)是网络安全管理的重要工具,用于定义和管理网络资源的访问权限。
访问控制列表(ACL)是网络安全管理的重要工具,用于定义和管理网络资源的访问权限。ACL 可应用于路由器、防火墙等设备,通过设定规则控制访问。其类型包括标准、扩展、基于时间和基于用户的ACL,广泛用于企业网络和互联网安全中,以增强安全性、实现精细管理和灵活调整。然而,ACL 也存在管理复杂和可能影响性能的局限性。未来,ACL 将趋向智能化和自动化,与其他安全技术结合,提供更全面的安全保障。
359 4
|
12月前
|
安全 网络安全 数据安全/隐私保护
【专栏】IT 知识百科:访问控制列表(ACL)是网络安全的关键机制,用于定义和管理网络资源的访问权限
【4月更文挑战第28天】访问控制列表(ACL)是网络安全的关键机制,用于定义和管理网络资源的访问权限。ACL工作原理包括定义规则、匹配规则和执行操作。标准ACL基于源IP过滤,扩展ACL则提供更多筛选条件。时间及用户基础的ACL提供更细化的控制。优点在于增强安全性和精细管理,但管理复杂性和性能影响也是挑战。未来,ACL将趋向智能化和自动化,与更多安全技术结合,以提升网络安全。**
525 0
|
11月前
|
Java 数据安全/隐私保护
Java基础手册二(类和对象 对象创建和使用 面向对象封装性 构造方法与参数传递 this关键字 static关键字 继承 多态 方法覆盖 final关键字 访问控制权限修饰符)
Java基础手册二(类和对象 对象创建和使用 面向对象封装性 构造方法与参数传递 this关键字 static关键字 继承 多态 方法覆盖 final关键字 访问控制权限修饰符)
77 0
|
12月前
|
数据库 数据安全/隐私保护
在阿里云中,访问控制(Resource Access Management,简称RAM)是权限管理系统,主要用于控制账号在阿里云中
在阿里云中,访问控制(Resource Access Management,简称RAM)是权限管理系统,主要用于控制账号在阿里云中
799 3
|
分布式计算 DataWorks MaxCompute
在DataWorks中进行数据访问控制权限申请
在DataWorks中进行数据访问控制权限申请
204 1
|
12月前
|
存储 数据安全/隐私保护 C++
第十五章:C++访问控制权限、继承和多态详解
第十五章:C++访问控制权限、继承和多态详解
384 0
|
安全 网络安全 数据安全/隐私保护
修复ICMP权限许可和访问控制漏洞
修复ICMP权限许可和访问控制漏洞
759 0
|
安全 数据安全/隐私保护
JeeSite 访问控制权限
JeeSite 访问控制权限
267 0
|
存储 安全 API
【BP靶场portswigger-服务端7】访问控制漏洞和权限提升-11个实验(全)(下)
【BP靶场portswigger-服务端7】访问控制漏洞和权限提升-11个实验(全)(下)
974 0
【BP靶场portswigger-服务端7】访问控制漏洞和权限提升-11个实验(全)(下)

热门文章

最新文章

OSZAR »