zoukankan      html  css  js  c++  java
  • 动手动脑

    以下代码为何无法通过编译?哪出错了?

    public class Test

    {

    public static void main(String[] args)

    {

    Foo obj1=new Foo();

    }

    }

    class Foo{

    int value;

    public Foo(int initValue)

    {

    value=initValue;

    }

    }

    如果类提供了一个自定义的构造方法,将导致系统不再提供默认构造方法。

    Foo obj1=new Foo()在此处调用的时候没有参数,应增加他的参数。

    静态初始化块执行顺序

    class Root

    {

           static{

                  System.out.println("Root的静态初始化块");

           }

           {

                  System.out.println("Root的普通初始化块");

           }

           public Root()

           {

                  System.out.println("Root的无参数的构造器");

           }

    }

    class Mid extends Root

    {

           static{

                  System.out.println("Mid的静态初始化块");

           }

           {

                  System.out.println("Mid的普通初始化块");

           }

           public Mid()

           {

                  System.out.println("Mid的无参数的构造器");

           }

           public Mid(String msg)

           {

                  //通过this调用同一类中重载的构造器

                  this();

                  System.out.println("Mid的带参数构造器,其参数值:" + msg);

           }

    }

    class Leaf extends Mid

    {

           static{

                  System.out.println("Leaf的静态初始化块");

           }

           {

                  System.out.println("Leaf的普通初始化块");

           }    

           public Leaf()

           {

                  //通过super调用父类中有一个字符串参数的构造器

                  super("Java初始化顺序演示");

                  System.out.println("执行Leaf的构造器");

           }

    }

     

    public class TestStaticInitializeBlock

    {

           public static void main(String[] args)

           {

                  new Leaf();

           }

    }

    执行顺序(先->后):静态初始化块->初始化块(构造代码块)->构造函数

    1. 静态初始化块:在第一次加载类时执行,与对象的创建无关。
    2. 构造代码块:在调用构造方法时执行。
    3. 构造函数:在调用构造函数时执行。
  • 相关阅读:
    HDU_1709 The Balence (生成函数)
    Ural_1003 Parity(并查集)
    HDU_1171 Big Event in HDU(生成函数)
    Ural_1306. Sequence Median(堆)
    POJ_2823 Sliding Window(单调队列)
    HDU_2065 "红色病毒"问题(指数型生成函数)
    HDU_2082 找单词 (生成函数)
    最长上升子序列问题(LCS)
    HDU_1284 钱币兑换问题(生成函数)
    HDU_2152 Fruit(生成函数)
  • 原文地址:https://www.cnblogs.com/fengjingfei/p/11716687.html
Copyright © 2011-2022 走看看