一个Java程序题困扰了我好久,怎么想也没想明白到底是怎么回事,请各位Java大神出手帮帮忙看看~谢谢了!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个Java程序题困扰了我好久,怎么想也没想明白到底是怎么回事,请各位Java大神出手帮帮忙看看~谢谢了!相关的知识,希望对你有一定的参考价值。

//我是一个java新手,请大神指教一下,呵呵~
class Value
public int i = 15;

public class TestValue
public static void main(String argv[])
TestValue t = new TestValue();
t.first();

public void first()
int i = 5;
Value v = new Value();
v.i = 25;
second(v, i);
System.out.println(v.i);

public void second(Value v, int i)
i = 0;
v.i = 20;
Value val = new Value();
v = val;
System.out.println(v.i + " " + i);

看代码要先从主方法看
public static void main(string argv[])就是主方法
所有的代码都是从这里开始运行的
TestValue t = new TestValue();
这是声明一个变量t 他的类型是TestValue
然后你再去看TestValue这个类
有两个方法一个是first() 一个是second(value v,int i);
主方法的第三句话是t.first();
就是说它调用了第一个方法first()
再看first()方法
int i=5;声明一个int类型的i值为5,
Value v = new Value();声明一个Value类型的v
v.i=25;为Value类型里面的plublic int i = 15这个i赋值 i是public 公有的所有v.i = 25;是起作用的
所以v.i的值就是25,
second(v,i);这里调用了second(Value v,int i)方法
把v传到second方法里面
i = 0; i赋值为0
v.i = 20; 把对象v里面的i赋值为20
Value val = new Value(); 声明一个Value类型的val
v = val; 把val的赋值给v
System.out.println(v.i + " " + i);打印val.i和的i
应该是打印15和0
最后在走first()方法的最后一段代码
System.out.println(v.i);
v.i前面赋值为25后来赋值为20 然后把val赋值给v
这里前两步骤是值传递 因为i是int类型的
val赋值给v是引用传递所以没有赋值,只是改变它的指向地址。
所以最后打印的结果是
15 0
20追问

second(v, i);
System.out.println(v.i);
v.i = 20;
System.out.println(v.i + " " + i);
这几个v.i为什么他的值不一样呢。这几个v.i把我这个基础不怎么扎实的我搞糊涂了。
麻烦你指教一下谢谢

参考技术A 太简单啦,放到eclipse中打个断点,看看如何一步一步执行的不就解决了么?
我这是教给你如何打渔啊。
参考技术B 你分清楚什么是局部变量和全局变量,,,也就是变量的作用域,还有参数的传递不会改变值的!

Noip2017 提高组初赛 游(baozha)记

本着破财消灾的原则,今天中午我把慈善做完了~~还挺有用

第一题懵逼,不过听说跟我们没有什么关系,于是选2021年GG

然后算日期,算出周日,然后觉得开国大典这种重要的事情不是周一就是周日,没检查,1.5分

问题求解第二题看出转对偶图最短路,然后自己画了一下大概是8种,漏了

阅读第二题小学数学,结果行列搞反了看了半天。

第四题是啥都不知道,第一个对了第二个蒙对了第三个蒙错了。

填成第一题想也没想写了cnt=0

差不多1.5+1.5+3+3+2=11吧。

本来以为gg的结果还行,应该能进的吧

以上是关于一个Java程序题困扰了我好久,怎么想也没想明白到底是怎么回事,请各位Java大神出手帮帮忙看看~谢谢了!的主要内容,如果未能解决你的问题,请参考以下文章

原创这道Java基础题真的有坑!我也没想到还有续集。

Java面试遇到了一题不会,求指教

Noip2017 提高组初赛 游(baozha)记

读MBADBA到底能学到什么?

酷派5950手机系统更新后电话薄丢失怎么恢复?

蚂蚁和蜜蜂的故事告诉我们啥道理