java中关于get与set的问题

oiop 2014-04-06 12:17:14
class S{ class S{
private int nu; private int nu;
public void setNu(int nu){ public int getNu(int nu){
this.nu=nu; this.nu=nu;
} return this.nu;
public int getNu(){ }
return nu; }
}
}
我感觉左右2边传值的结果是一样的 请问如果右边如果跟左边一样为什么还要建立个set方法这不是多次一举吗?还是说这2者有本质上的区别? 新手求指教........
...全文
5165 38 打赏 收藏 转发到动态 举报
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
许西城 2016-04-08
  • 打赏
  • 举报
回复
一般用左边的,因为功能更多一些,方便赋值和提取
lee790608 2016-02-26
  • 打赏
  • 举报
回复
如果只是简单的设置和取值,没有必要用set和get。。。 但是,涉及到成千上万行代码的时候,不同的类都要使用这个类s,那么我写的A类可能只取值,具体设置都是B类传递过来的。 如果类似楼主的写法,B类设置值的时候,没有必要再获得自己设置的数据,而A类获取的时候,首先又set了数据,接收不到。。。。 场景可能有非常多,但是set和get作为基本的类的原子操作,必然有它在代码中的意义,多思考。
清泉流 2016-01-25
  • 打赏
  • 举报
回复
一般面向对象,不管是对象还是函数,都一直追求单一职责的原则,如果一个函数具有太多功能,就不好复用了,这对设计对象也一样
菜鸟程序元 2016-01-04
  • 打赏
  • 举报
回复
一个只管读, 一个只管写 ;各司其职还是分开的好
空心兜兜 2015-11-04
  • 打赏
  • 举报
回复
set无返回,一般都是void方法
图灵转世 2015-11-03
  • 打赏
  • 举报
回复
set赋值 get取值
图灵转世 2015-10-17
  • 打赏
  • 举报
回复
set赋值 get取值
孟灵敏 2015-10-06
  • 打赏
  • 举报
回复
set赋值 get取值
这个逗b 2015-09-18
  • 打赏
  • 举报
回复
右边的方法 你要调用他必须给他传值进去,然后返回你刚才传的值出来!你这样写有什么意义? get方法并不需要传值进去。他只是单独为了获得对象中的某个参数。 set方法是给没赋值或者需要改变值得对象设置新的值。 你写的方法有什么意义 我怎么用他取值? 我先给他一值在把他取出来? 怎么set返回一个值有什么意义?
心随自在飞 2015-09-18
  • 打赏
  • 举报
回复
呃,,看了所有人的回帖, 楼主 我只想对你说 去看看 封装 就明白了!
飞行的 2014-11-04
  • 打赏
  • 举报
回复
set是用来赋值的 你不用set给它赋值 怎么用get取值呢
Yaphets_VJ 2014-11-04
  • 打赏
  • 举报
回复
9楼说到点子上了
Zhang895341748 2014-09-24
  • 打赏
  • 举报
回复
set方法是给对象设置值的,get方法是从对象取值的,作用完全相反啊。
Du_allan 2014-09-12
  • 打赏
  • 举报
回复
set(),get()t方法的本意是类中的值和外界进行传递,他俩各自有自己的作用,右边的代码虽然也没问题,但从编程的整体性上考虑左边的代码更能发挥更大的作用。。鄙人愚见。
wwwolves 2014-08-17
  • 打赏
  • 举报
回复
不要意思啊打错个字: 发射技术 改成 反射技术
wwwolves 2014-08-17
  • 打赏
  • 举报
回复
你认为一样也是可以的因为其它类不掉set方法用发射技术也可以给私有属性赋值,但是比较麻烦,没有写set方法方便, 如果有兴趣可以看看反射的知识,一般情况下持久层的类都是私有属性,public的set和get方法,留接口给其他类调用方便。 记得给分哦
打杂家的 2014-05-16
  • 打赏
  • 举报
回复
针对于右边的方法,当你不想赋值,只想取值的时候,怎么办?
scott_129 2014-05-05
  • 打赏
  • 举报
回复
set和get方法一个是设置属性值的,一个是取属性值的,你的右边的get(int nu)方法,是想既做到取值,又做到设置属性值的效果是吧。 给你举个例子吧,现在你通过get(2)将2设置进去了。现在你需要取值了,你本意是取出这个2,但是你在调用get方法的时候Java强制需要你传入一个int类型的值,好没有办法,你传了一个0,结果 this.nu=nu;就会吧2给覆盖掉,变成0,所以没有任何意义了。你根本娶不到原来的值。会造成覆盖。
卖水果的net 2014-05-05
  • 打赏
  • 举报
回复
左边定义了2个方法,右边定义了1个方法。只是你一时用不到。
grapepaul 2014-04-30
  • 打赏
  • 举报
回复
右边函数,如果想get,参数传什么返回什么,那你为什么要get,你本来就有了。 其实那只是个有返回值的set,这个返回值还没意义,因为是你的入参。
加载更多回复(7)

13,100

社区成员

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

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