Я прочитал много Android код, который выглядит так, так много раз:Почему поля и представления в классах активности используют модификатор доступа Java по умолчанию, а не частный?
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 программист, я не понимаю, почему вы бы не инкапсулировать ваши поля как частные и сделать их доступными через getters сеттеры, если необходимо. Есть ли причина для этого? Как и любой другой класс или активность в одном пакете, нужен прямой доступ к полям? Это может быть глупый вопрос, но я не мог найти объяснения этого.
Лично я предпочитаю доступ по умолчанию, в основном для лености. Но это оправданно. Это уменьшает беспорядок IMO. Это не так опасно - злоупотребление маловероятно среди классов в одном пакете. Полезно быть доступным из тестового кода. – ZhongYu