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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 如何解决@NotBlank不生效的问题

    如何解决@NotBlank不生效的问题

    这篇文章主要介绍了如何解决@NotBlank不生效的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • Spring实现数据库读写分离详解

    Spring实现数据库读写分离详解

    这篇文章主要介绍了Spring 实现数据库读写分离,大多数系统都是读多写少,为了降低数据库的压力,可以对主库创建多个从库,从库自动从主库同步数据,程序中将写的操作发送到主库,将读的操作发送到从库去执行,需要的朋友可以参考下
    2024-01-01
  • Netty粘包拆包问题解决方案

    Netty粘包拆包问题解决方案

    这篇文章主要介绍了Netty粘包拆包问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • Java main方法String[]args原理实例解析

    Java main方法String[]args原理实例解析

    这篇文章主要介绍了Java main方法String[]args原理实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • 详解Spring中bean的几种注入方式

    详解Spring中bean的几种注入方式

    这篇文章主要介绍了详解Spring中bean的几种注入方式,主要介绍了4种注入,主要有属性注入、构造函数注入、工厂方法注入,非常具有实用价值,需要的朋友可以参考下
    2018-06-06
  • Java Synchronized字节码层分析体验

    Java Synchronized字节码层分析体验

    这篇文章主要介绍了Java Synchronized字节码层分析,synchronized关键字解决了多个线程之间的资源同步性,synchronized关键字保证了它修饰的方法或者代码块任意时刻只有一个线程在访问
    2023-04-04
  • java读取word文档,提取标题和内容的实例

    java读取word文档,提取标题和内容的实例

    这篇文章主要介绍了java读取word文档,提取标题和内容的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • 详解Spring中bean生命周期回调方法

    详解Spring中bean生命周期回调方法

    本篇文章主要介绍了详解Spring中bean生命周期回调方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • SpringBoot整合Redis实现访问量统计的示例代码

    SpringBoot整合Redis实现访问量统计的示例代码

    本文主要介绍了SpringBoot整合Redis实现访问量统计的示例代码,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • java利用Tabula实现对PDF内表格数据提取

    java利用Tabula实现对PDF内表格数据提取

    Tabula是一个开源工具,用于从PDF文档中提取表格数据,下面小编就来和大家详细介绍一下java如何通过Tabula对PDF文件内表格进行数据提取吧
    2023-09-09

最新评论