java初学者求教各位大神关于面向对象编程的问题?

书上有个题目是这样的:有电视商品价格竞猜活动,规则是,随机出现一个商品,用户猜它的价格,如果在四次内猜对,便可获得此商品。现在要求用面向对象的思想编程实现竞猜活动。我是用... 书上有个题目是这样的:
有电视商品价格竞猜活动,规则是,随机出现一个商品,用户猜它的价格,如果在四次内猜对,便可获得此商品。现在要求用面向对象的思想编程实现竞猜活动。我是用原始的方法写的:
import java.util.*;
public class cai {
public static void main(String[] args) {
Scanner in=new Scanner(System.in );
int shu=(int)(Math.random()*4)+1;
System.out.println(shu);
int i;
if(shu==1){
System.out.print("请猜“公主电动车”的价格(您有四次机会):");
for( i=1;i<=4;i++){
int jage=in.nextInt();
if(i!=4){
if(jage==3500){
System.out.println("恭喜您猜对了!");
break;
}else if(jage<3500){
System.out.print("小了点再猜一次吧:");
continue;
}else if(jage>3500){
System.out.print("大了点再猜 一次吧:");
continue;
}
}else{
System.out.println("4次内没猜中,下次努力吧!");
break;
}
}
}
else if(shu==2){
System.out.print("请猜“松下空调”的价格(您有四次机会):");
for( i=1;i<=4;i++){
int jage=in.nextInt();
if(i!=4){
if(jage==2860){
System.out.println("恭喜您猜对了!");
break;
}else if(jage<2860){
System.out.print("小了点再猜一次吧:");
continue;
}else if(jage>2860){
System.out.print("大了点再猜 一次吧:");
continue;
}
}else{
System.out.println("4次内没猜中,下次努力吧!");
break;
}
}
}
写得太多放不下了我删了第四个,但是一看就知道的。请大神给说说如何用面象对象的方法简化这么代码呢?另外我不太明白这个return 返回值是干什么用的怎么觉得好像不要它也可以,只是要换个方法而已.
知道可能比较麻烦。所以这里我给100金币哦!希望知道的朋友不吝赐教!
展开
 我来答
梅须逊雪二分白
推荐于2016-09-07 · TA获得超过167个赞
知道小有建树答主
回答量:220
采纳率:0%
帮助的人:141万
展开全部
System.out.print("请猜“公主电动车”的价格(您有四次机会):");
for( i=1;i<=4;i++){
int jage=in.nextInt();
if(i!=4){
if(jage==3500){
System.out.println("恭喜您猜对了!");
break;
}else if(jage<3500){
System.out.print("小了点再猜一次吧:");
continue;
}else if(jage>3500){
System.out.print("大了点再猜 一次吧:");
continue;
}
}else{
System.out.println("4次内没猜中,下次努力吧!");
break;
}
}
把这些重复的代码 写成一个方法 比如 private void aMethod(int 商品类型,int 输入的价格){ }
通过传入的参数 进行相应的 控制和处理
return 用来终止当前方法 void类型 也可以用return
更多追问追答
追问
老兄你真是大好人啊,我按你的方法写成了!
(本来我要把我写的粘上来的可是放不下了)
而且好像还很好啊!很完美。一点问题也没有!可是我没有用return[这个词啊,书上要求要用这个返回值]我不明白没用好像也可以啊!老兄给我讲讲这个吧。这种情况要不要用,为什么 ?什么时候非要用。?
追答
在有返回值的方法中 用return比较好理解 得到了想要的东西 就结束方法呗
同理 在void类型的方法中 也是这个作用
return主要是在多分支 循环 判断进入不同状态时 用的 说白了 就是满足了一定的条件 结束掉方法
但是一般在void中用的很少 主要是在你写一个很长的 事物逻辑的处理的时候 在分支的结尾用个return 就是主动结束 void类型方法 的一个灵活应用 怎么说呢 好比一般写方法的时候 一般写有返回值的 因为可以控制方法的结束
for循环有的时候只是break还不够 这时候可以return
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天麒圆u
2015-04-10 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:94
采纳率:100%
帮助的人:46.1万
展开全部
你做的这个控制台程序再简化也简化不了多少,主要是你的字啊判断有这么多。然后呢,想要页面好看点东西少点 就找个方法把东西写到方法里面调用就行。最后呢,return有什么用呢 比如:
下面是一个return的方法

public int sum(a,b,c,d){
int a = 1;
int b = 2
int c = 3;
int d = 4;
int sum = a+b+c+d
return sum; 得到和

}

你只需要把你需要求和的四个值放到方法就能得到和,可以重复使用简单方便减少冗余。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
等祢看流星雨
2015-04-10 · TA获得超过231个赞
知道小有建树答主
回答量:261
采纳率:0%
帮助的人:200万
展开全部
int i = 4;
while(i >0){
if(jage==3500){
.............;
break;

}else if(jage < 3500){
................;

}else

.............;

i--;

}
System.out.println("4次内没猜中,下次努力吧!");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式