资讯专栏INFORMATION COLUMN

【Java】第二章 面向对象

MyFaith / 2142人阅读

摘要:类和对象设计英雄这个类有一些共同的状态,比如名字,,护甲,移动速度等等,这样我们就可以设计一种东西,叫做类,代表英雄这样一种事物类英雄状态名字血量,护甲,移动速度这个类没有主方法,不要试图运行它。并不是所有的类都是有主方法的。

1 类和对象 (1) 设计英雄这个类

有一些共同的状态,比如名字,hp,护甲,移动速度等等,这样我们就可以设计一种东西,叫做,代表英雄这样一种事物

类:英雄(Hero)

状态:名字, 血量,护甲,移动速度

这个类没有主方法,不要试图运行它。 并不是所有的类都是有主方法的。

public class Hero {
    String name; //姓名
    float hp; //血量
    float armor; //护甲
    int moveSpeed; //移动速度
}
(2) 创建具体的英雄

类就像一个模板,根据这样一个模板,可以创建一个个的具体的英雄,一个个具体的英雄,就叫一个个的对象
new Hero()就是java中创建一个英雄对象的意思

public class Hero {
    String name; //姓名
    float hp; //血量
    float armor; //护甲
    int moveSpeed; //移动速度
    public static void main(String[] args) {
        Hero garen =  new Hero();
        garen.name = "盖伦";
        garen.hp = 616.28f;
        garen.armor = 27.536f;
        garen.moveSpeed = 350;
        
        Hero teemo =  new Hero();
        teemo.name = "提莫";
        teemo.hp = 383f;
        teemo.armor = 14f;
        teemo.moveSpeed = 330;
    }    
    
}
(3) 类的第一个字母大写 2 属性 (1) 属性的类型

属性的类型可以是基本类型,比如Int整数,float 浮点数,也可以是类类型,比如String字符串

(2) 属性名称

属性名称一般来说,都是小写
比如name

如果有多个单词组成,后面的单词的第一个字母大写
比如moveSpeed

属性也是变量,所以需要满足变量的命名规则

3 方法 (1) 什么是方法

(2) 方法返回类型
float getArmor(){
  return armor;
}
void keng(){
    System.out.println("坑队友!");
}

这个方法是用来获取一个英雄有多少护甲的,返回类型是float

有的方法是有返回类型的

有的方法不需要返回值,这个时候就把返回类型设置为void,表示该方法不返回任何值,比如方法 "坑队友"

(3) 方法的参数

英雄在一些特定情况下,可以增加移动速度,这样我们就通过addSpeed这个方法增加移动速度

int speed 叫做方法的参数

void addSpeed(int speed){
    //在原来的基础上增加移动速度
    moveSpeed = moveSpeed + speed;
}

给盖伦增加100的移动速度

public class Hero {
    String name; //姓名
    float hp; //血量
    float armor; //护甲
    int moveSpeed; //移动速度
    
    //坑队友
    void keng(){
        System.out.println("坑队友!");
    }

    //获取护甲值
    float getArmor(){
        return armor;
    }
    
    //增加移动速度
    void addSpeed(int speed){
        //在原来的基础上增加移动速度
        moveSpeed = moveSpeed + speed;
    }
    
    public static void main(String[] args) {
         Hero garen =  new Hero();
         garen.name = "盖伦";
         garen.moveSpeed = 350;
         garen.addSpeed(100);
         
    }
}
(4) 方法的命名

方法是一个类的动作行为,所以一般都是以动词开头的,比如keng

如果有多个单词,后面的每个单词的第一个字母使用大写,比如addSpeed

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/67709.html

相关文章

  • 体验js之美第八课-面向对象创建和继承终结篇

    摘要:概述到这里我们讲说面向对象的系列部分的最后一个课程,面向对象必须掌握两个东西一个是对象的创建一个是继承。只需要记住一句话,属性放在构造函数里面,方法放在原型上。 概述 到这里我们讲说js面向对象的系列部分的最后一个课程,面向对象必须掌握两个东西一个是对象的创建一个是继承。这节课我们重点说说这两个问题最后我们说下在ES6里面面向对象怎么玩。 1对象的创建 我们第一节课已经就会用了,单体模...

    jzzlee 评论0 收藏0
  • 浅谈JavaScript的面向对象和它的封装、继承、多态

    摘要:会造成内存浪费的问题构造函数继承声明父类声明子类生成实例组合式继承组合式继承是汲取了两者的优点,既避免了内存浪费,又使得每个实例化的子类互不影响。 写在前面 既然是浅谈,就不会从原理上深度分析,只是帮助我们更好地理解... 面向对象与面向过程 面向对象和面向过程是两种不同的编程思想,刚开始接触编程的时候,我们大都是从面向过程起步的,毕竟像我一样,大家接触的第一门计算机语言大概率都是C语...

    MAX_zuo 评论0 收藏0
  • 最最最常见的Java面试题总结——第二

    摘要:与都继承自类,在中也是使用字符数组保存字符串,,这两种对象都是可变的。采用字节码的好处语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。 String和StringBuffer、StringBuilder的区别是什么?String为什么是不可变的? String和StringBuffer、StringBuilder的区别 可变性...

    yearsj 评论0 收藏0
  • 重新认识JavaScript面向对象: 从ES5到ES6

    摘要:基于原型的面向对象在基于原型的语言中如并不存在这种区别它只有对象不论是构造函数,实例,原型本身都是对象。允许动态地向单个的对象或者整个对象集中添加或移除属性。为了解决以上两个问题,提供了构造函数创建对象的方式。 showImg(https://segmentfault.com/img/remote/1460000013229218); 一. 重新认识面向对象 1. JavaScript...

    VishKozus 评论0 收藏0

发表评论

0条评论

MyFaith

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<