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方法>构造代码块==成员变量(按照出现先后顺序执行)>构造方法

  • 相关阅读:
    VS2013中using System.Windows.Forms;引用不成功
    <C#任务导引教程>练习五
    <C#任务导引教程>练习四
    <C#任务导引教程>练习三
    <C#任务导引教程>练习二
    printf("%d ",printf("%d",printf("%d",i)));
    <C#任务导引教程>练习一
    C代码
    SQLServer创建约束
    SQL语句修改字段类型与第一次SQLServer试验解答
  • 原文地址:https://www.cnblogs.com/guweiwei/p/6603583.html
Copyright © 2011-2022 走看看