类作为成员变量类型
首先,观察代码
private String name;
通过Ctrl点入String发现,String是一个类。
public final class String implements Serializable, Comparable<String>, CharSequence
String既不是基本类型也不是数组,由此引出可类也可以作为成员变量类型。
首先创建一个Weapon类
public class Weapon {
private String code; //武器的代号
public Weapon() {
} //无参构造器
public Weapon(String code) {
this.code = code;
} //有参构造器
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
}
再创建一个Hero类
public class Hero {
private String name; //英雄名字
private int age; //英雄的年龄
private Weapon weapon; //英雄的武器
public Hero() {
}
public Hero(String name, int age, Weapon weapon) {
this.name = name;
this.age = age;
this.weapon = weapon;
}
public void attack() {
System.out.println("年龄为" + age + "的" + name + "用" + weapon.getCode() + "攻击敌方。");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Weapon getWeapon() {
return weapon;
}
public void setWeapon(Weapon weapon) {
this.weapon = weapon;
}
}
最后DemoMain类
public class DemoMain {
public static void main(String[] args) {
//创建一个英雄角色
Hero hero = new Hero();
//为英雄起一个名字
hero.setName("盖伦");
hero.setAge(20);
//创建一个武器对象
Weapon weapon = new Weapon("多兰剑");
hero.setWeapon(weapon);
hero.attack();
//年龄为20的盖伦用多兰剑攻击敌方。
}
}