标题:初始化块只在创建java对象是隐式执行,而且在执行构造器之前执行 谁给解释一 ...
只看楼主
小xiong
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:388
专家分:1722
注 册:2013-2-8
 问题点数:0 回复次数:2 
初始化块只在创建java对象是隐式执行,而且在执行构造器之前执行 谁给解释一下
//初始化块输出怎么在构造器之后啦

class Transport
{
    public  Transport(String speed)
    {
        System.out.println("交通工具时速: "+speed+"km/h");
    }
    public  Transport(String speed,double price)
    {
        this(speed);
        System.out.println("交通工具价格: "+price+"元");
    }

    public void loadNumber()
    {
        System.out.println("交通工具能载客啊");
    }
    public Transport()
    {

    }

}
class Bus extends Transport
{   
   
    {
        System.out.println("执行普通初始化块");//普通初始化块    java创建对象时会隐式执行初始化块,并且在构造器之前执行   这个之前是同类里面,在构造器前面执行
        
    }
    public  Bus(String speed)
    {
        System.out.println("汽车时速: "+speed+"km/h");
    }
    public  Bus(String speed,double price)//带参构造器
    {
        
        this(speed);
        System.out.println("汽车价格: "+price+"km/h");
    }

    public  Bus()
    {
        
    }
}

public class TransportTest
{
    public static void main(String[] args)
    {
        Bus bs=new Bus("100",99);//定义类变量,初始化
        bs.loadNumber();//子类调用父类实例方法
        
    }
}

/**输出

交通工具时速: 100km/h
交通工具价格: 80.0元
执行普通初始化块   
交通工具能载客啊
*/
搜索更多相关主题的帖子: public double speed price java 
2016-04-29 17:47
小xiong
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:388
专家分:1722
注 册:2013-2-8
得分:0 
/***

第五章 本章练习 5定义交通工具,汽车,火车,飞机等类 注意继承关系 每个类提供3个构造器 并提取构造器通用代码,构建初始化块
*/
class Transport
{
    public  Transport(String speed)
    {
        System.out.println("交通工具时速: "+speed+"km/h");
    }
    public  Transport(String speed,double price)
    {
        this(speed);
        System.out.println("交通工具价格: "+price+"元");
    }

    public void loadNumber()
    {
        System.out.println("交通工具能载客啊");
    }
    public Transport()
    {

    }

}
class Bus extends Transport
{   
   
    {
        System.out.println("执行普通初始化块");//普通初始化块    java创建对象时会隐式执行初始化块,并且在构造器之前执行   这个之前是同类里面,在构造器前面执行
        
    }
    public  Bus(String speed)
    {
        System.out.println("汽车时速: "+speed+"km/h");
    }
    public  Bus(String speed,double price)//带参构造器
    {
        
        super(speed);//两者区别在这
        System.out.println("汽车价格: "+price+"km/h");
    }

    public  Bus()
    {
        
    }
}

public class TransportTest
{
    public static void main(String[] args)
    {
        Bus bs=new Bus("100",99);//定义类变量,初始化
        bs.loadNumber();//子类调用父类实例方法
        
    }
}

/**输出

交通工具时速: 100km/h
交通工具价格: 80.0元
执行普通初始化块   
交通工具能载客啊
*/
2016-04-29 17:57
小xiong
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:388
专家分:1722
注 册:2013-2-8
得分:0 
明白了  执行顺序是://父类初始化块-->父类构造器-->子类初始化块-->子类构造器
2016-04-29 18:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-464260-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.551826 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved