提问人:Cícero Augusto 提问时间:10/19/2019 更新时间:10/19/2019 访问量:386
java 关键字“this”在此代码中是多余的吗?[复制]
Is java keyword "this" redundant in this code? [duplicate]
问:
我正在学习一个教程,对“this”关键字的使用有疑问。在类的构造函数中,this.mContext 不是引用关键字的冗余使用吗?简单地使用 mContext 不是一样吗?
//package org.harrix.sqliteexample;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.content.Context;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.File;
public class DatabaseHelper extends SQLiteOpenHelper {
private static String DB_NAME = "info.db";
private static String DB_PATH = "";
private static final int DB_VERSION = 1;
private SQLiteDatabase mDataBase;
private final Context mContext;
private boolean mNeedUpdate = false;
public DatabaseHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
if (android.os.Build.VERSION.SDK_INT >= 17)
DB_PATH = context.getApplicationInfo().dataDir + "/databases/";
else
DB_PATH = "/data/data/" + context.getPackageName() + "/databases/";
this.mContext = context;
copyDataBase();
this.getReadableDatabase();
}
}
答:
0赞
Cícero Augusto
10/19/2019
#1
“唯一使用它来访问类成员并不是严格冗余的时候,就是当你避免使用同名的本地作用域成员时,尽管良好的编程实践应该无论如何都会防止这种情况发生。”
@Abion47
3赞
zain
10/19/2019
#2
是的,它是多余的 但是,如果我们遵循正确的 Java 命名约定,则需要它
private final Context mContext;
通常应该是
private final Context context;
public DatabaseHelper(Context context) {
this.context = context
}
这里需要它,以便为实例变量分配参数值。
评论
this