了解构造函数就是要先了解方法重载,用到的构造方法大多情况下都要重载。方法重载就是:在同一个类中,两个或多个方法名相同,参数(类型、个数、顺序)不同。这样重载方法,方法名是相同的,不用再定义新的方法,用别的方法名。方法重载的特点就是(1)重载的方法要在同一个类中,在不同的类中两个方法名相同的方法不是方法重载。(2)两个或多个方法名相同才能实现重载,要不然是定义新的方法,不是方法重载。(3)重载方法的时候,参数()中,类型、个数、顺序其中要至少有一个不同。下面的代码是一个类中重载的方法:
每一个类都会有一个默认的构造方法,而且这个默认构造方法是不写出来的,是无参数的。默认构造方法格式为:public 类名(){}
构造函数的特点:1)不写返回值,但是有,返回的是对象的内存地址
2)方法名必须和类名一样
3)调用的时间为创建对象时候,创建完对象,无法再执行
构造函数的重载和方法的重载是一样的,方法名相同而且和类名相同。参数的()中重载的构造方法比默认的构造方法多了参数类型、个数等。多个构造函数的重载之间参数类型、个数、顺序不同。
构造函数的重载的格式:public 类名(类型 参数名,类型 参数名,.....){}
需要注意的是:如果重载了构造方法,默认的无参构造函数就不存在了,如果还想用,则显性的定义出来。
通过构造函数重载可以用来初始化一些基本属性还可以用构造函数重载来传值,是在编程中经常用到的方法。在我自己的程序中也体现了出来,有一定的便利性,用这种方法,可以节省代码量,提高编程效率。
//设置攻击方法
public void attack(GuaiShou j){
int b;
b=ran.nextInt(5);
if(b==1||b==2){
j.setXueLiang(j.getXueLiang()-gongjili*2);
System.out.println(name+"王子暴击"+j.getName()+"怪兽怪兽剩余"+j.getXueLiang()+"血");
}
else{
j.setXueLiang(j.getXueLiang()-gongjili);
System.out.println(name+"王子攻击"+j.getName()+"怪兽怪兽剩余"+j.getXueLiang()+"血");
}
}
//重载攻击方法
public void attack(GuaiShou j,int num){
j.setXueLiang(j.getXueLiang()-gongjili);
System.out.println(name+"王子用枪戳"+j.getName()+"怪兽怪兽剩余"+j.getXueLiang()+"血");
}
每一个类都会有一个默认的构造方法,而且这个默认构造方法是不写出来的,是无参数的。默认构造方法格式为:public 类名(){}
public class WangZi {
//默认的构造函数
public WangZi(){
System.out.println("使用了构造函数");
}
}
构造函数的特点:1)不写返回值,但是有,返回的是对象的内存地址
2)方法名必须和类名一样
3)调用的时间为创建对象时候,创建完对象,无法再执行
构造函数的重载和方法的重载是一样的,方法名相同而且和类名相同。参数的()中重载的构造方法比默认的构造方法多了参数类型、个数等。多个构造函数的重载之间参数类型、个数、顺序不同。
构造函数的重载的格式:public 类名(类型 参数名,类型 参数名,.....){}
需要注意的是:如果重载了构造方法,默认的无参构造函数就不存在了,如果还想用,则显性的定义出来。
//重载的构造函数定义属性
public WangZi(String n,int a,int b){
name=n;
xueliang=a;
gongjili=b;
}
通过构造函数重载可以用来初始化一些基本属性还可以用构造函数重载来传值,是在编程中经常用到的方法。在我自己的程序中也体现了出来,有一定的便利性,用这种方法,可以节省代码量,提高编程效率。