(Java) 构造器小结

(一)

构造器也是方法,叫构造方法,与方法不同的是,构造器是用来初始化对象的,而方法不能,但是,这样不意味着对象是由构造器创建的,在A a = new A();创建对象时,在调用构造方法之前,系统就为对象分配内存空间,并且执行初始化,所以对象在执行构造方法函数体之前就已经创建,只是这个对象不能被外界访问,所以需要构造器对其初始化。

(二)

构造器如果没有对其重载,系统会有默认构造器,但是一旦重载了,那么默认构造器就会失效,如果需要不带参数的构造器,则需要自己重新写

(三)

构造器的形式一般为:public  类名(){}

构造器主要是为了让其他方法调用,生成该类的实例,设置为public是为了让系统的其他位置的类都能调用该类的构造器,在某些特殊情况下,例如单例模式,其他的类不能实例化该类时,则需要设置为private ,可以让该类的子类调用构造器时,可以将其设置为protected

package test;

public  class Single {
public static void main(String[] args) {
	
	Dog dog = new Dog("xiaoli");
	System.out.println(dog.getName());
	Dog eat = new Eat(dog.getName());
	System.out.println(eat.getName());
	
}
}
class Dog{
	private String name;
	protected  Dog(String name){
		this.name=name;
		
	}
	public String getName(){
		return name;
	}
}

class Eat extends Dog{

	protected Eat(String name) {
		super(name);
		// TODO Auto-generated constructor stub
}
//	
//	
//	
}

(四)

构造器重载时,如果一个构造器包含在另一个构造器中,

public  Dog(String name)

public Dog(String name,String color)

那么可以使用this.调用被包含的构造器,且必须在执行体中语句的第一条位置。系统将依据this括号中的形参来找到对应的构造器

package test;

public  class Single {
public static void main(String[] args) {
	
	Dog dog1 = new Dog("小黄");
	Dog dog2 = new Dog("小黄","黄色");
}
}
class Dog{
	private String name;
	private String color;
	public  Dog(String name){
		this.name=name;
		
	}
	public Dog(String name,String color){
		this(name);
		this.color=color;
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值