实操名称:使用文字和图画描述,如下程序的执行过程
环境: jdk 1.8,画图软件
一:执行过程如下:
首先,main方法中,新创建了 Car c1 = new Car(),所以,应该在栈里新创建一个栈帧:c1,地址为:cn.sxt.oo.Car@15db9742,c1里有一些常量和方法放在堆里,分别为:tyreNum = 4;engine=null;color=红色;showColor();changeColor()。
其次,创建了 Car c2 = new Car(),所以,再在栈里新创建一个栈帧:c2,地址为:cn.sxt.oo.Car@6d06d69c,c2里有一些常量和方法放在堆里,分别为:tyreNum = 10;engine=null;color=黑色;showColor();changeColor()。
然后创建了Engine e = new Engine(),所以,再在栈里新创建一个栈帧:e,地址为:cn.sxt.oo.Engine@7852e922,e 里有一些常量和方法放在堆里,分别为:speed:1000,weight:10。
最后在方法区里总结了字符串常量为:红色,黑色,我的颜色是:
二:执行过程图片如下:
三:执行代码如下:
package cn.sxt.oo;
public class TestObject1 {
public static void main(String[] args) {
Car c1 = new Car();
c1.changeColor("红色");
c1.showColor();
System.out.println(Car.tyreNum);
System.out.println(c1.tyreNum);
Car c2 = new Car();
Engine e = new Engine();
e.speed = 1000;
e.weight = 10;
c2.engine = e;
c2.color = "黑色";
c2.tyreNum = 10;
System.out.println(c1.tyreNum);
}
}
class Car {
static int tyreNum = 4;
Engine engine;
String color; // char sequence :字符序列
void changeColor(String c) {
color = c;
}
void showColor() {
System.out.println("我的颜色是:" + color);
}
}
class Engine {
int speed;
int weight;
}
四:执行结果如下图所示: