JVAVA构造函数

  • 0x01 构造函数定义
  • 0x02 特点
  • 0x03 具体实现


0x01 构造函数定义

java构造函数,也叫构造方法,是JAVA中一种特殊的函数。与函数名相同,无返回值。
作用:一般用来初始化成员属性和成员方法的,即new对象产生后,就调用了对象的属性和方法。这些,我们就可以将这些天然的属性和行为定义在构造函数中,当new实例化对象时,也就具有这些属性和方法,不用再去重新定义,从而加快编程效率。

构造函数VS一般函数:
1)构造函数是对象一建立就运行,给对象初始化,就包括属性,执行方法中的语句。
2)而一般函数是对象调用才执行,用 “.方法名” 的方式,给对象添加功能。

0x02 特点

构造函数有以下几个特点:

  1. 和类名同名
  2. 可以被重载
  3. 没有返回值
  4. 如果有子类。子类所有的构造函数默认调用父类的无参构造函数。PS:构造函数不会被继承,只是被子类调用而已。

0x03 具体实现

package mohe.com;

class Student
{
    int age;
    String Name;
    double Score;
    //假设有的学生不想让别人知道自己的体重,就设置为私有权限,外界没有办法访问
    private double weight = 100;

    Student(int age,String name)
    {
        age = age;
        Name = name;
        System.out.println("Student 的构造函数被调用!!!");
    }

    //公共方法
    void LookWeight()
    {
        System.out.println("SUT1 weight = "+weight);
    }

    //方法,也就是函数
    void Print()
    {
        System.out.println("age="+age+"\nName="+Name+"\nScore="+Score);
    }

    void TestFunc()
    {
        System.out.println("You call the func");
    }
}

class pupil extends Student //子类
{
    int age;
    String Name;
    double Score;

    //相比于父类新增加的
    double Money;
    int grade;
    pupil(int age,String name,double money)
    {
        super(age,name);//可以调用父类的构造函数
        Money = money;
        System.out.println("pupil的构造函数被调用!!!");
    }
}

public class helloidea {
    public static void main(String[] args)
    {
        //new 一个对象
        Student stu1 = new Student(20,"Mohe");
        pupil DiDi = new pupil(10,"litle mohe",200.0);
    }
}

结果展示:

java 构造函数 成员变量 顺序 java构造函数的描述_idea


这个结果也比较好理解

第一个我们先申请的Student,会先调用它的构造函数;

然后我们new了一个pupil的对象,而这一个类的构造函数里,我们是先掉用的父类的构造函数,在输出自己的被调用语句。