在过go 的几天里,我一直在努力学习类和对象,我意识到在构造函数中使用"this.set"和"set"并没有明显的区别.澄清

public Movie(String title,String director, String rating) {
        setTitle(title); 
        setDirector(director);
        setRating(rating);

public Movie(String title,String director, String rating) {
        this.setTitle(title); 
        this.setDirector(director);
        this.setRating(rating);

run 时没有什么不同.

What is the difference, if there is any 和 which one is better practice?

我原以为会有某种错误,但结果完全一样.除此之外,我的指导老师确实使用了not个"this"在他的例子中,将setter放在构造函数中.

谢谢

推荐答案

在示例中调用setter方法时,不需要使用this(这样做不是标准做法).但是,如果要在构造函数中设置与变量同名的字段,则必须使用this.例如:

public class Movie {
    private final String title;

    public Movie(String title) {
        this.title = title;
    }
}

如果不指定this.title,它会认为您试图将title变量赋值给它自己.

当您的类扩展了另一个类(例如,您可以调用this.method()super.method())时,还需要使用关键字this来区分方法的不同实现

Java相关问答推荐

在正确位置绘制多边形的PFA问题

如何在Spring Security中设置CustomLogin路径?

具有默认分支的JUnit代码覆盖率切换声明

将Nimbus设置为计算机上运行的所有Java应用程序的默认外观

如何使用CSS为选定但未聚焦的表格行设置背景 colored颜色 ?

Spring boot:Bean和动态扩展器

RxJava PublishSubject缓冲区元素超时

JUnit—如何模拟局部变量对象方法调用

在Spring Boot中使用哪个Java类来存储创建时间戳?

Helidon 4和Http API

把一条整型短裤和两条短裤装成一条长的

我可以在MacOS上使用什么Java函数来在适当的设备上以适当的音量播放适当的alert 声音?

Jenv-相同的Java版本,但带有前缀

如何在antlr4中跳过所有反斜杠-换行符而保留换行符?

有效的公式或值列表必须少于或等于255个字符

将JSON字符串转换为Java类

在macOS上读取文件会导致FileNotFound,即使文件存在(并且具有权限)

Java中不兼容的泛型类型

为什么mvn编译生命周期阶段不只是编译已更改的java文件?

Java 17与Java 8双重表示法