一、打个比方,一个人有一个身份证号,一个身份证号对应一个人。一个英雄对应一把武器,一把武器对应一个英雄。生活中很多对象都存在一一对应关系,那么一一对应关系在代码中是如何实现的呢?举个例子,英雄和武器一一对应,代码如下:

 public class Practice14 {

     /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Hero hero=new Hero("吕布",25);
Weapon weapon=new Weapon("方天画戟",1);
//关联关系
hero.setWeapon(weapon);
weapon.setHero(hero);
//调用get方法获取
System.out.println("我的名字:"+hero.getName()+" "+"使用的武器:"+hero.getWeapon().getName()); } }
//武器类
class Weapon{
private String name;
private int star;
private Hero hero;//表示一对一关系
public Weapon(){}
public Weapon(String name,int star){
this.name=name;
this.star=star;
}
public Hero getHero() {
return hero;
}
public void setHero(Hero hero) {
this.hero = hero;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getStar() {
return star;
}
public void setStar(int star) {
this.star = star;
}
}
//英雄类
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;
} public Weapon getWeapon() {
return weapon;
}
public void setWeapon(Weapon weapon) {
this.weapon = weapon;
}
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;
} }

二、this关键字

this关键字可以完成的操作:调用类中的属性;调用类中的方法或构造方法;表示当前对象

谁调用这个方法,this就代表谁。

 class  Hero{
private String name;
private int age;
private Weapon weapon;
public Hero(){
this("曹操",21);//在构造方法中调用其它构造方法时使用this(参数),该语句必须放在第一句,必须保证构造方法调用后有出口
System.out.println("无参构造方法"); }
public Hero(String name,int age){ this.name=name;
this.age=age;
System.out.println("有参构造方法");
} public Weapon getWeapon() {
return weapon;
}
public void setWeapon(Weapon weapon) {
this.weapon = weapon;
}
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 void print(){
this.setName("name");//调用本类的成员方法,此时this可以省略
}
}
05-27 01:47