实体对象中,有一个get方法我需要多次调用,需不需要定义一个变量,然后使用这个变量。
例如publicclassTest{privateintid;publicintgetId(){returnid;}publicsetId(intid){this.id=...
例如
public class Test{
private int id;
public int getId(){
return id;
}
public setId(int id){
this.id=id;
}
}
假如,我现在需要用getId()这个方法来做比较。
test.getId()很多地方都需要用到。我不定义一个变量,和定一个变量来使用。有什么区别。
-----------------------------上面是一个实体类,忽略。下面是我想问的-------------------------------
if(test.getId()==1){
}else if(test.getId()==2){
}else if(test.getId() == 3){}
和下面这种写法比较,哪个较好。为什么?(一个把test.getId赋值给了int id的一个变量,一个就直接用test.getId()去做比较,当test.getId()用得比较多的时候,哪种方式比较好)
int id = test.getId();
if(id == 1){
}else if(id == 2){
}else if(id == 3){
} 展开
public class Test{
private int id;
public int getId(){
return id;
}
public setId(int id){
this.id=id;
}
}
假如,我现在需要用getId()这个方法来做比较。
test.getId()很多地方都需要用到。我不定义一个变量,和定一个变量来使用。有什么区别。
-----------------------------上面是一个实体类,忽略。下面是我想问的-------------------------------
if(test.getId()==1){
}else if(test.getId()==2){
}else if(test.getId() == 3){}
和下面这种写法比较,哪个较好。为什么?(一个把test.getId赋值给了int id的一个变量,一个就直接用test.getId()去做比较,当test.getId()用得比较多的时候,哪种方式比较好)
int id = test.getId();
if(id == 1){
}else if(id == 2){
}else if(id == 3){
} 展开
9个回答
展开全部
如果你定义了id这个变量。那么类中的getId和setId就是用来操作这个变量的。如果你不定义id这个属性的话。可以在类中写:
public int getId(){
return 2;
}
这样你调用getId这个方法的时跟之前说的就不一样了。
反正你test.getId()很多地方调用,其实你只需要定义一个属性id然后写上get和set方法,然后掉了无论你怎么比较,什么时候用都不会出问题。所以说你定义一个变量和不定义一个变量关键是看你用的时候的场景。一般一个实体类中有属性的话。就需要提供get和set方法。set是给这个变量设置值,get是拿到id存放的值。如果你不定义id。那么get和set可以用来处理业务逻辑。就是普通的一个处理方法而已。
不知道你是否看懂我的意思,你的问题有点没问明白。你要是不太懂可以私下聊。
我看完你的题目了,你的意思我明白了:
你上面的题用id来接收这种方法要好些:只需要用到一次对象调用方法。不然上面那种发放每次判断都要通过对象去调用,肯定效率就低了很多。
不过最好的写法是这样的:
int id = test.getId();
if(1 == id){
}else if(2 == id){
}else if(3 == id){
}
这样子会更好,尤其是字符串的时候。
public int getId(){
return 2;
}
这样你调用getId这个方法的时跟之前说的就不一样了。
反正你test.getId()很多地方调用,其实你只需要定义一个属性id然后写上get和set方法,然后掉了无论你怎么比较,什么时候用都不会出问题。所以说你定义一个变量和不定义一个变量关键是看你用的时候的场景。一般一个实体类中有属性的话。就需要提供get和set方法。set是给这个变量设置值,get是拿到id存放的值。如果你不定义id。那么get和set可以用来处理业务逻辑。就是普通的一个处理方法而已。
不知道你是否看懂我的意思,你的问题有点没问明白。你要是不太懂可以私下聊。
我看完你的题目了,你的意思我明白了:
你上面的题用id来接收这种方法要好些:只需要用到一次对象调用方法。不然上面那种发放每次判断都要通过对象去调用,肯定效率就低了很多。
不过最好的写法是这样的:
int id = test.getId();
if(1 == id){
}else if(2 == id){
}else if(3 == id){
}
这样子会更好,尤其是字符串的时候。
追问
呵呵,能说说具体点的原理吗。
展开全部
你这不是静态方法,必须要 new 一个实例出来 才可以调用。也就是必须定义一个变量并且要new才可以使用。
针对你上面的代码,后一种方法更简捷,更便于阅读,推荐使用第二种。
从程序执行效率上也推荐使用第二种。
针对你上面的代码,后一种方法更简捷,更便于阅读,推荐使用第二种。
从程序执行效率上也推荐使用第二种。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
定义一个id变量是为了接收getId()传过来的值,可以减少代码量,也可以提高效率,不用再去调用getId这个方法。你应该是个初学者,可以去下载些视频资料学习,这样速度更快,比在这一个一个的问来的快。有不懂再问我,扣扣及百度名。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果需要频繁使用获取的值,用一个变量把这个值存起来可能性能好一点。一般的使用就直接get就行了。
更多追问追答
追问
我想知道他们内部的一些机制是怎样的。如果用得比较多的话,定义一个变量应该是会好点的。但是我不知道他在同一个方法里面,调用相同的属性的时候是重新取,或者还是取原来的。
追答
调用一次get就重新取一遍;但是如果用一个局部变量暂存它,那该就只取一次。这里不需要太纠结这个问题,值都是一样的,举个例子吧,向别人借东西,每次调用get的话就是借一次用一次,后者就是借过来用几次再还。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
都一样的,没有区别,编程不要居于条款。适用可读就行。当然若很多个类中都存在id属性,建议你建一个抽象类来定义id,其它的类继承该抽象类,这样符合面向对象的思想
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询