Android类成员,我应该声明受保护吗?

时间:2015-04-09 07:59:18

标签: java android access-modifiers

我应该声明Android类成员protected吗?有什么好处?我看到的所有示例都只声明字段类型及其名称("包受保护")。

protected TextView mName;

vs

TextView mName;

我不需要延长这样的课程。

2 个答案:

答案 0 :(得分:0)

受保护:变量可供该类和其他扩展该类的类

私有:变量仅适用于该类

公共:变量可供该类和其他类访问,即使它们不扩展此类也是如此。您需要创建类的实例才能访问其公共变量。

公共static:变量可供该类和其他类访问,即使它们不扩展此类也是如此。您不需要创建类的实例以访问其公共静态变量。

公共静态final:变量可供该类和其他类访问,即使它们不扩展此类也是如此。您不需要创建类的实例以访问其公共静态变量。此外,您不能更改变量的值,因为它是最终的。

答案 1 :(得分:0)

我只会根据http://jakewharton.github.io/butterknife/使用ButterKnife库,无论如何都要求这些字段变量为public

//Activity
@InjectView(R.id.your_textview_name)
public TextView mText;

@Override
public void onCreate(Bundle saveinstanceState) {
    super.onCreate(saveinstanceState);
    setContentView(R.layout.your_layout);
    ButterKnife.inject(this);
}

//Fragment
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle saveinstanceState) {
    View view = inflater.inflate(R.layout.your_fragment_layout, container, false);
    ButterKnife.inject(this, view);
    return view;
}