java属性设置为private作用
java中将成员变量设置为private是为了防止其他类修改变量,但是用get.set方法后不也就是一样可以修改了么这有什么区别吗哪位能给说说吗谢谢...
java 中将成员变量设置为private是为了防止其他类修改变量,但是用get.set方法后不也就是一样可以修改了么 这有什么区别吗 哪位能给说说吗 谢谢
展开
5个回答
展开全部
其实说得明白点吧,这只是java类(特别的很多时候是一个javabean)的两个方法,以提供对某个变量(字段)设置与访问的两个入口,在很多时候也正如你说,跟定义成public是没有两样的,具体的原因在于:
(1)由于很多框架都是调用这两个方法来实现沟通,这是一种习惯了。
(2)get/set方法也不一定只是简单的作一个赋值,或一个返回值吧,在这里可以作一些权限的控制,比如不是每个角色都可以赋值的。再比如返回的值不一定是值本身,可以是经过处理了的,比如加密,这用public定义是不能作到的。
(1)由于很多框架都是调用这两个方法来实现沟通,这是一种习惯了。
(2)get/set方法也不一定只是简单的作一个赋值,或一个返回值吧,在这里可以作一些权限的控制,比如不是每个角色都可以赋值的。再比如返回的值不一定是值本身,可以是经过处理了的,比如加密,这用public定义是不能作到的。
展开全部
get set 方法并不是对所有变量都要设置的
比如一个变量 在初始化对象时传入值 之后只读取而不应该修改它 就只提供get方法 不要画蛇添足地总把set方法也一些写了
另一方面 set方法由于作为一个方法 在赋值前可以对参数检查 保证参数的正确性 如果传入的参数有误 可以主动抛出异常(相关代码还是得自己写) 这也是通过字段直接赋值所不能实现的 并且便于调试
总之 类的设计要做到“适度” 对变量的操作 需要提供的就提供 不该提供的就不要提供 在满足需求的前提下 实现类的功能最小化 避免随着开发规模增加代码量太大而难于管理以及发生错乱
比如一个变量 在初始化对象时传入值 之后只读取而不应该修改它 就只提供get方法 不要画蛇添足地总把set方法也一些写了
另一方面 set方法由于作为一个方法 在赋值前可以对参数检查 保证参数的正确性 如果传入的参数有误 可以主动抛出异常(相关代码还是得自己写) 这也是通过字段直接赋值所不能实现的 并且便于调试
总之 类的设计要做到“适度” 对变量的操作 需要提供的就提供 不该提供的就不要提供 在满足需求的前提下 实现类的功能最小化 避免随着开发规模增加代码量太大而难于管理以及发生错乱
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
java 中将成员变量设置为private是为了防止其他类修改变量,但是用get.set方法后不也就是一样可以修改了么
按照你的说法,既然是为了防止其他累修改变量,但是你有没有想过,其他类(除了继承的类)可以调用该类set,get方法吗?我想是不可以的,这样就对自己的成员起到了保护的作用,也就是安全。不知对你的问题有没有指导作用,呵呵。。。
按照你的说法,既然是为了防止其他累修改变量,但是你有没有想过,其他类(除了继承的类)可以调用该类set,get方法吗?我想是不可以的,这样就对自己的成员起到了保护的作用,也就是安全。不知对你的问题有没有指导作用,呵呵。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这就是封装的特性。
private 私有制...只能自己内部类使用...继承的类也只能通过调用它的函数对它进行传值。
get set是自己定义的一个方法。你可以用别的方法替代。
private 私有制...只能自己内部类使用...继承的类也只能通过调用它的函数对它进行传值。
get set是自己定义的一个方法。你可以用别的方法替代。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不直接的对属性操作,不是防止其他类修改
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询