手机类练习、两个对象进行同一个方法内存图
手机类练习
我们来写一个小测试 ,来练习一下对象的创建和使用
首先我们先来创建一个手机的类
属性有 手机的品牌 . 手机的价格 , 手机的颜色
分别使用 get,set 有参 我无参
public class Phone {
private String brand;// 品牌
private double price; //价格
private String colour; //颜色
public void call(String wod){
System.out.println("给"+wod+"打电话");
}
public void note(){
System.out.println("群发短信");
}
public Phone(String brand, double price, String colour) {
this.brand = brand;
this.price = price;
this.colour = colour;
}
public Phone() {
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getColour() {
return colour;
}
public void setColour(String colour) {
this.colour = colour;
}
@Override
public String toString() {
return "Phone{" +
"brand='" + brand + '\'' +
", price=" + price +
", colour='" + colour + '\'' +
'}';
}
}
手机类创建完成之后在创建俩个方法,创建一个打电话 和发短信 的方法
在创建一个测试类进行测试
public class MyTest1 {
public static void main(String[] args) {
Phone phone = new Phone("ihone",5555,"白色");
phone.call("大傻");
phone.note();
System.out.println("手机品牌"+phone.getBrand()+"价格"+phone.getPrice()+"手机颜色"+phone.getColour());
}
}
我们来看一下运行结果
我们画一个图来看一下 走的流程
首先我们创建了俩个类,第一个phone 电话类 有属性成员方法 然后方法名进栈 属性类型进堆 当我们要查找属性的时候就会去栈获取他的地址在 然后进堆找出对应的属性
找到属性之后 在进行方法区 去找到方法
然后在第二个类中 创建出对象 找到对应的方法进行输出
两个对象进行同一个方法内存图
我们创建了两个对象 ,让俩个对象同时调用一个方法
首先我们的方法名.class 先走方法区然后 变量名在进栈 ,在类中我们使用的属性进入堆
我们进入栈的话,会开辟一段内存空间内存空间 然后根据相应的地址值 找到对应的地址值 然后调用方法 最后展示