动手动脑3

public class 动手动脑1 {
    public static void main(String [] args)
    {
        Foo obj =new Foo();
    }
}

class Foo{
    int value;
    public Foo(int initValue)
    {
        value = initValue;
    }
}

  该上述的代码错误,就是在Foo()这个类中的构造函数是有参数的构造函数。然后在主函数中调用的函数是无参的。所以会报错。

  修改方法就是在Foo obj =new Foo()在括号内加入一个int类型范围内的数字。

2.

public class InitializeBlockClass {
    {
        field=200;
    }
    public int field=100;
    public InitializeBlockClass(int value) {
        this.field=value;
    }
    public InitializeBlockClass() {
        
    }
    public static void main(String[] args) {
        InitializeBlockClass obj=new InitializeBlockClass();
        System.out.println(obj.field);
        
        obj=new InitializeBlockClass(300);
        System.out.println(obj.field);
    }
}

运行结果是100    300

从运行结果得出,初始化规律为:初始化块和字段的初始值谁排在前面先执行谁,最后执行构造函数。

 

3.

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();
        

    }
}

Mid继承Root,Leaf继承Mid。在首先运行各自的静态初始化。然后再依次运行各自的函数。

 

4.

public class 静态 { 
        public double i=6.3;
        public static void main(String []args) {
            静态 j=new 静态();
            System.out.println(j.i);
        }
        }

运行结果是6.3

 

posted @ 2018-10-21 12:15  birdmmxx  阅读(145)  评论(0编辑  收藏  举报