静态代码块
特点:随类的加载而执行,只执行一次用于给类进行初始化的。
Person p=new Person("zhangsan",20);
该句话都做啦什么事情呢
1因为new用到了person.class所以会先找到person.class文件并加载到内存中。
2执行该类中的static代码块,如果有的话,给person.class类进行初始化。
3在堆内存中开辟空间,分配内存地址。
4 在堆内存中建立对象的特有属性,并进行默认初始化,
5对属性进行现示初始化
6 对对象进行构造代码块初始化
7对对象进行构造函数初始化
8将内存地址赋给栈内存中的p变量。
单例设计模式:解决一个类在内存中只有一个对象
1为了避免其他程序过多的建立该类对象,先禁止其他程序建立该类对象。
2还为了让其他程序可以访问到该类对象,只好在本类中,自定义一个对象。
3为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式。
继承 extends
1提高代码的复用性。
2让类与类之间产生关系,有了这个关系才有啦多态的特性
Java语言中,Java只支持单继承,不支持多继承。
因为多继承容易带来安全隐患,当多个父类中定义了相同的功能。当功能内容不同时,子类对象不确定要运行那一个
但是Java保留啦这种机制,并用另一种体现形式来完成--多实现。
如何使用一个继承体系中的功能呢?
想要使用体系,先查阅体系父类的描述。因为父类中定义的是体系中共性的功能。同过了解共性功能,就可以知道体系的基本
功能。那么这个体系就基本可以使用啦。那么在具体调用时,要创建最子类的对象。
为什么呢? 1是因为有可能父类不能创建对象 2是创建子类对象可以使用更多的功能,包括基本的也包括特有的。
查阅父类,创建子类。