对象的一对一关系
两个对象的一对一关系
比如一个英雄(Hero)对一个兵器(Weapon)
双向一对一
单向一对一
例如:英雄类
public class Hero {
private String name ;
private int age ;
//添加一个兵器类型的参数
private Weapon weapon ; //英雄和兵器的一对一关系,根据英雄得到兵器(单向)
//无参构造方法
public Hero() {
}
//含参构造方法
public Hero(String name , int age) {
this.name = name ;
this.age = age ;
}
//兵器类型的getter and setter
public Weapon getWeapon() {
return weapon ;
}
public void setWeapon(Weapon weapon) {
this.weapon = weapon ;
}
//getter and setter
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 class Weapon {
private String name ;
private int grade ;//等级
//无参构造方法
public Weapon() {
}
//含参构造方法
public Weapon(String name , int grade ) {
this.name = name ;
this.grade = grade ;
}
//getter and setter
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}
}
输出
public static void main(String[] args) {
Hero hero = new Hero("孟", 20);
Weapon weapon = new Weapon("枪",1);
//把两个对象关联起来
hero.setWeapon(weapon);
//通过英雄获取他的信息
Weapon w = hero.getWeapon();
String name = hero.getName();
int age = hero.getAge();
System.out.println("我的名字是"+name+",我"+age+"岁,我的武器是"+w.getName());
}
上边的案例就是对象单向一对一,将兵器的类型作为英雄类型的属性,可以通过hero来获取武器类的信息