我是一名初学Java程序员,只是想让某人查看我写的一些代码
请问您是否正确使用this
关键字
public class ReadFile {
private String path; // String to store filename and path.
public ReadFile(String path){
this.path;
}
}
答案 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
引用私有字段path
,path
引用方法参数。
答案 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;
}
您经常看到的另一种形式(我不主张 em>)就是这样:
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;
}