类作为成员变量类型——初始化该成员变量,赋给他该类的一个对象
这是一个抽象类
public abstract class Weapon {
private String name;
private int power;
public Weapon() {
}
public Weapon(String name, int power) {
this.name = name;
this.power = power;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPower() {
return power;
}
public void setPower(int power) {
this.power = power;
}
public abstract void attack();
}
这是一个Hero类,里面有类 类型的成员变量
public class Hero {
String name;
Weapon weapon;
public Hero() {
}
public Hero(String name) {
this.name = name;
}
public Hero(String name, Weapon weapon) {
this.name = name;
this.weapon = weapon;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Weapon getWeapon() {
return weapon;
}
public void setWeapon(Weapon weapon) {
this.weapon = weapon;
}
public void show(){
System.out.println(name+"装备上攻击力为"+weapon.getPower()+"的"+weapon.getName());
weapon.attack();
}
}
类 类型的成员变量,创建对象如何使用呢
因为你的成员变量是个类 类型,因此需要初始化赋值——new个对象
然后用对象名.setXXX方法设置初始化对象进去(也可以用构造方法赋值)
public class Test {
public static void main(String[] args) {
Hero hero = new Hero();
hero.setName("张飞");
//这是一个抽象类,如果没定义实现类,可以用匿名内部类来实现
Weapon weapon = new Weapon("屠龙刀",2000) {
@Override
public void attack() {
System.out.println("武器装备上了,准备攻击");
}
};
//使用类类型的成员变量时候,需要对成员变量进行初始化赋值
hero.setWeapon(weapon);
hero.show();
System.out.println("==============================");
Hero hero1=new Hero("刘备",weapon);
}
}