【JavaSE】类与对象--封装性
创始人
2024-04-11 15:24:12
0

文章目录

  • 一、面向对象的三大特性
  • 二、封装性
    • 1.什么是封装性?
    • 2.为什么要有封装性?
    • 3.封装性的作用
    • 4.封装性的实现步骤
    • 5.访问限定修饰符


一、面向对象的三大特性

面向对象的三个基本特征是:封装、继承、多态。

二、封装性

1.什么是封装性?

封装性是面向对象编程中的三大特征之一,封装性就是把对象的成员属性和成员方法结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节,包含如下两个含义。
(1)把对象的全部成员属性和全部成员方法结合在一起,形成一个不可分割的独立单位(即对象)
(2)信息隐蔽,即尽可能隐蔽对象的内部细节,对外形成一个边界,只保留有限的对外接口使之与外部发生联系。

2.为什么要有封装性?

(1)对象中的成员属性如果没有被封装,一旦对象创建完成,就可以通过对象的引用获取任意的成员属性的值,并能够给所有的成员属性任意赋值。在对象的外部任意访问对象中的成员属性时非常危险的,因为对象中的成员属性是对象本身具有的与其他对象不同的特征,是对象某个方面性质的表现。
(2)对象中的成员方法如果没有被封装,也可以在对象的外部随意调用,这也是一种危险的操作。因为对象中的成员方法只有部分是给外部提供的。保留有限的对外接口使之与外部发生联系。而有一些是对象自己使用的方法。

3.封装性的作用

封装的原则就是要求对象以外的部分不能随意存取对象的内部数据(成员属性和成员方法)。从而有效地避免了外部错误对它的”交叉感染”,使软件错误能够局部化,大大减少差错。

4.封装性的实现步骤

  • 1.设置私有成员

只有在声明成员属性或成员方法时,使用private关键字修饰就实现了对成员的封装。封装后的成员在对象的外部不能被访问,但在对象内部的成员方法中可以访问到自己对象内部被封装的成员属性和被封装的成员方法。达到了对对象成员保护的目的,只能是对象自己使用,其他人不可以访问自己的私有成员。即尽可能隐蔽对象的内部细节,对外形成一道屏障。

例:
在这里插入图片描述

  • 2.私有成员的访问

对象中的成员属性一旦被private关键字封装成私有之后,就只能在对象内部的成员方法中使用。不能被对象外部直接赋值,也不能再对象外部直接获取私有属性的值。如果不让用户在对象的外部设置私有属性的值,但可以获取私有属性的值,或者允许用户对私有属性赋值,但需要限制一些赋值的条件,解决的办法就是在对象的内部声明一些操作私有属性的共有方法。因为私有的成员属性在对象内部的方法中可以访问,所以在对象中声明一个访问私有属性的方法,再把这个方法通过public关键字设置为共有的访问权限.如果成员方法没有加任何访问控制修饰,默认就是public的,在任何地方都可以访问。这样,在对象外部就可以将公有的方法作为访问接口,间接地访问对象内部私有成员。

例:
在这里插入图片描述
提示:IEDA编译器提供了自动生成getter和setter的方法
在这里插入图片描述

5.访问限定修饰符

访问范围privatedefault (默认)protectedpublic
同一个类可访问可访问可访问可访问
同一包中的其他类可不访问可访问可访问可访问
不同包中的子类不可访问不可访问可访问可访问
不同包中的非子类不可访问不可访问不可访问可访问
  1. private
    私有访问修饰符是最严格的访问级别,所以被声明为 private 的方法、变量和构造方法只能被所属类访问,并且类和接口不能声明为 private。
    声明为私有访问类型的变量只能通过类中公共的 getter 方法被外部类访问。
    2.default (即默认,什么也不写)
    使用默认访问修饰符声明的变量和方法,对同一个包内的类是可见的。接口里的变量都隐式声明为 public static final,而接口里的方法默认情况下访问权限为 public。
  2. protected
    用保护访问控制符 protected 修饰的类成员可以被三种类所访问:该类自身、与它在同一个包中的其他类以及在其他包中的该类的子类。使用 protected 修饰符的主要作用,是允许其他包中它的子类来访问父类的特定属性和方法,否则可以使用默认访问控制符。
  3. public
    被声明为 public 的类、方法、构造方法和接口能够被任何其他类访问。
    如果几个相互访问的 public 类分布在不同的包中,则需要导入相应 public 类所在的包。由于类的继承性,类所有的公有方法和变量都能被其子类继承。

相关内容

热门资讯

银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AsusVivobook无法开... 首先,我们可以尝试重置BIOS(Basic Input/Output System)来解决这个问题。...
ASM贪吃蛇游戏-解决错误的问... 要解决ASM贪吃蛇游戏中的错误问题,你可以按照以下步骤进行:首先,确定错误的具体表现和问题所在。在贪...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...