构造函数到底是干什么的?


        “构造函数到底是干什么的?”,构造函数是初始化已创建好的对象中成员变量的,而不是创建对象的,不是,绝对不是发火,构造函数只是进一步为已创建的对象属性赋值对,使之更新“想象”中的对象,对象在非静态代码块执行之前,在构造方法调用之前已经存在了,看下面代码:

public class Student{
	
	int age;
	String name="张三";
	
	//思考:在执行非静态代码块时对象已经创建好了,只是这时对象中的全局变量为默认值(比如age属性)或初始值(比如name属性);如果在执行该代码块前对象没有创建对象,this指向的为null,则this.age和this.name势必会出现空指针异常,但是从运行结果可以看到没有出错。
	{
		System.out.println("非静态代码块:"+this.age+"—"+this.name);//输出:非静态代码块:0—张三
	}
	
	//思考:调用构造函数时对象已经创建好了,这时对象中的全局变量为依然为默认值(比如age属性)或初始值(比如name属性),构造函数调用后已创建好的对象中的成员变量的值重新进行了设定;如果调用构造函数时该对象不存在,否则this.age和this.name势必会出现空指针异常,但是从运行结果可以看到没有出错
	public Student(int age, String name){
		System.out.println("构造方法:"+this.age+"—"+this.name);//输出:构造方法:0—张三
		this.age=age;
		this.name = name;
		System.out.println("构造方法:"+this.age+"—"+this.name);//输出:构造方法:12—李四
	}
	
	public static void main(String[] args) {
		new Student(12, "李四");
	}
}

智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告