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、