为了账号安全,请及时绑定邮箱和手机立即绑定

输出的结果是什么?

输出的结果是什么?

赵明明123 2016-04-02 14:51:11
public class Answer { public static void main(String[] args) {    int score = 20;   Answer  ans= new Answer();      ans.add(score);   System.out.println(" main: score = " + score); } void  add(int score) {   System.out.println(" add: score=" + score++); }}
查看完整描述

7 回答

?
qq_执手蓝天丶_0

TA贡献1条经验 获得超1个赞

main=20;

add=20;

score++是执行完后面语句后才加1;

查看完整回答
1 反对 回复 2016-04-03
?
赵明明123

TA贡献1条经验 获得超1个赞

本题考查的是Java的方法参数传递。在Java中方法参数传递只有值传递,其特点如下: 1)基本数据类型传递的是值本身。 2)引用数据类型传递也是引用的值,是对象的地址,而不是对象本身。 本题中,首先要明白main方法中的局部变量score,和add方法的形参score在栈内存中是两个变量,当调用add方法时,是把main方法中局部变量score的值20赋值给add方法的形式参数score,所以当形参score在add方法中发生变化时不会影响到main方法中局部变量score的值。 本题运行过程如下: 1.从main方法的第一行开始,定义并初始化局部变量score。 2.实例化Answer类的对象ans,调用add方法,将main方法中的score的值赋值给形参score,此时,形参score的值为20。 3.计算表达式score++的值。计算后,score++表达式的值为20,score的值变为21。此处输出的是score++表达式的值,该值为20。 4.由于形式参数score的改变不会影响main方法中score的值,故main方法中输出score仍然为20。

查看完整回答
1 反对 回复 2016-04-02
  • 夜雪千寒
    夜雪千寒
    请问score++表达式的值为什么为20啊?
  • 羽莎7
    羽莎7
    score++表示score=score+1;计算步骤 1.先将20赋值给左边的score;2.将原来的score(20)+1,变量score新的值为21. 注意score++和++score的区别
  • 夜雪千寒
    夜雪千寒
    谢谢你
?
慕斯2125595

TA贡献3条经验 获得超0个赞

add: score=21

main: score =20

查看完整回答
反对 回复 2016-04-02
?
慕斯2125595

TA贡献3条经验 获得超0个赞

21

20

查看完整回答
反对 回复 2016-04-02
?
慕粉3133796

TA贡献2条经验 获得超0个赞

 add: score=20

 main: score = 20


查看完整回答
反对 回复 2016-04-02
?
1525155750

TA贡献2条经验 获得超0个赞

 add: score=20

 main: score = 20


查看完整回答
反对 回复 2016-04-02
  • 7 回答
  • 0 关注
  • 1970 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信