"this"关键字在实现接口 (Java) 的类中是什么意思?为什么它作为接口发送?



在此类中有两个此关键字一个被用作上下文另一个用作接口

这两个方法对于它们是什么的方法是可以理解的?

 public class LoginActivity extends Activity implements LoginaView, View.OnClickListener {
private ProgressBar progressBar;
private EditText username;
private EditText password;
private LoginPresenter presenter;
/**
 * LoginActivity Overriden  Methods
 * */
@Override protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);
    progressBar = (ProgressBar) findViewById(R.id.progress);
    username = (EditText) findViewById(R.id.username);
    password = (EditText) findViewById(R.id.password);
    findViewById(R.id.button).setOnClickListener(this);
    presenter = new LoginPresenterImpl(this,new LoginInteractorImpl());
}
@Override protected void onDestroy() {
    presenter.onDestroy();
    super.onDestroy();
}
/**
 * View.OnClickListener Overriden  Methods
 * */
@Override public void onClick(View v) {
    presenter.validateCredentials(username.getText().toString(), password.getText().toString());
}
/**
 * LoginaView Overriden Methods
 * */
@Override public void showProgress() {
    progressBar.setVisibility(View.VISIBLE);
}
@Override public void hideProgress() {
    progressBar.setVisibility(View.GONE);
}
@Override public void setUsernameError() {
    username.setError(getString(R.string.username_error));
}
@Override public void setPasswordError() {
    password.setError(getString(R.string.password_error));
}
@Override
public void setOnUserNamePassWrong() {
    Toast.makeText(getBaseContext(),getString(R.string.username_or_pass_wrong),Toast.LENGTH_LONG).show();
}
@Override public void navigateToHome() {
    startActivity(new Intent(this, MainActivity.class));
    finish();}}

如何将其作为上下文发送以及接口也发送?

'这是Java中的参考对象,它引用了当前对象。在您的情况下,它指的是类登录的对象。

编辑:我想添加,如果类实现接口,则可以使用接口的引用来引用该类的对象。更具体地说,假设我有一个名为" myinterface"的接口。

现在让类'myclass'实现" myinterface"。现在,如果存在一种接受" myinterface"类型的参考的方法,那么我可以通过" myclass"的对象而没有任何问题。

最新更新