每日学习-Java基础(九)类和对象4(构造方法)

一、引入
1、系统提供无参构造方法

// 构造方法 构造器
// 类创建对象,又称实例化
// 实例化需要构造方法
// 无返回值,方法名与类名相同

// 未显示定义构造方法,系统自动提供一个无参的构造方法

// 类名 每个单词首字母大写
// 变量名、方法名 第一个单词首字母小写,第二个单词开始首字母大写
public class Hero {
	String name; // 英雄名称
	float hp; // 血量
	float armor; // 护甲
	int moveSpeed; // 移动速度

	public static void main(String[] args) {
		Hero h1 = new Hero(); // new Hero()创建对象时调用了系统提供的无参的构造方法
	}
}

2、自定义构造方法

// 定义了构造方法,实例化时调用自定义构造方法

// 类名每个单词首字母大写
// 变量名、方法名第一个单词首字母小写,第二个单词开始首字母大写
public class Hero {
	String name; // 英雄名称
	float hp; // 血量
	float armor; // 护甲
	int moveSpeed; // 移动速度

	public Hero() {
		System.out.println("调用一个自定义的无参的构造方法!");
	}

	public static void main(String[] args) {
		Hero h1 = new Hero(); // new Hero()创建对象时调用了自定义的无参的构造方法
	}
}

运行结果:
在这里插入图片描述
3、构造方法重载

// 自定义构造方法后,系统不再提供无参的构造方法

// 类名每个单词首字母大写
// 变量名、方法名第一个单词首字母小写,第二个单词开始首字母大写
public class Hero {
	String name; // 英雄名称
	float hp; // 血量
	float armor; // 护甲
	int moveSpeed; // 移动速度

	public Hero(String hName) {
		name = hName;
		System.out.println("调用一个自定义的有参的构造方法!");
	}

	public static void main(String[] args) {
		Hero h1 = new Hero("提莫"); // 调用了有参的构造方法
		System.out.println(h1.name);
		// Hero h1 = new Hero(); // 系统不提供无参构造方法,报错
	}
}

运行结果:
在这里插入图片描述
// 自定义构造方法后,系统不再提供默认的无参的构造方法,因此通常情况下,需自定义无参的构造方法。
// 构造方法重载
// 和普通方法一样构造方法也可以重载

public class Hero {

	String name; // 英雄名称
	float hp; // 血量
	float armor; // 护甲
	int moveSpeed; // 移动速度

	public Hero() {
		System.out.println("调用一个自定义的无参的构造方法!");
	}

	public Hero(String hName) {
		name = hName;
		System.out.println("调用一个自定义的有参的构造方法1!");
	}
	
	public Hero(String hName, float hHp) {
		name = hName;
		hp = hHp;
		System.out.println("调用一个自定义的有参的构造方法2!");
	}

	public static void main(String[] args) {
		Hero h1 = new Hero(); // 调用 无参的 构造方法
		Hero h2 = new Hero("提莫"); // 调用了 有参的 构造方法
		System.out.println(h2.name);
		Hero h3 = new Hero("盖伦", 100.0f); // 调用了 有参的 构造方法
		System.out.println(h3.name + " " + h3.hp);
	}
}

运行结果:
在这里插入图片描述
二、练习

// 构造方法重载,4个参数,姓名,血量,护甲,移动速度
public class Hero {

	String name; // 英雄名称
	float hp; // 血量
	float armor; // 护甲
	int moveSpeed; // 移动速度

	public Hero() {
		System.out.println("调用一个自定义的无参的构造方法!");
	}

	public Hero(String hName) {
		name = hName;
		System.out.println("调用一个自定义的有参的构造方法1!");
	}

	public Hero(String hName, float hHp) {
		name = hName;
		hp = hHp;
		System.out.println("调用一个自定义的有参的构造方法2!");
	}

	public Hero(String hName, float hHp, float hArmor, int hMS) {
		name = hName;
		hp = hHp;
		armor = hArmor;
		moveSpeed = hMS;
		System.out.println("调用一个自定义的有参的构造方法3!");
	}

	public static void main(String[] args) {
		Hero h1 = new Hero(); // 调用 无参的 构造方法

		Hero h2 = new Hero("提莫"); // 调用了 有参的 构造方法
		System.out.println(h2.name);

		Hero h3 = new Hero("盖伦", 100.0f); // 调用了 有参的 构造方法
		System.out.println(h3.name + " " + h3.hp);

		Hero h4 = new Hero("曹操", 90.0f, 10, 350); // 调用了 有参的 构造方法
		System.out.println(h4.name + " " + h4.hp + " " + h4.armor + " "
				+ h4.moveSpeed);
	}
}

运行结果:
每日学习-Java基础(九)类和对象4(构造方法)_第1张图片
我的学习源泉:https://how2j.cn/k/class-object/class-object-constructor/292.html?p=114999
Java自学网站:https://how2j.cn?p=114999

你可能感兴趣的:(Java,Java,类和对象)