JVAVA构造函数
- 0x01 构造函数定义
- 0x02 特点
- 0x03 具体实现
0x01 构造函数定义
java构造函数,也叫构造方法,是JAVA中一种特殊的函数。与函数名相同,无返回值。
作用:一般用来初始化成员属性和成员方法的,即new对象产生后,就调用了对象的属性和方法。这些,我们就可以将这些天然的属性和行为定义在构造函数中,当new实例化对象时,也就具有这些属性和方法,不用再去重新定义,从而加快编程效率。
构造函数VS一般函数:
1)构造函数是对象一建立就运行,给对象初始化,就包括属性,执行方法中的语句。
2)而一般函数是对象调用才执行,用 “.方法名” 的方式,给对象添加功能。
0x02 特点
构造函数有以下几个特点:
- 和类名同名
- 可以被重载
- 没有返回值
- 如果有子类。子类所有的构造函数默认调用父类的无参构造函数。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);
}
}
结果展示:
这个结果也比较好理解
第一个我们先申请的Student,会先调用它的构造函数;
然后我们new了一个pupil的对象,而这一个类的构造函数里,我们是先掉用的父类的构造函数,在输出自己的被调用语句。