JAVA 学习模块八:构造函数

这里写图片描述

一.构造函数特点

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;

    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章