构造方法:
构造方法就是方法名和类名一样(包括大小写)
没有返回类型
**注意:**实例化一个对象的时候,必然调用构造方法
public Hero() {
System.out.println("实例化一个对象的时候,必然调用构造方法");
}
public static void main(String[] args) {
//实例化一个对象的时候,必然调用构造方法
Hero h = new Hero();
}
以上代码运行之后 就算没写打印函数 依然会显示——"实例化一个对象的时候,必然调用构造方法"这个内容
也就是 在你实例化一个对象的时候 就已经引用那个方法 默认的 即便没有构造出这个无参的方法也会默认提供一个
一旦提供了一个有参的构造方法
同时又没有显式的提供一个无参的构造方法
那么默认的无参的构造方法,就没有了。
示例:
public Hero(String heroname){
name = heroname;
}
public static void main(String[] args) {
Hero garen = new Hero("盖伦");
Hero teemo = new Hero(); //无参的构造方法“木有了”
}
也就是无参的构造方法就不会默认提供了
Hero teemo = new Hero();这个就是又没有显示的提供一个无参构造方法。
和普通方法一样 构造方法也是可以重载的 只是名称为类的名称罢了。按照实例化对象引用情况进行引用相应方法。
关键字 this:
其作用:
1、this即代表当前对象
2、通过this关键字访问对象的属性
3、如果要在一个构造方法中,调用另一个构造方法,可以使用this()
举例使this用途更清晰:
public class Hero{
String name;
float hp;
float armor;
int moveSpeed;
public Hero(String name,float hp,float armor,int moveSpeed) {
hp=hp;
armor=armor;
moveSpeed=moveSpeed;
}
public static void main(String[] args) {
Hero jj=new Hero("gai",22.22F,0.22F,200);
System.out.println(jj.armor+" "+jj.hp+" "+jj.moveSpeed+jj.name);
}
}
以下:不用this. 仅仅这样码是不会打印其参数显示的
hp=hp;
armor=armor;
moveSpeed=moveSpeed;
对比 用到this. 的情况:
public class Hero{
String name;
float hp;
float armor;
int moveSpeed;
public Hero(String name){
this.name=name;
}
public Hero(String name,float hp,float armor,int moveSpeed) {
this(name);//调用
this.hp=hp;
this.armor=armor;
this.moveSpeed=moveSpeed;
}
public static void main(String[] args) {
Hero jj=new Hero("gai",22.22F,0.22F,200);
System.out.println(jj.armor+" "+jj.hp+" "+jj.moveSpeed+jj.name);
}
}
打印出了相应的结果。。。其中this() 是在一个构造方法中调用其他构造方法
在码构造方法的过程中 常会用到this这个关键字。