Java中什么叫封装
封装就是将字段get跟set字段声明前用privateStringname//私有化publicStringgetName(){returnname;}publicvoi...
封装就是将字段get跟set字段声明前用privateStringname//私有化publicStringgetName(){ returnname;}publicvoidsetName(Stringname){ this.name=name;}必须经由过程此类的get/set办法来拜访这就是对数据得封装面向对象之一.
展开
3个回答
2013-09-07
展开全部
java中的封装:将对象的属性和行为隐藏起来,只提供一个接口,用户只要通过对接口的访问,就可以实现自己想要的操作。封装就好像是:微波炉有加热包子的这个方法,你想加热肉包子(“方法”),你只需要将包子放进微波炉里,然后按下加热按钮,稍等几分钟就OK了,这个过程仔细想想:你需要知道微波炉是怎样加热包子的吗?你只要得到一个热的肉包子就行了,这个过程中:微波炉就隐藏了加热包子的操作(在程序中我们称之为“方法”),这就叫封装。 这只是我个人对封装的理解,我也只是一个java的初学者...如果你有其他的理解,补充下...
推荐于2017-11-29
展开全部
前面有private 修饰的【属性】或者是【方法】, 不能【直接】被外部类的实例化对象访问,这样就是封装。
像属性或者方法用private 修饰之后 不能直接访问。
class Person{
private String name; // 属性被封装
//get set 方法可以
//public 修饰的方法可以
public String printName(){ //【自定义的方法】
return name;
}
}
现这种 一般如果name的属性是public,new Person().name 这样就可以直接访问。
现在如果想要访问的话 new Person().name是错误的,因为name被封装,不能直接的访问了。
要通过它里面的其他的方法访问,new Person().printName();【get set 方法可以访问,其他的public修饰的方法也可以】
像属性或者方法用private 修饰之后 不能直接访问。
class Person{
private String name; // 属性被封装
//get set 方法可以
//public 修饰的方法可以
public String printName(){ //【自定义的方法】
return name;
}
}
现这种 一般如果name的属性是public,new Person().name 这样就可以直接访问。
现在如果想要访问的话 new Person().name是错误的,因为name被封装,不能直接的访问了。
要通过它里面的其他的方法访问,new Person().printName();【get set 方法可以访问,其他的public修饰的方法也可以】
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
关于这个问题,我想举一个例子:
lz如果你接触过老的面向过程的编程,
以前封装性很差的程序是这样的
比如用C写一套处理链表的程序,他的数据和函数是分开的
数据保存在一个内存区域里,所有相关的函数,比如增加节点啊,减少节点什么的都是直接操作这个内存区域的指针
比如这样
LIST *p=.....;//开辟空间
AddNode(p,...)//这样来操作
带来了很多额外的不安全因素,因为谁都可以操作这个指针
如果你写的是一个第三方库,那么别人使用的时候完全不在你的控制之下
现在的面向对象程序则不然,
将数据和与之对应的操作(也就是方法)绑定在一个块中
比如在Java中
LinkedList list=new LinkedList();
list.add(...);
这样所有的内部结构对于外部用户都是透明的,不用管内部实现和结构,如何储存数据,都不用管内部实现(一些数据程序成员的访问权限是private protected就是为了数据安全性)
而原先的方式,数据是非封装的,因为外部程序可以随便更改数据,不利于程序的安全运行
以上提到的就属于面向对象封装性的意义,不过实际的好处还不只这些
lz有问题,欢迎给我发消息,我们可以具体讨论一下
lz如果你接触过老的面向过程的编程,
以前封装性很差的程序是这样的
比如用C写一套处理链表的程序,他的数据和函数是分开的
数据保存在一个内存区域里,所有相关的函数,比如增加节点啊,减少节点什么的都是直接操作这个内存区域的指针
比如这样
LIST *p=.....;//开辟空间
AddNode(p,...)//这样来操作
带来了很多额外的不安全因素,因为谁都可以操作这个指针
如果你写的是一个第三方库,那么别人使用的时候完全不在你的控制之下
现在的面向对象程序则不然,
将数据和与之对应的操作(也就是方法)绑定在一个块中
比如在Java中
LinkedList list=new LinkedList();
list.add(...);
这样所有的内部结构对于外部用户都是透明的,不用管内部实现和结构,如何储存数据,都不用管内部实现(一些数据程序成员的访问权限是private protected就是为了数据安全性)
而原先的方式,数据是非封装的,因为外部程序可以随便更改数据,不利于程序的安全运行
以上提到的就属于面向对象封装性的意义,不过实际的好处还不只这些
lz有问题,欢迎给我发消息,我们可以具体讨论一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询