码迷,mamicode.com
首页 > 其他好文 > 详细

代码块(1)

时间:2016-08-05 19:50:17      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:

Block.java  ↓

package t;

public class Block extends BlockFather {
    /*
     * 静态块
     */
    static {
        System.out.println(" [静态块]");
    }

    /*
     * 构造块
     */
    {
        System.out.println(" [构造块]");
    }

    /*
     * 构造函数
     */
    public Block() {
        System.out.println(" [构造函数]");
    }

    /*
     * 静态变量
     */
    public static String staticField1;

    // 重写父类静态属性
    public static int fStaticField2;

    /*
     * 静态方法
     */
    public static void staticMethod() {
        System.out.println(" [静态方法]");
    }

    /*
     * 普通变量
     */
    public String feild;

    /*
     * 普通方法
     */
    public void method() {
        System.out.println(" [普通方法]");
    }

    /*
     * main方法
     */
    public static void main(String[] args) {
        System.out.println(" [main方法]");
    }
}

BlockFather.java  ↓

package t;

public class BlockFather {
    /*
     * 静态块
     */
    static {
        System.out.println("f[静态块]");
    }

    /*
     * 构造块
     */
    {
        System.out.println("f[构造块]");
    }

    /*
     * 构造函数
     */
    public BlockFather() {
        System.out.println("f[构造函数]");
    }

    /*
     * fStaticField
     */
    public static int fStaticField1;
    public static int fStaticField2;

}

TestBlock.java  ↓

package t;


public class TestBlock {

    public static void main(String[] args){

        // 1. new
//        new Block();
        
//        f[静态块]
//         [静态块]
//        f[构造块]
//        f[构造函数]
//         [构造块]
//         [构造函数]



        
        // 2. new new
//        new Block();
//        new Block();
        
//        f[静态块]
//         [静态块]
//        f[构造块]
//        f[构造函数]
//         [构造块]
//         [构造函数]
//        f[构造块]
//        f[构造函数]
//         [构造块]
//         [构造函数]
        
        
        

        // 3.1 使用(读取或修改)静态属性(子类) 
//        String s = Block.staticField1;
        
//        f[静态块]
//         [静态块]
        
        
        
        
        
        // 3.2 使用(读取或修改)静态属性(父类&未重写)
//        int i = Block.fStaticField1;
        
//        f[静态块]
        
        
        
        
        
        // 3.3 使用(读取或修改)静态属性(父类&重写)
//        int i = Block.fStaticField2;
        
//        f[静态块]
//         [静态块]
        
        
        
        
        // 4. 调用静态方法
//        Block.staticMethod();
        
//        f[静态块]
//         [静态块]
//         [静态方法]
        
        
        
        
        // 5. 反射使用静态属性(完全同3)
//        try {
//            Block.class.getField("staticField").get(null);
//        } catch (IllegalArgumentException e) {
//            // TODO Auto-generated catch block
//            e.printStackTrace();
//        } catch (IllegalAccessException e) {
//            // TODO Auto-generated catch block
//            e.printStackTrace();
//        } catch (NoSuchFieldException e) {
//            // TODO Auto-generated catch block
//            e.printStackTrace();
//        } catch (SecurityException e) {
//            // TODO Auto-generated catch block
//            e.printStackTrace();
//        }
        
        
        
        
        // 6. 反射使用静态方法(同4)
        
//        try {
//            Block.class.getMethod("staticMethod", null).invoke(null, null);
//        } catch (IllegalAccessException e) {
//            // TODO Auto-generated catch block
//            e.printStackTrace();
//        } catch (IllegalArgumentException e) {
//            // TODO Auto-generated catch block
//            e.printStackTrace();
//        } catch (InvocationTargetException e) {
//            // TODO Auto-generated catch block
//            e.printStackTrace();
//        } catch (NoSuchMethodException e) {
//            // TODO Auto-generated catch block
//            e.printStackTrace();
//        } catch (SecurityException e) {
//            // TODO Auto-generated catch block
//            e.printStackTrace();
//        }
        
        
        
        // 7. 直接运行一个main函数入口的类

//      f[静态块]
//      [静态块]
//      [main方法]


    }

}

 

ps:

构造块和构造方法只有new 时执行

 

代码块(1)

标签:

原文地址:http://www.cnblogs.com/zno2/p/4549621.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!