java学习(七)——构造器、初始化块

构造方法(也称为构造器)

1.作用:在构造类的对象时,将实例域初始化为所希望的初始化值。

2.特点:

    1.构造方法总是伴随着new操作符的执行而被调用

    2.构造器与类名相同

    3.每个类可以有一个以上的构造器,即构造方法也可以重载

    4.构造器没有返回值

    5.可以有0个、1个、多个参数

    6.如果在编写一个类时没有编写构造器,那么系统就会提供一个无参构造器,这个构造器将所有的实例域都设置为默认值。

        int,short,long,byte类型设置为0;

        char类型设置为'\0'

        float double类型设置为0.0;

        boolean 类型设置为false;

        对象变量设置为null。

    7.如果在编写一个类时提供了至少一个构造器,系统提供的默认无参构造器就会失效。

        如果想提供一个所有域都被赋予默认值的构造方法,可以使用以下方式

            public 类名(){

            }

    8.构造器还可以调用同类的另一个构造器

        在构造方法中添加形如this(...);的语句    ,

    注:对this的调用必须是构造器中的第一个语句

3.格式:  

 public 类名(参数列表){

            方法体

 }

初始化块

在一个类的声明中,可以包含多个代码块。只要构造该类对象,这些块就会被执行。

 特点:这些代码块先于构造器执行,且按类声明中出现的次序依次执行


class Commodity
{
	//为了更方便的看到效果,使用了public(不推荐)
	public String name;
	public double price;
	public int id;

	public Commodity(int id)
	{
		//System.out.println("执行一个参数的构造方法");
		this.id=id;
	}
	public Commodity(int id,String name)
	{
		this(id);
		//System.out.println("执行两个参数的构造方法");
		this.name=name;
	}
	public Commodity(String name,double price,int id){
		this(id,name);        //调用同类的另一个构造器
		//System.out.println("执行三个参数的构造方法");
		this.price=price;
	}
	
    //初始化块
	{
		//System.out.println("执行第一个初始化块");
		price=0.0;
	}
	{
		//System.out.println("执行第二个初始化块");	
		id=100;
		name="苹果";
	}
	
}
class ConstructDemo
{
	public static void main(String[] args)
	{
		Commodity c1=new Commodity("西瓜",12.4,5);
		System.out.println(c1.id);
		System.out.println(c1.price);
		System.out.println(c1.name);

		Commodity c2=new Commodity(5);
		System.out.println(c1.id);
		System.out.println(c1.price);
		System.out.println(c1.name);
	}
}

运行结果 

 

返回目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值