前面说了隐藏,那么顺理成章的,下面就是封装。
有了隐藏,封装的存在就有其重要的目的了。
前面我们已经将类中的属性修饰为private,隐藏起来,只能在类本身里面来操作。那么很多时候,属性的信息数据都是来自于其他的用户(其他类或者对象),那么其他的类和对象如何把信息数据交给对象,由相应的属性进行记录保存?
这就是封装了。
先看看封装的简单说明:
封装指的是将对象的状态信息(属性)和行为(方法)捆绑为一个逻辑单元的机制。
Java中通过将数据封装、声明为私有的(private),再提供一个或多个公开的(public)方法实现对该属性的操作。
从说明可以看出,封装是一个很实际的类的声明操作。我们将类的属性通过private声明为私有,但是同时也想让该属性在有限制的情况下提供给其他的类和对象来操作,就是封装,定义一个或者多个公开的public的方法实现对属性的操作。其他类和对象并不是直接对属性进行操作,而是将要操作的数据传递给公开的属性封装方法,由这些封装方法来完成具体的操作。
当然,具体如何实现操作,就是由类的声明人来定义了。就像是前面示例的set方法,当其他用户提供了年龄的数据,首先进行数据的检查,看是否符合逻辑要求,就像是输入数据的重复确认一样,防止错误的垃圾数据进入程序操作。
上面封装的说明,就是具体的封装操作。实际上,可以看做是Java类定义的一个基本要求。如无特殊要求,可以在声明类的时候,就按照封装的要求来进行类的声明。所有类的属性声明为private私有,在定义相关的属性的读写方法来实现对属性的操作。并且有这样的Java bean要求,一个Java bean就是一个最简单的java程序组件。java bean对类的属性的声明以及读写方法有这样的标准要求,这已经是Java开发的标准了,所有的java开发人员、Java软件、api等等,都遵循这个要求。如果你的代码复合Java bean的标准的话,会对你以后的额Java开发带来很大的便利。
Java bean要求类属性私有,属性的读方法:
public 属性的数据类型 get属性名称(){
}
其中,方法名中的属性名,第一个字母要大写。
属性的写方法:
public void set属性名称(属性数据类型 传入参数){
}
读写方法的内部逻辑可以根据实际情况来完成,方法的定义标准不能变,这样,Java平台会根据相应的get和set方法,识别出该方法分别是那个属性的读写方法(甚至即使在类里面,根本没有这个属性,话句话说,Java平台识别属性依据的是get和set方法)
Java bean先说到这里,等以后对Java了解跟多之后,这个标准就更容易理解了。
最后,补充说明一下封装的操作目的,这几个目的,在下一篇里面,结合我的实际开发经验,说说其重要的意义:
隐藏一个类的实现细节;
防止对封装数据的未经授权的访问。使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作;
有利于保证数据的完整性;
便于修改,增强代码的可维护性。
实现封装的关键是不要让方法直接访问其他类的属性,程序应该只能通过指定的方法 与对象的数据交互。封装赋予对象“黑盒”特性,这是实现重用性和可靠性的关键。
分享到:
相关推荐
c#面向对象——封装
面向对象编程的三大核心特征分别是:封装、继承和多态。 1. **封装**:是指将对象的状态信息(数据成员)隐藏在对象内部,不允许外部程序直接访问对象内部状态,而是通过该类提供的成员函数来实现对内部状态的操作...
四大发明之活字印刷——面向对象思想的胜利 第一章............面试受挫——代码无错就是好? 第二章............代码规范、重构 第三章............复制VS复用 第四章.......
四大发明之活字印刷——面向对象思想的胜利 第一章............面试受挫——代码无错就是好? 第二章............代码规范、重构 第三章............复制 VS 复用 第四章......
这份“python面向对象presentation——PPT(含源码)”是为学习者提供了一个深入理解面向对象编程的资源,适合学生用于presentation或自我学习。 1. **面向对象编程基础** - 类(Class):类是创建对象的模板,...
在这个例子中,我们通过定义`Book`类实现了面向对象编程的基本概念:封装(通过private修饰符隐藏字段)、抽象(定义了一个抽象的`Book`类来表示所有书籍共有的属性和行为)、继承(虽然没有直接展示,但可以想象创建一个...
《面向对象程序设计——Java语言》是一门深入探讨如何使用Java进行面向对象编程的课程,由知名讲师程细柱制作的PPT电子课件。面向对象编程(Object-Oriented Programming,简称OOP)是现代软件开发中的核心编程范式...
【面向对象实验——蜘蛛纸牌】是一个以Java编程语言实现的桌面游戏项目,它基于面向对象的编程思想,旨在提供一个美观且功能完整的蜘蛛纸牌游戏体验。在本实验中,我们将深入探讨以下几个核心知识点: 1. **面向...
Educoder题目:Java面向对象 - 封装、继承和多态答案解析
封装是面向对象编程的基础,它将数据和操作数据的方法绑定在一起,形成一个独立的单元——对象。在Python中,我们可以通过定义类(class)来实现封装。例如,我们可以创建一个名为"商品"的类,包含商品名(name)、...
封装是面向对象三大特性之一,它的核心思想是将数据和操作这些数据的方法绑定在一起,作为一个整体——即对象来处理,对外界隐藏对象内部的具体实现细节。 在C语言中,我们可以创建一个结构体来代表类,将相关的...
总结一下,Python的面向对象编程涉及类的定义、对象的实例化、继承、封装和多态等概念。在对象的引用方面,Python采用引用计数和垃圾回收机制管理内存,数值类型的对象如整数可能会共享内存,而字符串和列表等可变...
面向对象编程是Python中一种重要的编程范式,它允许我们通过类(class)来定义对象,从而实现数据封装和行为抽象。在这个主题中,我们将深入探讨面向对象编程的一个关键特性——多态性(Polymorphism),以及在...
1.1.17 OOP技术——面向对象编程技术 18 1.1.18 ReadLine方法——从当前流中读取一行字符 20 1.1.19 typeof运算符——获得系统原型对象的类型 21 1.1.20 using关键字——引入命名空间 22 1.1.21 WriteLine方法——...
《Visual C++ 面向对象编程教程——王育坚》是一本专为学习MFC(Microsoft Foundation Classes)和面向对象编程技术而设计的教学资料。该教程以幻灯片的形式呈现,结合实例与详细的讲解,使得学习过程更为直观且易于...
在这个名为“面向对象实验一——纸牌游戏”的项目中,我们看到了如何使用Java语言来实现这一理念,通过模拟Windows经典的小游戏纸牌,学习者可以深入理解面向对象编程的核心概念。 首先,我们需要了解面向对象的三...
在“C++面向对象程序设计教程——课件PPT”中,我们可以深入学习这一主题,由陈维兴和林小茶编著,清华大学出版社出版。这套教程通过一系列的PPT章节,详细讲解了C++面向对象编程的关键概念。 首先,第1章“面向...
4. **L05.pdf** —— 可能介绍C++的类和对象,这是面向对象编程的基础,学习者会学习如何定义类、创建对象,以及封装、继承和多态等概念。 5. **L06.pdf** —— 可能讲解了数组和向量,包括一维和多维数组的使用,...
1. 封装:封装是面向对象的基本特性,它允许我们将数据(属性)和操作数据的方法(行为)绑定在一起,形成一个独立的单元——对象。这样可以隐藏对象内部的复杂性,只对外提供接口进行交互,提高了代码的安全性和可...
面向对象编程(Object-Oriented Programming, OOP)是现代软件开发中的核心概念,它通过封装、继承、多态等机制来提高代码的可重用性和可维护性。 在C++中,面向对象编程的实现主要体现在以下几个方面: 1. 封装:...