zoukankan      html  css  js  c++  java
  • 王者荣耀版Java教程第五期:Java类与对象(1)

    ​ 1. 继承

    在王者荣耀中,武器多种多样,如下图所示:

    public class Weapons {
        String name;
        int price;
    }
    ​

    然后,在我们设计一个具体的武器时,就继承武器类,继承用extends关键字,继承的好处就是,会自动得到父类的非私有属性和方法。比较省事和直观。

    比如,我们可以设计一个碎星锤,再添加一个攻击力的属性。

    public class SuiXingChui extends Weapons {
    ​
        int attackNum;
    ​
        public int getAttackNum() {
            return attackNum;
        }
    ​
        public void setAttackNum(int attackNum) {
            this.attackNum = attackNum;
        }
    }

    2. 方法重载

    我们知道,英雄有的技能是可以进行大规模杀伤的,比如鲁班三技能,只要飘过敌方英雄的头顶,满足条件就可以对范围内的所有英雄造成伤害。

    那么问题来了,对几名英雄造成伤害呢?

    可能是一个,也可能是两个。

    我们可以设计两个攻击的方法。

    public void attack(Hero hero){
            System.out.println(this.name + "" + hero.getName() + "进行了1次攻击!");
        }
    ​
    ​
        public void attack(Hero hero1,Hero hero2){
            System.out.println(this.name + "" + hero1.getName() + "" + hero2.getName() + "进行了1次攻击!");
        }

    像这种,参数类型或者个数不同的,就称为方法重载。

    但是这样写起来有点累赘,我们可以用变长参数来简化代码:

      public void attack(Hero... heros){
    ​
            for(Hero hero : heros){
                System.out.println(this.name + "" + hero.getName() + "进行了1次攻击!");
            }
    ​
    ​
        }

    3. 构造方法

     

    我们回忆一下,之前我们创建鲁班对象的时候,是不是先把英雄给new出来,然后再一个一个set属性的呢?

    很明显,这样有点麻烦,像一些必要的属性,最好是在new的时候就给他初始化完毕。

     我们可以用构造方法来完成这一任务。

       public Hero(String name){
            this.name = name;
        }

    方法名和类名一样(包括大小写)

    没有返回类型

    实例化一个对象的时候,必然调用构造方法,在你new的瞬间,就会自动调用这个方法。

    当你写了带参数的构造方法,就没有办法直接用无参的构造方法了,除非你再去手动地定义一下。

     public Hero(){
    ​
     }

    调用情况:

    Hero luban = new Hero("鲁班七号");
    ​
    Hero llw = new Hero();
    llw.setName("兰陵王");
    ​
    Hero blsy = new Hero();
    blsy.setName("百里守约");
    ​
    luban.attack(llw,blsy);
  • 相关阅读:
    使用cwRsync在Windows的目录之间增量同步文件
    Linux搭建lnmp环境
    ie下文件上传无权访问的问题
    10
    8
    9
    7
    网络爬虫环境配置之的模块安装
    pip的更新问题
    【转】进程与线程的一个简单解释
  • 原文地址:https://www.cnblogs.com/skyblue-li/p/13950884.html
Copyright © 2011-2022 走看看