构造函数可以被私有化,被私有化后的构造函数不能在初始化对象
/*
this:看上去,是用于区分局部变量和成员变量同名的情况
this的应用:当定义类中功能时,该函数内部要用到调用该函数的对象时,这时用this来表示这个对象
*/
class Person
{
private String name;
private int age;
Person(String name)
{
//name = name; //局部变量name和成员变量name名字相同,输出无结果
// this为什么可以解决这个问题?
// this到底代表的是什么?代表本类的对象,this代表它所在函数所属对象的引用:按个对象在调用this所在的函数,this就代表那个函数
this.name = name;
}
Person(int age)
{
this.age = age;
}
Person(String name, int age)
{
this.name =name; // this在构造函数间的调用,这句等同于 this(name),也等同于p(name),这种调用方式必须放在构造函数的第一行
this.age = age;
}
public void speak()
{
System.out.println("name="+this.name+"...age="+this.age);
}
/*需求:给人定义一个用于比较年龄是否相同的功能,也就是是否是同龄人*/
public boolean compare(Person p)
{
return this.age == p.age;
}
}
class PersonDemo
{
public static void main(String[] args)
{
Person p = new Person("list");
p.speak();
}
}
calss PersonDemo3
{
public static void main(String[] args)
{
Person p1 = new Person(20);
Person p2 = new Person(24);
boolean b = p1.compare(p2);
System.out.println(b);
}
}
}