问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Java中什么叫封装啊?205

发布网友 发布时间:2023-10-02 16:46

我来回答

5个回答

热心网友 时间:2024-12-04 22:10

封装:

类的封装性即不能让外面的类随意修改一个类的成员变量;

在定义一个类的成员(包括变量和方法),使用private关键字说明这个成员的访问权限,只能被这个类的其他成员方法调用,而不能被其他的类中的方法所调用;

为实现封装性,常将类的成员变量声明为private,再通过public的方法来对这个变量进行访问。对一个变量的操作,一般都有 读取和赋值操作,我们一般定义两个方法来实现这两种操作,即:getXxx()与setXxx();

一个类就是一个模块,我们应该让模块仅仅公开必须要让外界知道的内容,而隐藏其他的一切内容。再进行程序设计时,应尽量避免一个模块直接修改或操作另一个模块的数据,模块设计追求强内聚(许多功能尽量在类的内部独立完成,不让外面干预),弱耦合(提供给外部尽量少的方法调用)。

正确理解封装:

正确地封装Java类

一个设计良好的软件工程是由一些能够正确执行系统中定义好的独立任务的Java成员函数组成,这样的软件工程具有很好的扩展性。相反,那些功能混乱定义不一的函数,在重载或另一环境调用的过程中会容易发生冲突。

在Java的封装功能中,我提出了与Java封装概念相称的启发概念。每一个启发都提供了确保封装能展示封装内容的向导。在这一章节里,我将集中讲述封装类如何保证封装内容的高度统一性。我们将会看到,这些方法都大大简化了类封装的可维护性和重调用性。
可维护性

既然大家都知道重载是面向对象程序设计的很重要组成部分,那么你可以看出软件的可维护性的重要性。如果能正确地封装类,你就可以减少很多函数的更改。
在同一封装里严密地联结各个类

严密地联结封装中的各个类可以得到高凝聚的封装。如果两个类展示出很好的联结性,那么这两个类很有可能被经常地调用以提供联系方便的服务。所以当在设计你的封装时,你可以最大限度地减小封装之间的依靠性,以避免各个封装的冲突。
在同一封装里类要统一改变

显然的,当其他类改变时,各个严密结合的类也同样受到影响。任一个类的更改都会导致与这一类相关的类的相应更改,至少,类中的函数必须更改。你可以通过在同一封装里严密联结类来避免这些风险。
然而,一些联结不严密的类也被工程的其他改变而改变。在这样的情况下,你应该把这些类放在同一封装。因为独立的类改变时,它们会产生其他的负影响。
在不同封装里类不要一起调用

封装启发的可行性取决于是否封装能提供真正的联结。即使类能经常地一起被调用,它们却不能一起被改变。所认你必须把这些类进行独立封装。当然,这就意味着引入多个封装来调用独立的类。这一方法的优点是显而易见的。
在一个封装里对一个类的依赖也会产生对其他类的依赖,这是必然的。当封装中一个类改变时,整个封装都会发生变化。
在不同封装里类不要一起重载

不幸的是,即使在初始化时,一个类对象不能允许它自己去调用不同的类,就给软件升级带来不利,这样软件的可维护性就变得非常很重要。所以在不同的封装里,独立的类重载是一个最有效的方法。
关键的注意事项

在Java程序设计时,你必须注意以下几点:
Containing Change ––––封装各个类到一个单一的封装里能减少很多更改,把所有改变都集中到一个封装里有助于软件的可维护性。
Class coupling –––––当在同一封装里联结类时,你应该注意到其他类也有可能和这一个类有关。忽视这些联系会产生很多不必要的关联。
Contention ––––– 前两个启发产生比较大的封装,目的是调用;后两个启发产生比较小的封装,目的是可维护。这前后的封装会发生冲突。在开发过程中,你必须在程序结构上作出相应的改变。在程序设计开发初期,你应该选择利于软件可维护性的比较小的封装;当在开发后期,你应该选择利于软件调用的比较大的封装。
调用

当设计程序框架时,你应该集中于封装的调用,因为Java封装的调用和可维护非常的重要。当设计合理,程序就很容易的支持封装的调用功能。

热心网友 时间:2024-12-04 22:11

我给你举几个例子:

一个用户有用户名,密码,权限等,把这些属性放在一个用户里就等于是封装.看个实际一点的例子,一个人有眼睛,鼻子,嘴巴,等面貌特征,用OOP的思想理解就是,这里的人相当是一个对象,眼睛等相当与是这个对象的属性,我们所说的封装就是指把这些眼睛,鼻子,嘴巴等属性放在一个对象里即为封装.(当然这些属性都是特定的,你不能说我把猪脚也放进这个对象里去,那么这就违背了封装的概念).
概念:把一系列具有相同特征的属性放在一个对象,组成的这个对象的过程就叫做封装.
以后你会接触到javabean,我先给你看个实际的应用程序例子:
//用户对象的属性
private String username; //用户名属性
private String password; //密码属性
//实力一个用户对象
User user = new User(); //用户对象user
//调用setUsername()方法传一个admin进去
user.setUsername("admin");
user.setPassword("123456");

把用户名为admin和密码为123456放进这个 User对象里去.这就是一个封装的过程.
这里的setUsername()方法相当与给一个变量赋值.比如上面申明了一个String型的username变量,通过调用serUsername()方法就等于
String username = "admin";

这个方法的实现如下:
public void setUsername(String uname)
{
this.username = uname;
}

