【java day5】构造代码块、构造函数

1、this

/*
this: 那个对象在调用this所在函数,this就代表哪个对象;
this的应用: 当定义类中功能时,该函数内部要用到调用函数的对象时,这是用this来表示这个对象。
	但凡本类功能内部使用到了本类对象,就用this
*/

class Person
{
	private String name;
	private int age;

	Person()
	{ 
		System.out.println("A:name="+this.name+",,age="+this.age);
	}

	Person(String name)
	{
		this.name = name;
		System.out.println("B:name="+this.name+",,age="+this.age);
		//cry();
	}

	Person(String name,int age)
	{
		this.name = name;//调用赋值
		this.age =age;
		System.out.println("C:name="+this.name+",,age="+this.age);
		//cry();
	}

	public void cry()
	{
		System.out.println("cry....");
	}
}

class PersonDemo2 
{
	public static void main(String[] args) 
	{
		Person p = new Person();
		
		Person p1 = new Person("WangWu");
		p1.cry();

		Person p2 = new Person("LingMing",10);
		boolean b = p1.compare(p2);
	}


}

/*
对象初始化:Person p = new Person(“zhangsan”,20);

该句做了什么事?
1、因为new用到了Person.class文件,所以会先找到Person.class文件并加载到内存中。
2、执行该类中的static代码块,如果有的话,给Person.class类进行初始化。
3、在堆内存中开辟空间,分配内存地址。
4、在堆内存中建立对象得特有属性,并进行默认初始化;
5、对属性进行显示初始化;
6、对对象进行构造代码块初始化。
7、对对象进行对应的构造函数初始化。
8、将内存地址付给栈内存中p变量。

*/


2、

(1)构造代码块:

(2)构造函数:

(3)匿名对象:


3、

猜你喜欢

转载自blog.csdn.net/sisteryaya/article/details/78725728