Espero que recibas tu respuesta, pero acabo de publicar aquí para proporcionar una comprensión adicional a quién busca esta pregunta.
this
palabra clave representa la actividad actual o clase u objeto.
p. Ej.
private int number;
public example(int number) {
this.number = number;
}
aquí, this.number
representa private int number
número variable y es métodos int number
Ahora podemos usar palabra "this" como en la clase interna para representar clase actual,
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());
}
});
}
}
el archivo de registro se ::
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
¿Qué quiere decir con la declaración? "También, se recomienda que si los campos no tienen un prefijo (como" m "o" _ "), debe usar" this ". También puede configurar eclipse para agregue automáticamente la palabra clave "this" para dichos casos ". –
se recomienda para que pueda diferenciar entre las variables normales (funciones internas) y las de la clase del objeto. –