JAVA 构造方法

通过一个类创建一个对象,这个过程叫做实例化 实例化是通过调用构造方法(又叫做构造器)实现的

步骤 1 : 什么是构造方法
方法名和类名一样(包括大小写)
没有返回类型
实例化一个对象的时候,必然调用构造方法
具体例子:

public class Hero {
 
    String name;
 
    float hp;
 
    float armor;
 
    int moveSpeed;
 
    // 方法名和类名一样(包括大小写)
    // 没有返回类型
    public Hero() {
        System.out.println("实例化一个对象的时候,必然调用构造方法");
    }
     
    public static void main(String[] args) {
        //实例化一个对象的时候,必然调用构造方法
        Hero h = new Hero();
    }
 
}

步骤 2 : 隐式的构造方法
Hero类的构造方法是

public Hero(){  
}

这个无参的构造方法,如果不写,就会默认提供一个

public class Hero {
     
    String name; //姓名
     
    float hp; //血量
     
    float armor; //护甲
     
    int moveSpeed; //移动速度
     
    //这个无参的构造方法,如果不写,
    //就会默认提供一个无参的构造方法
    //  public Hero(){ 
    //      System.out.println("调用Hero的构造方法");
    //  }
 
    public static void main(String[] args) {
        Hero garen =  new Hero();
        garen.name = "盖伦";
        garen.hp = 616.28f;
        garen.armor = 27.536f;
        garen.moveSpeed = 350;
         
        Hero teemo =  new Hero();
        teemo.name = "提莫";
        teemo.hp = 383f;
        teemo.armor = 14f;
        teemo.moveSpeed = 330;
    }  
     
}

步骤 3 : 如果提供了一个有参的构造方法
一旦提供了一个有参的构造方法
同时又没有显式的提供一个无参的构造方法
那么默认的无参的构造方法,就“木有了“

public class Hero {
      
    String name; //姓名
      
    float hp; //血量
      
    float armor; //护甲
      
    int moveSpeed; //移动速度
      
    //有参的构造方法
    //默认的无参的构造方法就失效了
    public Hero(String heroname){ 
        name = heroname;
    }
      
    public static void main(String[] args) {
        Hero garen =  new Hero("盖伦"); 
          
        Hero teemo =  new Hero(); //无参的构造方法“木有了”
    }  
      
}

步骤 4 : 构造方法的重载
和普通方法一样,构造方法也可以重载

public class Hero {
       
    String name; //姓名
       
    float hp; //血量
       
    float armor; //护甲
       
    int moveSpeed; //移动速度
       
    //带一个参数的构造方法
    public Hero(String heroname){ 
        name = heroname;
    }
     
    //带两个参数的构造方法
    public Hero(String heroname,float herohp){ 
        name = heroname;
        hp = herohp;
    }
       
    public static void main(String[] args) {
        Hero garen =  new Hero("盖伦"); 
        Hero teemo =  new Hero("提莫",383);
    }
     
}

练习题目:
为Hero设计4个参数的构造方法
这四个参数分别是
String heroName
float heroHP
float heroArmor
int heroMoveSpeed

代码如下:

//Hero.java
public class Hero {
	private String heroName;
	private float heroHP;
	private float heroArmor;
	private int heroMoveSpeed;
	
	public Hero(String heroName, float heroHP, float heroArmor, int heroMoveSpeed) {
		this.heroName = heroName;
		this.heroHP = heroHP;
		this.heroArmor = heroArmor;
		this.heroMoveSpeed = heroMoveSpeed;
	}
	
	
	@Override
	public String toString() {
		return "Hero [heroName=" + heroName + ", heroHP=" + heroHP + ", heroArmor=" + heroArmor + ", heroMoveSpeed="
				+ heroMoveSpeed + "]";
	}


	public static void main(String[] args) {
		Hero hero = new Hero("提莫",800,51,325);
		System.out.println(hero.toString());
	}

}

输出结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值