何时在匿名类中创建方法
Posted
技术标签:
【中文标题】何时在匿名类中创建方法【英文标题】:When to create a method inside anonymous class 【发布时间】:2015-11-16 21:42:57 【问题描述】:在下面的代码中,我创建了按钮侦听器,当我尝试创建方法 on()
时,eclipse 建议将其创建为 OnClickListener
的一部分或 mainClass 的一部分。
在这两种情况下创建方法 on()
有什么区别,为什么应该是 protected
?
代码:
private OnClickListener btnListenerOn = new OnClickListener()
@Override
public void onClick(View v)
// TODO Auto-generated method stub
on();
;
@Override
protected void onStart()
// TODO Auto-generated method stub
super.onStart();
Log.w(TAG, "@onStart.");
protected void on()
// TODO Auto-generated method stub
【问题讨论】:
【参考方案1】:Encapsulation 是一个概念,可以引导您了解该方法的放置位置。封装可帮助您将实现细节隐藏在最有限的范围内,例如,当您需要更改实现时,您可以阻止 ripple effect。
在您的情况下,由于您可能不需要从您的OnClickListener
以外的任何其他地方调用on()
方法,因此这是放置它的正确位置。
在这种情况下,on()
方法应该是私有的,因为您永远不会扩展匿名 OnClickListener
类。如果您的侦听器不是匿名的,您可能需要声明方法 protected 以便您可以覆盖子类中的实现
【讨论】:
以上是关于何时在匿名类中创建方法的主要内容,如果未能解决你的问题,请参考以下文章