一、代码注解
public class TestObject {//创建主类TestObject
public static void main(String[] args) {//main方法
Car c1 = new Car();//创建Car类的一个对象c1
c1.changeColor("红色");//调用Car类成员方法changeColor()员变量color赋值为红色
c1.showColor();//调用Car类成员方法showColor()打印我的颜色是红色
System.out.println(Car.tyreNum);//输出Car类中的静态成员变量tyreNum
System.out.println(c1.tyreNum);//输出Car类的对象c1的静态成员变量tyreNum
Car c2 = new Car();//创建Car类的一个对象c2
Engine e = new Engine();//创建Engine类的一个对象e
e.speed = 1000;//给e对象成员变量speed赋值为1000
e.weight = 10;//给e对象成员变量weight赋值为10
c2.engine = e;//将e的引用赋值给c2的成员变量engine
c2.color = "黑色";//给c2的成员变量color赋值为黑色
c2.tyreNum = 10;//给c2的静态成员变量tyreNum赋值为10
System.out.println(c1.tyreNum);//打印出对象c1的静态成员变量tyreNum的值(4)
}
}
class Car {
static int tyreNum = 4;//声明Car类的一个为int类型的静态变量tyreNum并初始化为4
Engine engine;//声明Car成员变量为engine类型
String color; // char sequence :字符序列,声明字符串color
void changeColor(String c) {//构造一个方法,返回值为void类型,传入数据类型为字符串
color = c;//将传入的字符串赋值给color
}
void showColor() {//构造一个方法用于输出color
System.out.println("我的颜色是:" + color);
}
}
class Engine {//定义一个Engine类
int speed;//声明一个int类型变量speed
int weight;//声明一个int类型变量weight
}
二、运行图解
首先加载类的信息:

开始执行main方法:

执行完Car c1 = new Car();语句后 :

执行完成c1.changeColor("红色");后:

c1.showColor();语句执行过程:

执行结束后:

System.out.println(Car.tyreNum);
System.out.println(c1.tyreNum);
这两句语句执行找到加载Car类中tryNum语句所在地址输出tyrNum
但是c1.tyrNum是通过找到0x01地址输出对象c1的变量tyrNum
执行完成后恢复之前图中
接下来执行 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);
后:





此时main方法中所有语句执行完成,

main方法执行完毕
本文通过一个Java程序实例展示了如何创建对象,并调用类的方法和属性。具体包括使用new关键字创建对象、调用成员方法改变对象状态及访问静态成员变量的过程。
334

被折叠的 条评论
为什么被折叠?



