package 类和对象;
public class Phone {
//成员变量
String brand; //品牌
double price; //价格
String color; //颜色
}
package 类和对象;
public class UsePhone {
public static void main(String[] args) {
Phone one = new Phone();
one.brand = “苹果”;
one.price = 8388.0;
one.color = “土豪金”;
method(one); //传递进去的参数其实就是地址值
}
//带有static的就作为普通方法,不需要对象可直接调用
public static void method(Phone param)
{
System.out.println(param.brand); //苹果
System.out.println(param.price); //8388.0
System.out.println(param.color); //土豪金
}
}
思路:先从main开始(进栈)
开辟一段内存空间,创建了对象Phone one
new phone()被放在了堆中
里面就有成员变量,一开始都是默认值 null 0.0 null
还有成员方法 (保存的其实是地址值)有自己的地址值0x333
而堆中的new Phone()也有自己的地址值0x666
0x666就被保存到Phone one 的one中
然后往里面分别给其赋值 变成了苹果 8388.0 土豪金
然后method(Phone param)进栈
开辟一段内存空间
Phone one中的地址值就交给了method(one)
method(one)中的one就要往method(Phone param)中传参数( 实际上也就是传地址,param来接收)
下面的param.brand实际上是0x666.brand,所以就能够根据地址找到对象,也就是使用它
运行结果: