一、什么是构造函数?
new关键字实际上是在调用一个方法,这个方法叫构造方法(构造器)
调用构造器的时候,如果你的类中没有写构造器,那么系统会默认给你分配一个构造器,只是我们看不到罢了。可以自己显式 的将构造器编写出来:
构造器的格式:
[修饰符] 构造器的名字(){
}
构造器和方法的区别:
1.没有方法的返回值类型
2.方法体内部不能有return语句
3.构造器的名字很特殊,必须跟类名一样
二、怎么编写构造函数代码
1.我们先定义属性
2.当形参名字和属性名字重名的时候,会出现就近原则,使用局部变量的参数
2.我们要想正确传入参数,就要在表示对象的属性前加上this.来修饰 ,因为this代表的就是你创建的那个对象,如下图所示。
3.构造函数有快捷方法右键点击Generate
4.然后点击Constructor
三、我们通过题目练习以下这个方法
题目要求
1、通过构造函数实现属性赋值
2、攻击方法,描述攻击状态。内容包括怪物名字,生命值,攻击 力
3、防御方法通过输入参数接收攻击力。需要判断,如果攻击力小 于防御力,伤害值=0;反之伤害值=攻击力-防御力 ,根据伤害值情况,显示不同的防御信息。内容包括怪物名字, 防御力,防御后的生命值
4、编写测试方法,通过构造函数实例化怪物类的对象,并调用 相关方法(测试数据信息自定)
参考分析思路:
参怪物类属 性包括:怪物名字、生命值、攻击力、防御力;
方法包括:攻击的方法,防御的方法
运行得到以下结果:
四、代码部分
1.我们接下来编写一个代码试着用一下这个方法,第一个类名Guaishou
package shenbao;
public class Guaishou {
String name;
int health;
int attack;
int defence;
public Guaishou(String name, int health, int attack, int defence) {
this.name = name;
this.health = health;
this.attack = attack;
this.defence = defence;
}
public void show(){
System.out.println("怪兽小龟展开攻击");
System.out.println("当前的生命值是:"+health);
System.out.println("攻击力是:"+attack);
System.out.println("=====================");
}
public void show1(int attack1){
if (defence>attack1){
System.out.println("防御成功");
System.out.println("当前生命值"+health);
}else{
System.out.println("防御失败!");
System.out.println("怪兽小龟以"+defence+"的防御力未能抵御进攻!");
System.out.println("当前生命值:"+(health-(attack1-defence)));
}
}
}
2.第二个类名叫Guaishoutest:
package shenbao;
public class Guaishoutest {
public static void main(String[] args) {
Guaishou gs=new Guaishou("怪兽小龟",200,50,10) ;
gs.show();
gs.show1(15);
}
}
3.运行结果
总结
构造器的作用:不是为了创建对象,因为在调用构造器之前,这个对象就已经创建好了,并且属性有默认的初始化的值。
调用构造器的目的是给属性进行赋值操作的。