正确使用'这个'在Java中

时间:2014-11-19 13:15:52

标签: java

我是一名初学Java程序员,只是想让某人查看我写的一些代码 请问您是否正确使用this关键字

public class ReadFile {

    private String path; // String to store filename and path. 

    public ReadFile(String path){
        this.path;
    }
}

4 个答案:

答案 0 :(得分:3)

this指的是正在执行代码的对象实例。典型的例子就像你已经写过的那样(btw,this.path本身并不是一个有效的java语句)

public class ReadFile {

    private String path; // String to store filename and path. 

    public ReadFile(String path){
        this.path = path;
    }
}

this.path引用私有字段pathpath引用方法参数。

答案 1 :(得分:3)

在实例方法或构造函数中,this是对当前对象的引用 - 正在调用其方法或构造函数的对象。您可以使用this

从实例方法或构造函数中引用当前对象的任何成员

正如上面的一些答案所示,您可以this指向成员变量,也可以使用它从构造函数中调用另一个构造函数。

见下面的例子

public class Rectangle {
private int x, y;
private int width, height;

public Rectangle() {
    this(0, 0, 1, 1);
}
public Rectangle(int width, int height) {
    this(0, 0, width, height);
}
public Rectangle(int x, int y, int width, int height) {
    this.x = x;
    this.y = y;
    this.width = width;
    this.height = height;
}
...
}

有关详细信息,请参阅here

希望这有帮助

答案 2 :(得分:0)

如果您正在使用this.path ,那么的使用将是正确的,例如:

this.path = path;

只有this.path;本身在Java中无效。

this,在实例方法中,引用当前对象实例。在上面更正的代码中,this.path指的是您的实例数据成员,而path本身就是指您为path指定的setPath参数。为清楚起见,我们重命名参数:

private String path;

public void setPath(String newPath){
    this.path = newPath;
}

您经常看到的另一种形式(我不主张)就是这样:

private String path;

public void setPath(String newPath){
    path = newPath;
}

由于我们使用它的范围内没有其他path,因此自由path符号会自动解析为this.path。有些人喜欢这样,节省了打字this.;其他人认为这会使代码更难阅读,因为你不知道path是局部变量,参数,实例成员还是类成员。

我提到了第二种形式,因为你说你是初学者,而且你会在很多代码中看到它。我再也不提倡它了。

答案 3 :(得分:0)

在ReadFile函数中,您应该对this.path执行某些操作,这是您的类的私有字段,例如:

public ReadFile(String path){
    this.path = path;
}