一.构造函数特点
1.函数名与类名相同
2.不用定义返回值类型
3.没有具体的返回值
/*
构造函数: 构建创造对象时调用的函数 作用: 可以给对象进行初始化。
创建函数都必须要通过构造函数初始化
一个类中如果没有定义过构造函数,那么该类中会有一个默认的空参数的构造函数。
如果类中定义了指定的构造函数,那么类中默认的构造函数就没有了
*/
class PerSon
{
private String name;
private int age;
//定义一个person类的构造函数
PerSon()//构造函数而且是空参数的
{
}
public void speak()
{
System.out.println(name + age);
}
}
class demo
{
public static void main(String[] args)
{
PerSon = new PerSon(); //new 的时候会自动调用 person 构造函数 ,并运行
}
}
class PerSon
{
private String name;
private int age;
//定义一个person类的构造函数
PerSon()//构造函数
{
name = “baby”
}
person(String n) //一出生就有 名字
{
name = n
}
public void speak()
{
System.out.println(name + age);
}
}
class demo
{
public static void main(String[] args)
{
PerSon p = new PerSon(); //new 的时候会自动调用 person 构造函数 ,并运行
person p1 = new person("xiaoming");
}
}
2.一般函数和构造函数的区别:
1.构造函数:对象创建时,就回调用与之对用的构造函数,对对象进行初始化。
2.一般函数:对象创建后,需要函数功能时才调用。
3.构造函数,对象创建时,会只调用一次
4.一般函数:对象创建后,可以被调用多次。
3. This 关键字
class PerSon
{
private String name;
private int age;
//定义一个person类的构造函数
//erSon()//构造函数
//{
// name = “baby”
//}
person(String name) //一出生就有 名字
{
this.name = name //防止初始化时出错
}
/*
当成员变量和局部变量重名时,可以用 this 关键字区分
this: 代表对象,代表当前对象
this就是所在函数所属对象的引用
简单说那个对象调用了 this 所在的函数,this 就代表哪个对象。
*/
public void speak()
{
System.out.println(name + age);
}
}
class demo
{
public static void main(String[] args)
{
//erSon p = new PerSon(); //new 的时候会自动调用 person 构造函数 ,并运行
person p1 = new person("xiaoming");
}
}
构造函数调用构造函数:(但是 this 只能定义在构造函数的第一行)
class PerSon
{
private String name;
private int age;
//定义一个person类的构造函数
perSon()//构造函数
{
name = “baby”
}
person(String name) //一出生就有 名字
{
this(name);
this.name = name; //防止初始化时出错
}
/*
判断是否是同龄人
*/
public boolean compare(person p)
{
if (this.age == p.age)
return ture;
else
return false;
}