标签:style blog class code c java
类是面向对象的重要内容。类可以当做一种自定义的数据类型。
类的定义格式如下:
修饰符 Class 类名
{
[静态代码块]
[初始代码块]
[构造器]
[Field]
[Method]
}
1、类的修饰符包括:public、final、abstract、默认。
2、Field是用来存储类、实例的数据,Method则是完成某一功能。静态代码块、初始代码块、构造器是用来对类的、实例的Field进行初始化
3、静态代码块是类在初始化的阶段执行的,而不是在创建对象的时候才执行。
4、初始化代码块、构造器都是在实例对象的时候执行的。
5、Field、Method分为:类Field、实例Field、类Method、实例Method。如被static修饰则为类的,类名.***调用,没有被static修饰,
就是实例的,对象.***调用
class Grandpa { static{ System.out.println("Grandpa:静态代码块 "); } { System.out.println("Grandpa:构造代码块"); } public Grandpa(){ System.out.println("Grandpa:构造方法"); } } class Father extends Grandpa{ static{ System.out.println("Father:静态代码块 "); } { System.out.println("Father:构造代码块"); } public Father(){ System.out.println("Father:构造方法"); } } class Son extends Father{ static{ System.out.println("Son:静态代码块 "); } { System.out.println("Son:构造代码块"); } public Son(){ System.out.println("Son:构造方法"); } } public class Test{ public static void main(String[] args) { new Son(); new Son(); }
运行结果:
1
2
3
4
5
6
7
8
9 |
Grandpa:静态代码块 Father:静态代码块 Son:静态代码块 Grandpa:构造代码块 Grandpa:构造方法 Father:构造代码块 Father:构造方法 Son:构造代码块 Son:构造方法 |
1
2
3
4
5
6 |
Grandpa:构造代码块 Grandpa:构造方法 Father:构造代码块 Father:构造方法 Son:构造代码块 Son:构造方法 |
由运行结果可以看出:
1、静态代码块只会在类加载的时候运行一次,之后都不会再运行了。
2、实例化的时候,先执行追溯执行父类的构造代码块、构造方法(不带参数)
标签:style blog class code c java
原文地址:http://www.cnblogs.com/lengmianluocha/p/3733242.html