Java中引用类型class的用法总结

 更新时间:2022年10月17日 14:55:27   作者:共饮一杯无  
这篇文章主要为大家详细介绍了Java中引用类型class的用法的相关资料,文中的示例代码讲解详细,对我们学习Java有一定帮助,感兴趣的可以了解一下

实际的开发中,引用类型的使用非常重要,也是非常普遍的。我们可以在理解基本类型的使用方式基础上,进一步去掌握引用类型的使用方式。基本类型可以作为成员变量、作为方法的参数、作为方法的返回值,那么当然引用类型也是可以的。

class作为成员变量

角色类

在定义一个类Role(游戏角色)时,代码如下:

class Role {
    int id; // 角色id
    int blood; // 生命值
    String name; // 角色名称
}

使用int 类型表示 角色id和生命值,使用String 类型表示姓名。此时, String 本身就是引用类型,由于使用的方式类似常量,所以往往忽略了它是引用类型的存在。如果我们继续丰富这个类的定义,给Role 增加武器,穿戴装备等属性,我们将如何编写呢?

武器类

提高进攻能力,定义攻击武器类,将增加攻击能力:

class Weapon {
    String name; // 武器名称
    int hurt; // 伤害值
}

铠甲类

提高防守能力定义穿戴盔甲类,将增加防御能力,也就是提升生命值:

class Armour {
    String name;// 装备名称
    int protect;// 防御值
}

角色增强类

给角色类增加进攻和防守属性,角色类调整成如下:

class Role {
    int id;
    int blood;
    String name;
    // 添加武器属性
    Weapon wp;
    // 添加盔甲属性
    Armour ar;
    // 提供get/set方法
    public Weapon getWp() {
        return wp;
    }
    public void setWeapon(Weapon wp) {
        this.wp = wp;
    }
    public Armour getArmour() {
        return ar;
    }
    public void setArmour(Armour ar) {
        this.ar = ar;
    }
    // 攻击方法
    public void attack(){
        System.out.println("使用"+ wp.getName() +", 造成"+wp.getHurt()+"点伤害");
    }
    // 穿戴盔甲
    public void wear(){
        // 增加防御,就是增加blood值
        this.blood += ar.getProtect();
        System.out.println("穿上"+ar.getName()+", 生命值增加"+ar.getProtect());
    }
}

测试类

public class Test {
    public static void main(String[] args) {
        // 创建Weapon 对象
        Weapon wp = new Weapon("倚天剑🗡️" , 999999);
        // 创建Armour 对象
        Armour ar = new Armour("明光铠甲🛡️",88888);
        // 创建Role 对象
        Role r = new Role();
        // 设置武器属性
        r.setWeapon(wp);
        // 设置盔甲属性
        r.setArmour(ar);
        // 攻击
        r.attack();
        // 穿戴盔甲
        r.wear();
    }
}

输出结果:

使用倚天剑🗡️,造成999999点伤害 穿上明光铠甲🛡️ ,生命值增加88888

类作为成员变量时,对它进行赋值的操作,实际上,是赋给它该类的一个对象。

到此这篇关于Java中引用类型class的用法总结的文章就介绍到这了,更多相关Java引用类型class内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • spring boot整合flyway实现数据的动态维护的示例代码

    spring boot整合flyway实现数据的动态维护的示例代码

    本文主要介绍了spring boot整合flyway实现数据的动态维护的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-04-04
  • 基于序列化存取实现java对象深度克隆的方法详解

    基于序列化存取实现java对象深度克隆的方法详解

    本篇文章是对序列化存取实现java对象深度克隆的方法进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • Java服务器端跨域问题解决方案

    Java服务器端跨域问题解决方案

    这篇文章主要介绍了java服务器端跨域问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • Java 可视化垃圾回收_动力节点Java学院整理

    Java 可视化垃圾回收_动力节点Java学院整理

    Ben Evans是一名资深培训师兼顾问,他在演讲可视化垃圾回收中从基础谈起讨论了垃圾回收。以下是对其演讲的简短总结。感兴趣的朋友一起学习吧
    2017-05-05
  • springboot实现全局异常处理及自定义异常类

    springboot实现全局异常处理及自定义异常类

    这篇文章主要介绍了springboot实现全局异常处理及自定义异常类,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • 基于solr全文检索实现原理(详谈)

    基于solr全文检索实现原理(详谈)

    下面小编就为大家分享一篇基于solr全文检索实现原理详谈,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-11-11
  • java实现抽奖概率类

    java实现抽奖概率类

    这篇文章主要为大家详细介绍了java实现抽奖概率类,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • 浅谈对Java双冒号::的理解

    浅谈对Java双冒号::的理解

    这篇文章主要介绍了浅谈对Java双冒号::的理解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • webservice实现springboot项目间接口调用与对象传递示例

    webservice实现springboot项目间接口调用与对象传递示例

    本文主要介绍了webservice实现springboot项目间接口调用与对象传递示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • Mybatis通过拦截器实现单数据源内多数据库切换

    Mybatis通过拦截器实现单数据源内多数据库切换

    这篇文章主要为大家详细介绍了Mybatis如何通过拦截器实现单数据源内多数据库切换,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-12-12

最新评论