引用类对象

引用类对象

定义一个Hero类对象(有参构造中引用Wepon对象)

Wepon类中代码:

public class Wepon {
private String code;

public Wepon() {
}

public Wepon(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 Wepon wepon;

public Hero() {
}

public Hero(String name, int age, Wepon wepon) {
    this.name = name;
    this.age = age;
    this.wepon = wepon;
}

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 Wepon getWepon() {
    return wepon;
}

public void setWepon(Wepon wepon) {
    this.wepon = wepon;
}
public void attack()
{
    System.out.println("年龄为"+age+"的"+name+"用"+wepon.getCode()+"攻击对方!");
}
}

主类代码:

public class Demo01Main {
public static void main(String[] args) {
    Hero hero=new Hero();
    Wepon wepon=new Wepon();
    hero.setName("飞天小女警");
    hero.setAge(9);
    wepon.setCode("旋风腿");
    hero.setWepon(wepon);
    hero.attack();
}
}

显示效果:
年龄为9的飞天小女警用旋风腿攻击对方!

增强版本(使用多种方法调用类方法或接口方法以Hero举例):

定义一个接口:

代码:

public interface Skill {
void method();

}

接口实现类:

public class SkillImpl implements Skill {
@Override
public void method() {
    System.out.println("Pia-pia-pia~impl");
}
}

Hero类代码:

public class Hero {
private String name;
private Skill skill;

public Hero() {
}

public Hero(String name, Skill skill) {
    this.name = name;
    this.skill = skill;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public Skill getSkill() {
    return skill;
}

public void setSkill(Skill skill) {
    this.skill = skill;
}
public void attack()
{
    System.out.println("我叫"+name+"我释放了");
    skill.method();
    System.out.println("打死了岗村宁次!");
}
}

主类实现的三种方法:

public class Demop01Main {
public static void main(String[] args) {
    Hero hero=new Hero();
    hero.setName("李云龙");
  /* 1.使用实现类 SkillImpl tt=new SkillImpl();

    hero.setSkill(tt);
    hero.attack();*/
   /*  2.匿名内部类: Skill skill=new Skill() {
      @Override
      public void method() {
      System.out.println("pa~pa~pa:匿名内部类");
      }
  };
  hero.setSkill(skill);
  hero.attack();*/
 //直接使用匿名内部类插入对象即可!
hero.setSkill(new Skill() {
   @Override
   public void method() {
       System.out.println("Biu~biu~biu:直接调用无对象的匿名内部类。");
   }
   });
   hero.attack();
}

}

显示效果:

我叫李云龙我释放了
Biubiubiu:直接调用无对象的匿名内部类。
打死了岗村宁次!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值