zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    201521123033《Java程序设计》第10周学习总结
    201521123033《Java程序设计》第9周学习总结
    201521123033《Java程序设计》第8周学习总结
    201521123033《Java程序设计》第7周学习总结
    201521123033《Java程序设计》第6周学习总结
    201521123033《Java程序设计》第5周学习总结
    一个Markdown的例子
    201521123033《Java程序设计》第4周学习总结
    201521123033《Java程序设计》第3周学习总结
    maven私服
  • 原文地址:https://www.cnblogs.com/shenhainixin/p/5062953.html
Copyright © 2011-2022 走看看