为什么Activity类中的字段和视图使用默认的Java访问修饰符而不是私有?

时间:2017-01-25 18:44:43

标签: java android encapsulation

我已经阅读了很多看起来像这样的Android代码,很多次:

public class MainActivity extends AppCompatActivity {

    EditText editText;
    TextView textView;
    int someInt;
    String someString;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //init views
    }

}

我在Android编程中仍然是一个小伙伴,但作为一名经典的Java程序员,我不明白为什么你不将你的字段封装为私有字段,并在必要时通过getter访问它们。这有什么理由吗?像同一个包中的其他类或活动需要直接访问字段?这可能是一个愚蠢的问题,但我无法找到解释。

2 个答案:

答案 0 :(得分:2)

应该对只能在该类中访问的字段使用私有访问修饰符。

因此,在您的情况下,您说EditText应该是私人字段是正确的。

我不确定您在哪里阅读此代码,但据我所知,最佳做法是尽可能降低可见性。

答案 1 :(得分:0)

m用于便于理解或区分本地变量和成员变量。此外,如果您尝试从另一个活动访问和修改EditText的文本而不扩展它,您将无法执行此操作。它与onCreate()绑定。