首页 > 代码库 > java面向对象1

java面向对象1

 类是面向对象的重要内容。类可以当做一种自定义的数据类型。

 类的定义格式如下:

  修饰符  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、实例化的时候,先执行追溯执行父类的构造代码块、构造方法(不带参数)