java this使用情况
程序员文章站
2022-07-14 18:15:58
...
在三种情况下我们不得不用this这个关键字.
1.我们想通过构造方法将外部传入的参数赋值给成员变量,而构造方法的形式参数与类成员的变量名相同,这时就需要this这个关键字来区别局部变量与类变量;
例如:
// Fields
private Integer FId;
private Integer FValid;
private String FName;
private String FPwd;
private Integer FAge;
private String FSex;
private String FFunny;
private String FEmail;
private String FDegree;
// Constructors
/** default constructor */
public UserInfo() {
}
/** full constructor */
public UserInfo(Integer FValid, String FName, String FPwd,Integer FAge, String FSex,
String FFunny, String FEmail, String FDegree) {
this.FValid = FValid;
this.FName = FName;
this.FPwd = FPwd;
this.FAge = FAge;
this.FSex = FSex;
this.FFunny = FFunny;
this.FEmail = FEmail;
this.FDegree = FDegree;
}
2.假设有一个容器类和一个部件类,在容器类的某个方法中要创建部件类的实例对象,而部件类的构造方法要接收一个代表其所在容器的参数,这时也要用到this;
3.构造方法是在产生对象 时被自动调用的,我们不能在程序中像调用其他方法一样去调用构造方法但我们可以在一个构造方法里调用其他重载的构造方法,不是用构造方法名,而是用this(参数列表)的形式,根据其中的参数列表,选择相应的构造方法
例如:
public ConnectionManager() {
this("sa","1");
}
/**
* @param args
*/
private ConnectionManager(String username,String password) {
String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String url = "jdbc:microsoft:sqlserver://127.0.0.1:1433;DataBaseName=test";
try {
Class.forName(driverName);
conn = DriverManager.getConnection(url, username, password);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}