publicclassDemo{Stringname="zhangsan";intage=20;publicvoidshow(){System.out.println("name"+name);System.out.println("age"+age);}}*************************************分界...
public class Demo{
String name="zhangsan";
int age = 20;
public void show(){
System.out.println("name" + name);
System.out.println("age" + age);
}
}
*************************************分界线
import java.util.*;
public class Test{
public static void main(String[] agrs){
Demo d = new Demo();
Scanner input = new Scanner();
d.show();
}
public void test(Demo d1){
d1.show();//问题在这里
}
}
我详细说下我的思路和问题:
例子:
Demo d1;
d1 = new Demo();
好,第一条语句只是创建了一个对象引用变量,里面为null,没有指向任何内存空间
第二条语句在堆内存中用new 关键字开辟了一个内存空间,里面保存了属性和方法,
然后用=符号将这个对象空间的地址赋给d1,那么d1就指向了那块内存地址
所以在eclipse里d1后面打点就能找到Demo类的属性和方法,
问题:
在test方法里,形参并没有new
那么d1后面打点怎么能引用到Demo类的属性和方法。。。
呵呵,我知道,我要调用test方法的话就必须给d1传一个对象型参数,也就是Demo的实例,我问的只是我d1打点为什么能找到Demo的属性和方法,d1此时里面为null,传了参才有地址,没地址怎么能引用到Demo类的属性和方法
展开