java - Java:构造函数变量与在类级别可见的变量
问题描述
我是 Java 新手,我继承了这样的代码(来自 Python)
Q1)在班级级别上有变量有什么意义?
Q2)区分“这个”有什么意义。而不是在构造函数中使用它?在python中,我总是用“this”在构造函数中设置变量
public class Schedule {
private final String id;
private final Clock clock;
private final Map<String, WorkJob> workStore;
private Instant lastUpdatedTime;
@Inject
public Schedule(
Clock clock,
@Named ("id") String id,
) {
workStore = new ConcurrentHashMap<>();
this.clock = clock;
this.id = id;
this.lastUpdatedTime = clock.instant();
}
例如,怎么来this.lastUpdatedTime
但workStore
不是this.workStore
?
是因为final
被使用了吗?那怎么this.clock
来this.id
?
解决方案
类上的变量称为实例变量,这意味着当您构造它的新实例时Schedule
,将具有特定于实例的那些变量。
关键字基本上是在this
说我的实例,所以对于这个例子,构造函数接受一个名为的变量clock
,而 Schedule 类也有一个名为时钟的变量。因此,要区分两者,请使用 this 关键字。
这this.clock = clock;
将我实例上的变量时钟设置为传递给构造函数的时钟值。
推荐阅读
- mysql - 在树莓派上安装 mysql-server-8.0
- java - 以行和列模式打印字符串Java
- sql-server - 无法从 Linux 管理基于 docker 的 mysql 服务器
- r - 分组,按频率汇总 R
- javascript - 如何通过一个 ajax 调用执行两个操作 - WordPress
- python - 无法使用“Set_Tempo”更改 midi 中的速度
- android - 将图片从 Xamarin Forms 上传到服务器 WebAPI
- postgresql - 如何计算postgresql中的百分比(%)
- java - 如何让 micronaut 为 Value.Immutable 类生成 OpenAPI 模式属性?
- google-chrome - 引用 SVG 的不同颜色的过渡