【Java】final关键字&权限修饰符&内部类&引用类型用法(二)

简介: 本期主要介绍final关键字&权限修饰符&内部类&引用类型用法

4. 引用类型用法总结


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

4.1 class作为成员变量


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

image.png

使用 int 类型表示 角色 id 和生命值,使用 String 类型表示姓名。此时, String 本身就是引用类型,由于使用

的方式类似常量,所以往往忽略了它是引用类型的存在。如果我们继续丰富这个类的定义,给Role 增加武器,穿戴装备等属性,我们将如何编写呢?

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

image.png

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

image.png

 定义角色类:

image.png

image.png

4.2 interface作为成员变量


接口是对方法的封装,对应游戏当中,可以看作是扩展游戏角色的技能。所以,如果想扩展更强大技能,我们在Role 中,可以增加接口作为成员变量,来设置不同的技能。

定义接口:

image.png

定义角色类:

image.png

定义测试类:

image.png

image.png

我们使用一个接口,作为成员变量,以便随时更换技能,这样的设计更为灵活,增强了程序的扩展性。

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

4.3 interface作为方法参数和返回值类型


当接口作为方法的参数时,需要传递什么呢?当接口作为方法的返回值类型时,需要返回什么呢?

对,其实都是它的

子类对象。 ArrayList 类我们并不陌生,查看 API 我们发现,实际上,它是 java.util.List 接口的实现类。所以,当我们看见 List 接口作为参数或者返回值类型时,当然可以将 ArrayList 的对象进行传递或返回。

请观察如下方法: 获取某集合中所有的偶数

定义方法:

image.png

image.png

接口作为参数时,传递它的子类对象。

接口作为返回值类型时,返回它的子类对象。

相关文章
|
2月前
|
安全 架构师 Java
90% Java新手踩坑!彻底搞懂这4个权限修饰符
Java权限修饰符看似简单,却暗藏致命风险:`public`暴露数据、`protected`跨包失控、默认权限成地雷。本文通过3大真实案例+1张神图,深度解析`private`、`default`、`protected`、`public`的作用域与内存可见性,揭示Spring Bean、继承陷阱、包级漏洞的根源,并奉上防御性编程5大原则,助你筑牢代码第一道防线。
208 1
|
3月前
|
安全 前端开发 Java
Java包管理与访问控制权限详解
本文深入讲解Java包管理和访问控制,涵盖包的创建与使用、访问权限的四个层级,并结合实战案例分析如何设计合理的包结构和访问权限,帮助开发者提升代码的安全性与可维护性。
|
10月前
|
供应链 安全 Java
探索 Java 权限修饰符的奥秘
本文深入探讨了Java中的权限修饰符
133 12
|
11月前
|
移动开发 前端开发 Java
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
JavaFX是Java的下一代图形用户界面工具包。JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序。 JavaFX允许开发人员快速构建丰富的跨平台应用程序,允许开发人员在单个编程接口中组合图形,动画和UI控件。本文详细介绍了JavaFx的常见用法,相信读完本教程你一定有所收获!
9724 5
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
|
12月前
|
存储 缓存 安全
除了变量,final还能修饰哪些Java元素
在Java中,final关键字不仅可以修饰变量,还可以用于修饰类、方法和参数。修饰类时,该类不能被继承;修饰方法时,方法不能被重写;修饰参数时,参数在方法体内不能被修改。
155 3
|
12月前
|
Java
final 在 java 中有什么作用
在 Java 中,`final` 关键字用于限制变量、方法和类的修改或继承。对变量使用 `final` 可使其成为常量;对方法使用 `final` 禁止其被重写;对类使用 `final` 禁止其被继承。
211 2
|
存储 安全 Java
深入理解Java中的FutureTask:用法和原理
【10月更文挑战第28天】`FutureTask` 是 Java 中 `java.util.concurrent` 包下的一个类,实现了 `RunnableFuture` 接口,支持异步计算和结果获取。它可以作为 `Runnable` 被线程执行,同时通过 `Future` 接口获取计算结果。`FutureTask` 可以基于 `Callable` 或 `Runnable` 创建,常用于多线程环境中执行耗时任务,避免阻塞主线程。任务结果可通过 `get` 方法获取,支持阻塞和非阻塞方式。内部使用 AQS 实现同步机制,确保线程安全。
1203 3
|
存储 安全 Java
了解final关键字在Java并发编程领域的作用吗?
在Java并发编程中,`final`关键字不仅用于修饰变量、方法和类,还在多线程环境中确保对象状态的可见性和不变性。本文深入探讨了`final`关键字的作用,特别是其在final域重排序规则中的应用,以及如何防止对象的“部分创建”问题,确保线程安全。通过具体示例,文章详细解析了final域的写入和读取操作的重排序规则,以及这些规则在不同处理器上的实现差异。
235 0
了解final关键字在Java并发编程领域的作用吗?
|
29天前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
96 1