【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 类所在的包。由于类的继承性,类所有的公有方法和变量都能被其子类继承。

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...