日期:2014-05-20  浏览次数:20724 次

一个关于方法定义的问题,新手求助,谢谢:)
class Demo{
int temp = 30 ; // 此处为了方便,属性暂时不封装
};
public class test02{
public static void main(String args[]){
Demo d1 = new Demo() ; // 实例化Demo对象,实例化之后里面的temp=30 

fun(d1) ;
System.out.println("fun()方法调用之后:" + d1.temp) ;
}
public static void fun(Demo d2){ // 此处的方法由主方法直接调用
d2.temp = 1000; // 修改temp值
}
};

问题:在这里面有个demon类,下面的方法又定义了public static void fun(Demo d2),到这就有点糊涂了,这里fun(Demo d2)形参一般不是声明类型么int String之类的,为什么这里用了个Demon d2,这个d2定义出来是什么东西呢?属于demon类的?

------解决方案--------------------
探讨
那这种形式d2.temp = 1000;说明d2也是个对象?如果是对象用不用实例化呢?

引用:
类本身也是一种用户自定义类型,学过C语言就知道有个Struct类型,这里的Demo是一个类,使用户自定义的数据结构,在函数fun(Demo d2)中传递的是Demo类得地址,在函数里改变Demo的值会影响到最终结果。