Я использовал книгу по Java, которая до сих пор была превосходной, но она не очень хорошо объясняла причину, по которой мы используем сеттеры и геттеры. Я искал другие сообщения, но ни один из них не помог мне конкретно. Я просто выложу программу из книги и объясню свои проблемы с ней.
package lesson1;
public class GoodDog {
private int size;
public void setSize(int sz){
if(sz > 10){
size = sz;
}
}
public int getSize(){
return size;
}
}
Второй класс:
package lesson1;
public class GoodDogTestDrive {
public static void main(String[] args) {
GoodDog one = new GoodDog();
one.setSize(15);
System.out.println(one.getSize());
}
}
Это мой первый пост, так что если он не выйдет в виде кода, то простите меня. Не спрашивайте, почему классы так называются, у меня не было воображения, и я просто использовал название книги.
Во всяком случае, я понимаю, что инкапсуляция (для меня это в основном означает геттеры и сеттеры) предотвращает прямой доступ к мгновенным переменным. Единственная веская причина для этого заключается в том, что некоторые значения мгновенных переменных нельзя допускать.
Например, у нас есть int height; (Мгновенная переменная) Нельзя сказать, что object.height = 0; («объект» — случайная ссылочная переменная). В моей маленькой программе это просто высота собаки с простым ограничением. Это не имеет смысла, но я просто пытаюсь понять эту концепцию. Инкапсуляция просто предназначена для фирм, занимающихся программированием, когда программистам нужно использовать код друг друга. скажем, сделать игру например или это другое?
Я посмотрел видео, в котором также говорилось, что это просто упрощает управление кодом. Однако я все еще не чувствую, что полностью понимаю эту концепцию. Может кто-нибудь, пожалуйста, объясните мне это простыми словами. Обратите внимание, что я новичок и не пойму примеры с промежуточным кодом.
Спасибо за помощь.