Java"this"在构造函数中

And*_*dez 3 java constructor

嗯,这是一个非常基本的问题,我从来没有用java编写,但是我正在为一个朋友写一个类......有类似的东西:

class myClass{

    private string name;
    public string getName() {
        return this.name;
    }   
    public void setName (int newValue) {
        this.name = newValue;
    }

    private int number;
    public int getNumber() {
        return this.number;
    }   
    public void setNumber (int newValue) {
        this.number = newValue;
    }
}  
Run Code Online (Sandbox Code Playgroud)

我想构建构造函数的方式是:

public myClass (string name, int numbers) {
    this.name = name;
    this.number = number;
}
Run Code Online (Sandbox Code Playgroud)

我的问题:

  1. 我使用与参数相同的属性标识符.做这个." 避免在这里遇到麻烦?
  2. 是否更好地使用set方法,如果是这样,我应该使用"this."?

非常感谢你

wmo*_*ell 6

  1. 是的,它避免了名称冲突.在构造函数的上下文中,名称name引用参数,名称this.name引用实例字段.
  2. 取决于"更好"的意思.就个人而言,我会做的namenumber场决赛,因此类是不可变的.根据我的经验,最好从不可变的类定义开始,如果有合法的需要,只能转向可变的东西.

  • 建议使用不可变类的+1 (3认同)