仅仅用来记录学习----写在前面
( static )设计一个类MyClass ,为 MyClass增加一个count 属性,用来统计总共创建了多少个对象.
package com.lx.exercise;
public class TestMain {
public static void main(String[] args) {
// 放在前面-------> 类中没有一个显示构造方法,
// 那么就会默认提供一个隐式无参构造,
// 一旦显示写出任何一个构造方法,隐式的不再提供
MyClass mc1 = new MyClass();
MyClass mc2 = new MyClass();
MyClass mc3 = new MyClass();
// System.out.println(mc1);
//1. 在堆中开启空间,分配地址值 (这里的mc1、mc2、mc3均是地址值)
// static静态修饰的属性和方法不会随着创建对象进堆中,就存在与静态域中
// 也就是说count = 0随着类加载进入了静态域中
//2. 属性和方法被初始化默认值 (这里count = 0)
//3. 然后执行构造方法(即public MyClass(){})内部的代码
//4. 对象创建成功,将地址值赋值给变量(对象名 mc1、mc2、mc3)
}
}
class MyClass{
// 静态的就类加载的时候执行一次,后面再用也不执行了
static int count = 0; //在静态域中
// 这里是显示构造方法(但是是无参构造)
public MyClass() {
// 之后每创建一次对象就count + 1;
// 因为对象每次都调用了一次无参构造
count++;
System.out.println("创建了" + count + "个对象");
}
}