以后你会经常和这代码打交道的,这只是简单给你描述下在程序里的封装概念.还有不懂的地方MSN留言...

热心网友 时间:2024-12-04 22:11

关于这个问题,我想举一个例子:

lz如果你接触过老的面向过程的编程,
以前封装性很差的程序是这样的
比如用C写一套处理链表的程序,他的数据和函数是分开的
数据保存在一个内存区域里,所有相关的函数,比如增加节点啊,减少节点什么的都是直接操作这个内存区域的指针
比如这样
LIST *p=.....;//开辟空间
AddNode(p,...)//这样来操作
带来了很多额外的不安全因素,因为谁都可以操作这个指针
如果你写的是一个第三方库,那么别人使用的时候完全不在你的控制之下

现在的面向对象程序则不然,
将数据和与之对应的操作(也就是方法)绑定在一个块中
比如在Java中
LinkedList list=new LinkedList();
list.add(...);
这样所有的内部结构对于外部用户都是透明的,不用管内部实现和结构,如何储存数据,都不用管内部实现(一些数据程序成员的访问权限是private protected就是为了数据安全性)
而原先的方式,数据是非封装的,因为外部程序可以随便更改数据,不利于程序的安全运行

以上提到的就属于面向对象封装性的意义,不过实际的好处还不只这些
lz有问题,欢迎给我发消息,我们可以具体讨论一下

热心网友 时间:2024-12-04 22:12

封装其实在JAVA,c#等 面向对象于艳丽里面我们一直都在做
类本身就是 封装的一种体现
说通俗点 就是将一系列有关系的数据活着行为放到一个或多个类里面
而把这些操作以及数据等 放到一起 以接口的方式向外提供服务的这种组织形式就称为封装

就比如我们将对某一张表的操作都封装到了 ClassA中
外界调用时只需要知道 ClassA中相关操作的方法 以及 方法所需要的参数即可完成想要的操作 那么这里的方法就是一种接口

热心网友 时间:2024-12-04 22:12

按我个人意见就是:
对一些属性或者方法进行封装在同一个类里面,这样在传递这个属性或方法的时候可以直接传递这个类就行了,这样的好处就是:1、比如你要修改某个属性,只要在封装这些属性的代码修改就行了,其余不需要修改;2、如果要传递多个数据,这样封装之后就可以避免传递数据时出现遗漏等错误;3、封装可以提高代码的优化性能。

暂时的理解就这么多!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
宁波社保卡办理需要什么材料 宁波社保卡如何申领 有什么高性价比的隔离霜可以推荐? 防晒效果好的隔离霜有哪些值得入手? 下雨天经常爬在房子墙上的那种软体动物,不是蜗牛没壳的,可以在墙上把身... 原来是美男啊里面插曲、主题曲都有哪些? 请问下各位大虾,我在外地用外地农行卡网上转账到本地邮政卡星期六转账的... 为什么用支付宝买东西明明我余额足够,付款时却说我余额不足?2个... 萍乡烛式过滤器品牌 衡水烛式过滤器品牌推荐 什么是Java的封装类15 《不能说的秘密》中周杰伦与桂伦美四手联弹的曲子叫什么? 怎么画出最圆的圆圈?4 求PS行书、草书字体打包下载42 求推荐BL穿越重生种田文,穿越后穷到不行不行,然后靠自己的努...4 项链上有两个类似于戒子的环子是什么意思1 个体工商户已经税务报到完后,在需要做什么呢?银行开户?是开个...1 公证员执业期限 在滩位上有一种和黄金一模一样的项链,手镯,戒指很便宜的,是什...1 请您帮忙给个起名建议 微信小程序赚钱是真的吗12 保险理赔时间规定是多久267 税务的三方协议去银行怎么签?我们还没有开对公户,是不是要开个...11 酒店管理专业与餐饮管理的区别何在?24 ...不要求特别专业.. 不要台式机 笔记本联想的Y460N和Y460A买哪个比较... 胡萝卜放冰箱后变黑还能吃吗?28 删除支付宝给你开亲情卡的好友,对方会收到消息吗?2 想考2016年上半年的catti三级笔译什么时候报名13 2017年上半年的catti笔译三级证,什么时候开始领,怎么...1 Catti三笔,2018上半年考的也没有97 两个手机公用一个icloud,以前的旧手机新存的号码新手机上... 上诉成立的条件是什么 比比蜂婴儿理发器怎么样 谁有高中政治,历史,地理的电子课本啊? 在捷信贷款3万,分24期还完 ,一个月需要还多少?44 魔兽争霸澄海3C有什么加钱的秘籍还有什么bug 捷信贷款30000元 分36期还完 每个月需要还多少?还有捷...35 如果我在捷信贷款三万,要分多少期换,一期大概多少钱。利息总和... 网友门帮我算一下 我在捷信贷款3万还36期 年利息是多少 每... 介绍几个动画片多的影院或网站2 2015年上半年山西省catti三级笔译时间1 为什么江苏经济这么发达?主要是靠什么富起来的?好像工业比较发达_百度... 搅怎么读音 百度总是不收录,是不是网站有什么问题1 运动完马上睡觉可以么23 有两个是什么样的感觉? 我想找一种戒指,戒指的制材是银色的链子,像项链一样,不是珠子... 关于德阳建院单招问题详解!2 我语数外能考150分,在德阳建院单招好过吗? 2016年德阳建院高职单招的专业有哪些