构造方法以及构造方法的重载:
1.构造方法的定义以及声明:
构造方法的名字必须和所在的类名一致,并且没有返回值,不能声明void,构造方法的访问权限任意,一般情况下使用public,构造方法中的参数可以根据需要自行定义,参数不同的构造方法构成重载。
2.构造方法的使用
java中构造方法有两个地方使用,一个是跟在关键字new后面,类名加一个小括号(),小括号内根据实际加上实参。另外一个是跟在关键字super或 this后加上一个小括号(),小括号内根据实际添加实参。
例1: Demo demo = new Demo();//这里是调用的是一个无参的构造方法,必须声明在方法中,最好声明在主方法中.
例2:public Demo(){this(2);//这里是调用参数int类型的本类的构造方法
}
例3: public Demo(){super(1);//调用参数为int类型的父类的构造方法。
}
注意:例2和例3中this或super调用构造方法只能出现在构造方法中,而且必
须出现在第一行,所以一个构造方法中第一行只能是this或super调用构造方法,两者不能同时调用构造法出现,而且注意this或super调构造方法时,要留构造方法出口,意思就是最后调用的构造方法中没有再调 用别的构造方法;
/*
* this关键字:
* 1.this.xxxx
* this,当前对象,正在调用的对象
* 2.this(...)
* 重载的构造方法之间调用,必须是首行代码
* 方法的重载:
* 概念:方法的重载是指在一个类中定义多个同名的方法,但要求每个方法
* 都有不同的参数列表(也就是说参数的个数和类型不同)
* 同名不同参,比如:
* println()
* println(int)
* println(double)
* println(String)
* ...
* 为什么重载?
* 主要是为了好记,方法实现的功能如果都差不都,方法名相同就很容易记住
*/
public class Test1 {
/*
* Student类{
* id,
* name,
* gender,
* age,
* toString()
* }
* s1={
* id:0,
* name:null,
* gender:null,
* age:0
* }
* s2={
* id:6,
* name:"张三",
* gender:null,
* age:0
* }
* s3={
* id:6,
* name:"张三",
* gender:"男",
* age:0
* }
* s4={
* id:6,
* name:"张三",
* gender:"男",
* age:23
* }
*
*/
public static void main(String[] args) {
Student s1 = new Student();
Student s2 = new Student(6,"张三");
Student s3 = new Student(6,"张三","男");
Student s4 = new Student(6,"张三","男",23);
System.out.println(s1.toString());
System.out.println(s2.toString());
System.out.println(s3.toString());
System.out.println(s4.toString());
}
}