问一个有关面向对象封装的问题

methc 2008-12-17 05:34:41
小弟我有个问题就是类中set、get方法是不是破坏了类的封装呢,一个类中的私有成员能够随意的用set方法对其修改,是不是违反了类的封装性呢
...全文
181 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
methc 2008-12-23
  • 打赏
  • 举报
回复
似乎明白,谢谢各位了
cqsxdb 2008-12-21
  • 打赏
  • 举报
回复
帮顶
qqlpp 2008-12-21
  • 打赏
  • 举报
回复
帮顶
  • 打赏
  • 举报
回复
不懂,帮顶
qap22 2008-12-21
  • 打赏
  • 举报
回复
不懂,帮顶
liang__ 2008-12-21
  • 打赏
  • 举报
回复
我也说不清楚,是不会的啦
whuzjf1985 2008-12-21
  • 打赏
  • 举报
回复
这个不会破坏封装,其实 get set只是向外界提供了一个接口,外界要通过这个接口才能访问到这个属性。比如 类A的一个对象是a 那么加入age是他的一个属性 其为private那么a.age这样是非法的 因为age是private只能被类的其他对象访问 ,所以通过get set方法 才能通过这个对象访问到他的属性age 比如a.setage a.getage 所以 这样不会破坏对象的封装
guolimin1118 2008-12-21
  • 打赏
  • 举报
回复
set 方法确实可以修改类的属性
不过你要知道如果不留一个公共接口给外界调用的话
那这个类就没有意义了
mbb613625 2008-12-21
  • 打赏
  • 举报
回复
不会破坏!
  • 打赏
  • 举报
回复
如果想封装程度更高一些,可以把 set 方法设为 private, protected 或者是没有修饰。
这样做的话,一般是针对一些只读属性。
chenbo124 2008-12-19
  • 打赏
  • 举报
回复
封装是指类将自己的成员和方法组织到一起,以方便使用和维护,并不是指不让修改自己的属性值.
set方法虽然能改变私有成员的值,但也是自己的实例才能调用,其他类的实例是无法调用的,
因此谈不上破坏封装性.
chenbo124 2008-12-19
  • 打赏
  • 举报
回复
封装是指类将自己的成员和方法组织到一起,以方便使用和维护,并不是指不让修改自己的属性值.
set方法虽然能改变私有成员的值,但也是自己的实例才能调用,其他类的实例是无法调用的,
因此谈不上破坏封装性.
haojia0716 2008-12-19
  • 打赏
  • 举报
回复
sorry 打太快 有个地方打错了
main()方法里的test2的T应该是大写
haojia0716 2008-12-19
  • 打赏
  • 举报
回复

public class Test {
String s = "小强";

public static void main(String[] args) {
System.out.println(new test2().s);
}
}

class Test2 extends Test {

}


看了这个例子你就明白了
如果属性不是private 是会被继承下来的
而且set get可以控制访问形式
freedomTTT 2008-12-18
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 kongwei302 的回复:]
对呀,你能通过set添加bean吗?真是
[/Quote]
煮的
kongwei302 2008-12-18
  • 打赏
  • 举报
回复
对呀,你能通过set添加bean吗?真是
wongshiang1984 2008-12-18
  • 打赏
  • 举报
回复
你可以看看这些属性是什么,都是private的属性就是说,除了他自己可以访问以外,别的类是访问不了的,所以get是由创建他这个类的实例来调用的
methc 2008-12-18
  • 打赏
  • 举报
回复
封装的意义就是不能让人随便的去更改。可是我总觉得set 方法从某种意义上说破坏了其封装性
myjava_024 2008-12-18
  • 打赏
  • 举报
回复
其实就是javabean的属性的访问权限控制,楼主看看这方面的东西
tjzero_sapce 2008-12-17
  • 打赏
  • 举报
回复
自身类中的private 属性 就是通过 自身类中的public set 和 get方法来进行数据的封装
加载更多回复(4)

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