Java面向对象_对象一一对应关系和this关键字

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

 1 public class Practice14 {
 2 
 3     /**
 4      * @param args
 5      */
 6     public static void main(String[] args) {
 7         // TODO Auto-generated method stub
 8         Hero hero=new Hero("吕布",25);
 9         Weapon weapon=new Weapon("方天画戟",1);
10         //关联关系
11         hero.setWeapon(weapon);
12         weapon.setHero(hero);
13         //调用get方法获取
14         System.out.println("我的名字:"+hero.getName()+" "+"使用的武器:"+hero.getWeapon().getName());
15         
16     }
17 
18 }
19 //武器类
20 class Weapon{
21     private String name;
22     private int star;
23     private Hero hero;//表示一对一关系
24     public Weapon(){}
25     public Weapon(String name,int star){
26         this.name=name;
27         this.star=star;
28     }
29     public Hero getHero() {
30         return hero;
31     }
32     public void setHero(Hero hero) {
33         this.hero = hero;
34     }
35     public String getName() {
36         return name;
37     }
38     public void setName(String name) {
39         this.name = name;
40     }
41     public int getStar() {
42         return star;
43     }
44     public void setStar(int star) {
45         this.star = star;
46     }
47 }
48 //英雄类
49 class  Hero{
50     private String name;
51     private int age;
52     private Weapon weapon;
53     public Hero(){}
54     public Hero(String name,int age){
55         this.name=name;
56         this.age=age;
57     }
58     
59     public Weapon getWeapon() {
60         return weapon;
61     }
62     public void setWeapon(Weapon weapon) {
63         this.weapon = weapon;
64     }
65     public String getName() {
66         return name;
67     }
68     public void setName(String name) {
69         this.name = name;
70     }
71     public int getAge() {
72         return age;
73     }
74     public void setAge(int age) {
75         this.age = age;
76     }
77     
78 }

二、this关键字

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

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

 1 class  Hero{
 2     private String name;
 3     private int age;
 4     private Weapon weapon;
 5     public Hero(){
 6         this("曹操",21);//在构造方法中调用其它构造方法时使用this(参数),该语句必须放在第一句,必须保证构造方法调用后有出口
 7         System.out.println("无参构造方法");
 8         
 9     }
10     public Hero(String name,int age){
11         
12         this.name=name;
13         this.age=age;
14         System.out.println("有参构造方法");
15     }
16     
17     public Weapon getWeapon() {
18         return weapon;
19     }
20     public void setWeapon(Weapon weapon) {
21         this.weapon = weapon;
22     }
23     public String getName() {
24         return name;
25     }
26     public void setName(String name) {
27         this.name = name;
28     }
29     public int getAge() {
30         return age;
31     }
32     public void setAge(int age) {
33         this.age = age;
34     }
35     public void print(){
36         this.setName("name");//调用本类的成员方法,此时this可以省略
37     }
38 }
原文地址:https://www.cnblogs.com/shenhainixin/p/5062953.html