关于栈、堆、方法区分别存放哪些元素具体请参考:
https://blog.csdn.net/qq_35654259/article/details/84197879
案例如下:
/*
手机类的测试
*/
class Phone {
//品牌
String brand;
//价格
int price;
//颜色
String color;
//打电话的方法
public void call(String name) {
System.out.println("给"+name+"打电话");
}
//发短信的方法
public void sendMessage() {
System.out.println("群发短信");
}
//玩游戏的方法
public void playGame() {
System.out.println("玩游戏");
}
}
class PhoneDemo {
public static void main(String[] args) {
//创建手机对象
//类名 对象名 = new 类名();
Phone p = new Phone();
//给成员变量赋值
p.brand = "小米";
p.price = 1999;
p.color = "红色";
//再次输出
System.out.println(p.brand+"---"+p.price+"---"+p.color);
//调用方法
p.call("aaa");
p.sendMessage();
p.playGame();
//类名 对象名 = new 类名();
Phone p2 = new Phone();
//给成员变量赋值
p2.brand = "华为";
p2.price = 1699;
p2.color = "黑色";
//再次输出
System.out.println(p2.brand+"---"+p2.price+"---"+p2.color);
//调用方法
p2.call("bbb");
p2.sendMessage();
p2.playGame();
}
}
内存图: (图中有一个错误:其实方法区是在堆里面的)