Java的返回值void speak

[复制链接]
查看11 | 回复2 | 2010-11-26 13:07:22 | 显示全部楼层 |阅读模式
class Xiyoujirenwu
{float height,weight;
String head,ear,hand,foot,mouth;
void speak(String s)
{
head="歪着头";
System.out.println(s);
}
}
class wocao
{public static void main(String args[])
{
Xiyoujirenwuzhubajie,sunwukong;
zhubajie=newXiyoujirenwu();
sunwukong=new Xiyoujirenwu();
zhubajie.height=1.8f;
zhubajie.weight=160f; zhubajie.hand="两只黑手";
zhubajie.foot="两只大脚"; zhubajie.head="大头";
zhubajie.ear="一双大耳朵"; zhubajie.mouth="一只大嘴";
sunwukong.height=1.62f;
sunwukong.weight=1000f;sunwukong.hand="白嫩小手";
sunwukong.foot="两只锈脚"; sunwukong.head="秀发飘飘";
sunwukong.ear="一对小耳"; sunwukong.mouth="樱桃小嘴";
System.out.println("zhubajie的身高:"+zhubajie.height);
System.out.println("zhubajie的头:"+zhubajie.head);
System.out.println("sunwukong的重量:"+sunwukong.weight);
System.out.println("sunwukong的头:"+sunwukong.head);
zhubajie.speak("俺老猪我想娶媳妇");
System.out.println("zhubajie现在的头:"+zhubajie.head);
zhubajie.speak("老孙我重1000斤,我想骗八戒背我");
System.out.println("sunwukong现在的头:"+sunwukong.head);
}
}
网上的回答不大看的懂请高手解答 为什么zhubajie的头输出的是大头
现在的头是歪着头

回复

使用道具 举报

千问 | 2010-11-26 13:07:22 | 显示全部楼层
void speak(String s){head="歪着头";System.out.println(s);}你先看一下你的这个程序,你给你的属性赋值为“歪着头”。之前你已经对head属性进行了赋值,所以head=“歪着头”其实是对该属性的修改。只要你没调用speak方法,head的值就是“大头”。但是,在你的程序中,只要调用speak方法,就会触发修改head属性。总之就是你初始化的时候是“大头”之后你又给修改成了“歪着头”。
回复

使用道具 举报

千问 | 2010-11-26 13:07:22 | 显示全部楼层
byte的范围在-128到127之间,200超出了,你可用Byte.MAN_VALUE和Byte.MIN_VALUE看一下最大值和最小值
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行