Надеюсь, вы получите ответ, но я просто отправлю его здесь, чтобы предоставить дополнительное понимание тому, кто ищет этот вопрос.
this
ключевое слово представляет текущую деятельность или класс или объект.
например.
private int number;
public example(int number) {
this.number = number;
}
здесь, this.number
представляет private int number
переменную и число методов int number
Теперь мы можем использовать «это» ключевое слово, как во внутреннем классе, чтобы представить текущий класс,
public class ClassChaosActivity extends Activity {
public static final String DEBUG_TAG = "MyLoggingTag";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final TextView myTextview = (TextView) findViewById(R.id.TextViewToShow);
Button myButton = (Button) findViewById(R.id.ButtonToClick);
myButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
SimpleDateFormat formatter = new SimpleDateFormat("h:mm:ss a");
String strWhen = formatter.format(new Date());
myTextview.setText("Clicked at " + strWhen);
Log.v(DEBUG_TAG, "this Class name: " + this.getClass().getName());
Log.v(DEBUG_TAG, "this extends interface named: " + this.getClass().getInterfaces()[0].getName());
Log.v(DEBUG_TAG, "this Enclosing class name: " +this.getClass().getEnclosingClass().getName());
Log.v(DEBUG_TAG, "this Is anonymous class? " + this.getClass().isAnonymousClass());
Log.v(DEBUG_TAG, "ClassChaosActivity.this Class name: " + ClassChaosActivity.this.getClass().getName());
Log.v(DEBUG_TAG, "ClassChaosActivity.this Super Class name: " + ClassChaosActivity.this.getClass().getSuperclass().getName());
Log.v(DEBUG_TAG, "ClassChaosActivity.this Is anonymous class? " + ClassChaosActivity.this.getClass().isAnonymousClass());
}
});
}
}
файл журнала ::
10-24 18:18:53.075: VERBOSE/MyLoggingTag(751): this Class name: com.androidbook.classchaos.ClassChaosActivity$1
10-24 18:18:53.085: VERBOSE/MyLoggingTag(751): this extends interface named: android.view.View$OnClickListener
10-24 18:18:53.085: VERBOSE/MyLoggingTag(751): this Enclosing class name: com.androidbook.classchaos.ClassChaosActivity
10-24 18:18:53.095: VERBOSE/MyLoggingTag(751): this Is anonymous class? true
10-24 18:18:53.095: VERBOSE/MyLoggingTag(751): ClassChaosActivity.this Class name: com.androidbook.classchaos.ClassChaosActivity
10-24 18:18:53.105: VERBOSE/MyLoggingTag(751): ClassChaosActivity.this Super Class name: android.app.Activity
10-24 18:18:53.105: VERBOSE/MyLoggingTag(751): ClassChaosActivity.this Is anonymous class? false
Что вы подразумеваете под утверждением - «также рекомендуется, чтобы в случае, если поля не имеют префикса (например,« m »или« _ »), вы должны использовать« this ». Вы также можете установить затмение в автоматически добавьте ключевое слово «this» для таких случаев ». –
рекомендуется, чтобы вы могли различать обычные переменные (внутренние функции) и функции класса объекта. –