手机类练习、两个对象进行同一个方法内存图

手机类练习

我们来写一个小测试 ,来练习一下对象的创建和使用

首先我们先来创建一个手机的类

属性有 手机的品牌 . 手机的价格 , 手机的颜色

分别使用 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 先走方法区然后 变量名在进栈 ,在类中我们使用的属性进入堆 

我们进入栈的话,会开辟一段内存空间内存空间 然后根据相应的地址值 找到对应的地址值 然后调用方法 最后展示

posted @ 2022-06-29 11:54  一位程序袁  阅读(59)  评论(0编辑  收藏  举报