/**
两个对象之间的一对一关系
比如:一个英雄对应一个兵器
双向一对一
单向一对一
*/
public class Test10{
public static void main(String[] args){
Hero hero = new Hero("刘备",300);
Weapon weapon = new Weapon("双股剑",3);
//把两个对象关联起来
hero.setWeapon(weapon);
weapon.setHero(hero);
//通过英雄来获取他的信息
String name = hero.getName();
int age = hero.getAge();
Weapon w = hero.getWeapon();
System.out.println("我是"+name+",我"+age+"岁,我的武器是:"+w.getName()+w.getGrade()+"级。");
}
}
//英雄类
class Hero{
//默认构造方法
public Hero(){
}
public Hero(String name,int age){
this.name = name;
this.age = age;
}
//属性的封装
private String name;
private int age;
private Weapon weapon;//添加Weapon类型的属性
public void setWeapon(Weapon weapon){
this.weapon = weapon;
}
public Weapon getWeapon(){
return weapon;
}
//getter and setter
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return age;
}
}
//兵器类
class Weapon{
//默认构造方法
public Weapon(){
}
public Weapon(String name,int grade){
this.name = name;
this.grade = grade;
}
//属性的封装
private String name;
private int grade;
private Hero hero;//添加Hero类型的属性
public void setHero(Hero hero){
this.hero = hero;
}
public Hero getHero(){
return hero;
}
//getter and setter
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setGrade(int grade){
this.grade = grade;
}
public int getGrade(){
return grade;
}
}
就是把另一个类型作为我这个类型的属性