为了账号安全,请及时绑定邮箱和手机立即绑定

一个简单的java匿名内部类,如何引用外面类的成员?

一个简单的java匿名内部类,如何引用外面类的成员?

饮歌长啸 2019-03-15 19:19:33
在java中,匿名内部类为什么不用使用"外部类名.this",就可以调用外部类的方法?这是一段简单的android代码public class MainActivity extends Activity {    private Button btn;        @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        btn = (Button)findViewById(R.id.btn);        //此处声明一个匿名内部类        btn.setOnClickListener(new OnClickListener() {                        @Override            public void onClick(View arg0) {                Intent intent = new     Intent(MainActivity.this,Second.class);                //在此处,startAtivity()是Activity的方法                //这么写是对的 MainActivity.this.startActivity(intent);                //为什么也可以不加MainActivity.this 这样调用?                startActivity(intent);            }        });    }
查看完整描述

4 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

准确说这个问题属于继承关系,startActivity(Intent intent)方法属于Context类下的public方法,Activity继承自Context,自然也会拥有这个方法的使用权,而对于activity来说,这是个activity内的全局方法,只要在作用域内,都是可以直接调用的,默认就是当前activity的context(即activity.this)调用。


查看完整回答
反对 回复 2019-04-16
  • 4 回答
  • 0 关注
  • 760 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号