1.1 代码块
代码块的作用: 完成一些对象初始化工作
代码块的执行时机:对象被创建之前执行(即可以执行无数次)
1.2 静态代码块(static )
静态代码块的作用:该类程序执行之前的初始化工作
静态代码块的执行时机:类加载的时候(即只执行一次)
2.1 类之间的关系
类之间的关系包含,继承以及内部类
2.1.1 继承的关系
继承关系,子类通过extends关键词来继承父类,如下代码:
public class Person{
//成员的定义和声明
}
---------------------------------------
public class Student extends Person{
//成员的定义和声明
}
----------------------------------------
public class Text{
public static void main(String[] args){
//对子类对象的创建
Student stu = new Student();
}
}
Studnet 是 Person的子类,通过super关键词指向父类,进而对父类成员的引用
2.1.2 内部类的关系
内部类对对象的创建方式为: A.B b = new A().new B();(即创建A类的对象,再用对象对内部类B进行调用,进而创建内部类B的对象)
例如:
public class Person{
public class Student{
}
}
---------------------------------------
public class Text{
public static void main(String[] args){
//对Person类的内部类Studnet的对象的创建
Person.Student stu = new Person().new Student();
}
}
在此过程中,创建了Person类,和内部类Student的对象
2.1.3 静态内部类
静态内部类对对象的创建方式为: A.B b = new A.B();(由于内部类为静态,所以不需要创建A类的对象,直接用A类调用B类)
例如:
public class Person{
public static class Student{
}
}
---------------------------------------
public class Text{
public static void main(String[] args){
//对Person类的内部类Studnet的对象的创建
Person.Student stu = new Person.Student();
}
}
在此过程中,只创建了Studnet的对象
2.1.4 3.匿名内部类
特点是:适用于短时间的,一次性的方法,每次使用都需要创建一个匿名类来调用方法
例如:
// Lock 为一个接口
类.class 加载到内存的方法区