黑马程序员技术交流社区
标题:
代码问题
[打印本页]
作者:
Style栉
时间:
2014-3-27 21:19
标题:
代码问题
本帖最后由 Style栉 于 2014-3-27 21:32 编辑
class Demo
{
int x ;
public static void main(String[] args)
{
Demo d = new Demo();
method(d);
System.out.println("d.x="+d.x);
function(d.x);
System.out.println("d.x="+d.x);
}
public static void method( Demo d )
{
d.x = 10;
}
public static void function(int x)
{
x = 100;
}
}
复制代码
//最后的结果怎么会是10 10呢.....第二个输出结果没想通.
作者:
宋超2356
时间:
2014-3-27 21:25
class Demo
{
int x ;
public static void main(String[] args)
{
Demo d = new Demo();
method(d);
System.out.println("d.x="+d.x);
function(d.x);
System.out.println("d.x="+d.x);
}
public static void method( Demo d )
{
d.x = 10;
}
public static void function(int x)
{
x = 100;//问题在于这个x是function方法中声明的x,你把它赋值100与第二句的输出d.x是木有半毛钱关系滴
}
}
复制代码
作者:
Zero霖
时间:
2014-3-27 21:37
本帖最后由 Zero霖 于 2014-3-27 21:39 编辑
因为 function(d.x)传入的是10,但是function方法的参数x跟你定义的Demo类的成员变量x不是同一个变量,所以改变的只是参数x的值而不是成员变量x的值。我估计根据你的需要,可以改成这样:
function方法改成:
public static void function(int x)
{
d.x=x;
}
而主函数中可以将function(d.x)改成function(100),这样修改的就是Demo类的成员变量x的值了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2