zoukankan      html  css  js  c++  java
  • 【Java面试题】16 静态代码块,main方法,构造代码块,构造方法

    public class HelloB extends HelloA{
        public HelloB()
        {
            System.out.println("HelloB");
        }
        
        {
            System.out.println("I am B class");
            }
        static{
            System.out.println("static B");
        }
        public static void main(String[] args){
            System.out.println("HelloB的主方法");
            new HelloA();
            new HelloA();
            new HelloB();
            new HelloB();
        }
    }
    class HelloA{
        public HelloA()
        {
            System.out.println("HelloA");
        }
        
        {
            System.out.println("I am A class");
            }
        static{
            System.out.println("static A");
        }
    }

    运行结果:

    static A
    static B
    HelloB的主方法
    I am A class
    HelloA
    I am A class
    HelloA
    I am A class
    HelloA
    I am B class
    HelloB
    I am A class
    HelloA
    I am B class
    HelloB

    相关例子:http://www.cnblogs.com/wangzhongqiu/p/6288452.html

    public class testdaimakuia {
        public static void main(String[] args) {
            B b = new B();
        }
    }
    
    class A {
        {
            System.out.println("A的构造块");
        }
    
        A() {
            System.out.print("A");
        }
    }
    
    class B {
        {
            System.out.println("B的构造块");
        }
    
        B() {
            System.out.print("B");
        }
    
        A a = new A();
    }

     执行结果:

    B的构造块
    A的构造块
    AB

     静态代码块>mian方法>构造代码块==成员变量(按照出现先后顺序执行)>构造方法
     
    public class testdaimakuia {
        public static void main(String[] args) {
            B b = new B();
        }
    }
    
    class A {
        static {
            System.out.println("A的静态代码块");
        }
        {
            System.out.println("A的构造块");
        }
    
        A() {
            System.out.print("A");
        }
    }
    
    class B {
        static {
            System.out.println("B的静态代码块");
        }
        {
            System.out.println("B的构造块");
        }
    
        B() {
            System.out.print("B");
        }
    
        static A a = new A();
     
    }

    执行结果:

    B的静态代码块
    A的静态代码块
    A的构造块
    AB的构造块
    B

     静态成员变量==静态代码块(按照出现先后顺序执行)>mian方法>构造代码块==成员变量(按照出现先后顺序执行)>构造方法

  • 相关阅读:
    项目中看似很难的问题可能很简单
    ASP.NET数据列表“全选”,批量处理的JS实现
    [转]给网站增加如:flv,torrent等特殊后缀格式文件下载
    GD Graphics Library
    在VS2008中编译64位程序以及遇到的问题
    关于C#闭包
    SNMP协议介绍及SNMP library
    ASP.NET MVC 使用总结(二)——扩展HtmlHelper实现动态生成title及meta
    LINQ查询代码整理(一)
    使用方便的SDK帮助文档
  • 原文地址:https://www.cnblogs.com/guweiwei/p/6603583.html
Copyright © 2011-2022 走看看