привет подскажи разве 1 метод не делает то что делают два других. но более компактнее 1) String name (String x) { name = x; return name; } ---------------------------------------- 2) void name1(String x) { name = x } 3) String name2() { return name }
Тип данных в параметрах метода, указывает на то, значение какого типа данных, метод может принять от объекта на хранение. Да, и еще важно понять, что поля - характеристики объекта, методы - средства работы с полями, а сам объект - immutable. ) В этом суть ООП. Прекрасный курс. Спасибо.
Прекрасное представление по всем темам.Разобрался сразу с теми вопросами,в котрых плавал(вызовы методов,void,return).Огромное спасибо,очень стоящий курс!
Почему я не знал этого канала 5 лет назад 👍 .... Спасибо большое, как ты объясняешь beckand с примером со стороны пользовательский ЭТО ВООБЩЕ БОМБА👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍
Подписался. Господи, после всяких "преподавателей" твои уроки это просто идеал преподавания! Вот так просто и своими словами объясняешь, я лишь повторяю в идее и все запоминается и понимается.
Первый раз понял что такое сеттеры и геттеры. До этого смотрел и читал разное, но на живых примерах - впервые изложено для понимания, а не для "так надо". СПАСИБО!
крч, всем тем, кто уже пытался врубиться в джаву и не смог, но имеет сумбур знаний, вам на этот канал, очень хорошо мозги прочищает и расставляет всё по полочкам).
Все очень понятно и доступно. Спасибо за проделанную колоссальную работу по созданию обучающего курса) Я думаю, многим начинающим и не только разработчикам информация будет полезной
Очень круто обьяснил. В твоих уроках есть то чего нету в других. Обьянение того зачем это нужно и где этоприменяется. Сделай еще плиз курс пет проэкты. Что делать? Как делать? Зачем? Что на них ты должен научится? Что обычно делают в компаниях? Что пишут регулярно? А что не так часто? Что нужно знать чтобы понять как решить ту или иную проблему если ты работаешь как джава разработчик на андроид или на ентерпрайз. Будет реально полезно. И если будешь делать проэкты объясни почему именно он? Чем он нам поможет для работы и т.д. Спасибо тебе. Учить это твое. Продолжай в том же духе и монетизируй
Стараюсь конспектировать все твои уроки чтоб быстрее понять и запомнить. Про геттеры и сеттеры на ютубе пересмотрел около 10 видосов разных. Я так и не понял что это и зачем нужны. Тут я даже ничего не записывал, ибо это оказалось настолько простой и понятной вещью
Так, в общем мне немного подсказали и таки получилось написать так, чтобы прога запрашивала и имя и возраст до тех пор, пока не будет адекватного ответа. Спасибо автору еще раз. Очень доходчиво излагаете!!! Если кому интересно, то код ниже: ------------------------------------------------- import java.util.Scanner; public class Set_Get { public static void main(String[] args) { String name; int age; Scanner scan = new Scanner(System.in); Identification person = new Identification(); while(!person.getIsNameCorrect()){ System.out.println("Введите Ваше имя: "); name = scan.nextLine(); person.setName(name); } while(!person.getIsAgeCorrect()){ System.out.println("Введите Ваш возраст: "); age = scan.nextInt(); person.setAge(age); } System.out.println("Вас зовут - " + person.getName() + ". Ваш возраст - " + person.getAge() + " лет. Вы можете войти!!!"); } } class Identification{ private String userName; private int userAge; private boolean isNameCorrect = false; private boolean isAgeCorrect = false; public void setName(String n){ if (n.isEmpty()){ System.out.println("Вы ввели пустое имя!!! Введите имя еще раз!!!"); } else{ userName = n; isNameCorrect = true;} } public String getName(){ return userName; } public Boolean getIsNameCorrect(){ return isNameCorrect; } public void setAge(int a){ if (a
Спасибо за видео! Всё-таки, для меня, когда человек объясняет и показывает на примере лучше доходит. А то уже и в HeadFirst прочитал и в раше прошел, и так и не дошло)
я не могла понять раньше эти сет и гет потому что не понимала зачем по сто раз эти имена создавать. а теперь я понимаю что есть еще юзеры - поэтому мы должны быть в состоянии поменять внутри своей программы имена полей, НО что бы программа продолжала работать у других людей. что бы мои внутрение редакции не попортили работу программы у третьих лиц. .... если я верно поняла)
Тоже учусь по этим видосам все доступно. Мелочей правда мало, Нет всех подробностей. Лучше иметь под рукой какой нибудь учебник дополнительно.В общем респект, не зря тратишь время.
Большая благодарность за труды по обучению недоразвитых) Но, если перед записью ролика составить себе на бумажке план лекции, то изложение еще улучшится.
В данной теме, по факту, про инкапсуляцию ни слова не сказано) Кроме того что упоминается прайват. Инкапсуляция - сокрытие элементов путем изменения\добавления модифакторов доступа. Это более обширная тема, чем прописывание сеттеров и геттеров. В остальном, спасибо за видео)
Спасибо за курс. Неплохо было бы дать определение "сеттера" и "геттера" и объяснить в каком они формате записываются, то есть почему пишется "setName", синтаксис. А то приходится догадываться интуитивно.
а что если в конструкторе при создании объекта указывать те же имя и возраст, получается проверку надо в конструкторе прописывать? это адекватный способ или как?) как проверять правильность введенных данных если по условию стоит установка данных через конструктор, или это бред?)
А вдруг это не совсем умный пользователь вместо имени мат напишет, это нам в сеттере целую партянки проверок нужно писать. Да и возрос же не может быть 0 или 200 лет. Дела... Лайк как всегда, за урок спасибо.
"пользователь" вообще не будет трогать код или что-то там смотреть. Код будете юзать только ты, либо другой программист. Автор использует слово "пользователь", чтобы было хоть немного понятно, зачем нужны геттеры и сеттеры, для тех, кто никогда с этим не сталкивался.
Бро, вместо ручного переименовывания переменных в intelliJ есть команда "Refactor" в контекстном меню кликая на переменную. С её помощю переименовывается переменная во всем коде
Второй момент-зачем задавать значение полей, если есть ограничения на их вид. Можно же параметры все через метод передавать? И в методе они уже проверяются и возвращаются статусы
Автору как всегда респект!! А вопрос такой. Я тоже сделал вариант со сканнером, когда пользователь на запрос программы вводит имя и возраст. Так вот. Когда в методе сэттер идет проверка на пустое имя (так же как и на отрицательный возраст). Здесь, как-бы, нужно зациклить, пока пользователь не введет что-то адекватное, так?. А как это сделать, допереть не могу. Посоветуйте, пожалста!)))
объясните, зачем нужен геттер, если в сеттере уже все возвращается? Не пойму до конца сути. Мне кажется все эти манипуляции можно провести в одном методе
сеттер = для присваивания переменной значения, только через метод, а не напрямую. этот метод не возвращает значение методу, а только присваивает значение переменной. геттер = для пользования этим значением в методе main. Если что, пусть поправят, я так это вижу.
В сеттере ничего не возвращается (это и немудрено, так как в качестве типа возвращаемого значения мы указываем пустоту, то бишь, void), он нужен лишь для присваивания какого-значения. А если нам нужно вытянуть значение из переменной класса, к примеру, для вывода в методе System.out.println(), мы должны использовать get-метод.
В названии видео есть слово "Инкапсуляция", но что это - так и не услышал. Только пару раз между делом в тексте прозвучало. Про сеттерны\геттерны тоже как-то расплывчито понятие в уроке, для меня, было. До этого 17 уроков всё ок.
на шестндцатой минуте: "в этом основная идея инкапсуляции. вы должны максимально ограничивать свои поля от других классов, то есть ваши поля были видны только в пределах класса." всё, то делалось в этом видео и есть инкапсуляция.
Здравствуйте, хотел бы задать вопрос. Я видел, что люди используют просто void, а иногда public void. В какой ситуации нужно использовать void. И чем void отличается от public void.
Если не указать статус доступа (public, private) То будет установлен доступ по умолчанию (package). Этот тип доступа шире чем private , но строже, чем public и protected. Если у поля тип доступа - package , то обращаться к нему могут объекты классов из того же пакета, что и класс, содержащий данное поле.
хотела спросить , а почему мы использовали слово public рядом методах в классе Person ? Ведь в предыдущих уроках эти методы были без этого слово public
Наиль, подскажите, пожалуйста, почему выводится не "вы ввели некорректный возраст", а 0 при вызове метода .getAge, то же самое с .getName, почему null, а не сообщение sout("вы ввели некорректное имя")?
Еще удобно помечать synchronized setName и speak для избежания коллизий. А вот на счет максимально инкапсулировать не согласен. На последнем месте работы зомбодебилы инкапсулировали у класса Point поля x y. Их спрашиваешь зачем почему. Тык мык мычат чего то вот таких видосов насмотрелись
Регистрируйтесь на курс "Продвинутая Java": ruclips.net/video/rRe1vT0SDD8/видео.html
Практикуйтесь в написании Java кода: java-marathon.tilda.ws
привет подскажи разве 1 метод не делает то что делают два других. но более компактнее 1) String name (String x) {
name = x;
return name;
}
----------------------------------------
2) void name1(String x) {
name = x
}
3) String name2() {
return name
}
скажите пожалуйста где можно попрактиковаться по этим темам?
Только здесь получил ясное представление о геттерах и сеттерах. Огромное тебе спасибо, добрый человек, за твой труд!
+Alexandr Evstratenko Пожалуйста!
Тип данных в параметрах метода, указывает на то, значение какого типа данных, метод может принять от объекта на хранение. Да, и еще важно понять, что поля - характеристики объекта, методы - средства работы с полями, а сам объект - immutable. ) В этом суть ООП. Прекрасный курс. Спасибо.
Видео уже 2.5 года, но только у этого Человека я понимаю ВСЕ темы которые меня интересуют, спасибо за труды!
Видео уже 6 лет, и всё тоже что и у вас) Молодец парень, хорошие видео сделал, спасибо.
@@Serge_g900 жаль, что год уже видосы не выходят(
Уже 7 лет прошло, а лучше так никто и не объясняет, классика в общем)
@@Serge_g900 8
Уже 8 лет прошло, видео все же актуальна и легкое к пониманию. Алишев очень хороший педагог
Не перестаю радоваться что нашел этот канал! Все замечательно, спасибо за уроки!
можно добавить что например в IDEA при помощи нажатия alt + ins можно автоматические создавать геттеры и сеттеры
только не забудьте ввести переменные!
Прекрасное представление по всем темам.Разобрался сразу с теми вопросами,в котрых плавал(вызовы методов,void,return).Огромное спасибо,очень стоящий курс!
БРО, ТЫ ПРОСТО ЛУЧШИЙ
Я УЖЕ ДУМАЛ ЗАБРОСИТЬ ОБУЧЕНИЕ
Почему я не знал этого канала 5 лет назад 👍 .... Спасибо большое, как ты объясняешь beckand с примером со стороны пользовательский ЭТО ВООБЩЕ БОМБА👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍
Подписался. Господи, после всяких "преподавателей" твои уроки это просто идеал преподавания! Вот так просто и своими словами объясняешь, я лишь повторяю в идее и все запоминается и понимается.
2021 на дворе) что-то принципиально поменялось?) вроде все так же актуально) спасибо за уроки!!!
Шикарная подача материалла! Браво!!! 10 из 10. Лучшего курса я пока еще не видел! Успехов тебе. И пожалуйста продолжай дальше записывать видео!🤝🤝🤝
Первый раз понял что такое сеттеры и геттеры. До этого смотрел и читал разное, но на живых примерах - впервые изложено для понимания, а не для "так надо". СПАСИБО!
Решил перейти на Java с JS. благодаря вам процесс дается гораздо проще)
Спасибо вам большое!
тоже с жс перешёл на джаву, неудобно , но прикольно
Как всегда почерпнул много того, что не замечал в других источниках! Спасибо!
Спасибо огромное, прочитал книгу и пару статей, понял инкапсуляцию только благодаря вашему видео
крч, всем тем, кто уже пытался врубиться в джаву и не смог, но имеет сумбур знаний, вам на этот канал, очень хорошо мозги прочищает и расставляет всё по полочкам).
Все очень понятно и доступно. Спасибо за проделанную колоссальную работу по созданию обучающего курса) Я думаю, многим начинающим и не только разработчикам информация будет полезной
Очень круто обьяснил. В твоих уроках есть то чего нету в других. Обьянение того зачем это нужно и где этоприменяется. Сделай еще плиз курс пет проэкты. Что делать? Как делать? Зачем? Что на них ты должен научится? Что обычно делают в компаниях? Что пишут регулярно? А что не так часто? Что нужно знать чтобы понять как решить ту или иную проблему если ты работаешь как джава разработчик на андроид или на ентерпрайз. Будет реально полезно. И если будешь делать проэкты объясни почему именно он? Чем он нам поможет для работы и т.д. Спасибо тебе. Учить это твое. Продолжай в том же духе и монетизируй
Стараюсь конспектировать все твои уроки чтоб быстрее понять и запомнить. Про геттеры и сеттеры на ютубе пересмотрел около 10 видосов разных. Я так и не понял что это и зачем нужны. Тут я даже ничего не записывал, ибо это оказалось настолько простой и понятной вещью
Грамотно и лаконично все рассказал - пятерка в дневник)) Спасибо!!
Так, в общем мне немного подсказали и таки получилось написать так, чтобы прога запрашивала и имя и возраст до тех пор, пока не будет адекватного ответа. Спасибо автору еще раз. Очень доходчиво излагаете!!! Если кому интересно, то код ниже:
-------------------------------------------------
import java.util.Scanner;
public class Set_Get {
public static void main(String[] args) {
String name;
int age;
Scanner scan = new Scanner(System.in);
Identification person = new Identification();
while(!person.getIsNameCorrect()){
System.out.println("Введите Ваше имя: ");
name = scan.nextLine();
person.setName(name);
}
while(!person.getIsAgeCorrect()){
System.out.println("Введите Ваш возраст: ");
age = scan.nextInt();
person.setAge(age);
}
System.out.println("Вас зовут - " + person.getName() + ". Ваш возраст - " + person.getAge() + " лет. Вы можете войти!!!");
}
}
class Identification{
private String userName;
private int userAge;
private boolean isNameCorrect = false;
private boolean isAgeCorrect = false;
public void setName(String n){
if (n.isEmpty()){
System.out.println("Вы ввели пустое имя!!! Введите имя еще раз!!!");
}
else{
userName = n;
isNameCorrect = true;}
}
public String getName(){
return userName;
}
public Boolean getIsNameCorrect(){
return isNameCorrect;
}
public void setAge(int a){
if (a
Дописала к проверке на
Очень крутые уроки. Иногда захожу на другие сайты, чтобы расширить кругозор по той или иной теме, но "костяк" инфы усваиваю здесь. Спасибо!
Классный пример! Всё стало понятно и очень логично! Спасибо!
Спасибо большое! Ты нечто! А то другие показывают, как делать, терминами объясняют, зачем инкапсуляция нужна. А на деле нифига не ясно
Алишев, ты очень доходчиво рассказал!
Нормально зашло! Везде вокруг, да около, а тут, как обычно, очень понятно!
Благодарю от души. Ясно и чётко всё объясняешь а главное аналогии понятные.
С П А С И Б О !
Ну хоть что-то начало доходить про геттер и сеттер. Спасибо огромное
Реально все четко. Спасибо. Буду дальше смотреть твои уроки
и чуть не забыл - конечно же лайк. Жаль что два за раз не могу поставить)
Куплю ваши курсы, очень уж клаасно объясняете. Спасибо❤
Страничка выглядит отлично,все очень хорошо,спасибо за анонс.Искал страничку для заработка и снова нашел,СПАСИБО
Спасибо большое за подробные уроки. Еще большой плюс в том, что произношение английских слов чистое, привыкаешь называть все правильно)
Это да, но автор все время называет null как нУл, хотя правильно нАл.
@@АлександрЧ-у6к ноал, а не нал
Так классно объясняешь. Респект тебе!!!!!!!! Успехов!
Спасибо сначало не понимал зачем оно мне , а теперь понял !
Почему так мало лайков? Такое ощущение, будто человек записывал видео, когда их ещё не существовало.
Потрясающее объяснение 👍
Спасибо, очень много узнал по Вашим видео
Ты молодец всё очень подробно до мельчайших деталей обьесняешь
Молодец мужик, очень клево все объясняешь.
Спасибо за видео! Всё-таки, для меня, когда человек объясняет и показывает на примере лучше доходит. А то уже и в HeadFirst прочитал и в раше прошел, и так и не дошло)
Api это application programming interface пишу чтобы не путать начинающих, спасибо за видео
Очень хорошо объясняете, речь поставлена) Приятно слушать) Спасибо
Спасибо! Очень просто и понятно!
Спасибо, по полочкам разложил!
Просто лучший, очень полезно и классно, всем буду советовать канал и ваши книги
автор видео писал книги?
Понятные и очень просто видео, спасибо большое! :)
Очень круто подал информацию. Спасибо
Супер уроки: кратко и понятно!
Отличный урок) Благодарю!
Спасибо большое! Отличные уроки!
Благодарю! Очень полезно!
я не могла понять раньше эти сет и гет потому что не понимала зачем по сто раз эти имена создавать. а теперь я понимаю что есть еще юзеры - поэтому мы должны быть в состоянии поменять внутри своей программы имена полей, НО что бы программа продолжала работать у других людей. что бы мои внутрение редакции не попортили работу программы у третьих лиц. .... если я верно поняла)
Спасибо! Все предельно понятно. Идеальная логика изложения. Молодец!
Спасибо вам :)
спасибо за доходчивое разъяснение
Отличный урок! Спасибо.
Огромное спасибо! Просто и понятно.
Серьезно??? так все просто )) Спасибо огромное пожалуйста снимай ролики, ты распиаришься полюбому))
Спасибо за работу!
Вот ТЕПЕРЬ все стало понятно.
ммм... а я вот люблю задавать пустые имена, но возможностей все меньше и меньше. Спасибо за ваш курс!
Спасибо, разобрался наконец)
Наконец-то, что-то стоящее! А то на всех каналах картавые умные дядьки объясняют, что хер поймёшь?
Респект, чувак и уважуха тебе!!!
ну респект и уважуха понятно, но чувак ему зачем???
отличное обьяснение, все супер
Спасибо за объяснение
какая понятная джава) спасибо)
Сапсибо alishev и кстати мог бы сразу про Refactor рассказать походу или Shift + F6
Добрый день! Cкажите пожалуйста где можно попрактиковаться по этим темам?
Тоже учусь по этим видосам все доступно. Мелочей правда мало, Нет всех подробностей. Лучше иметь под рукой какой нибудь учебник дополнительно.В общем респект, не зря тратишь время.
+Дмитрий Дементьев Спасибо!
Большая благодарность за труды по обучению недоразвитых) Но, если перед записью ролика составить себе на бумажке план лекции, то изложение еще улучшится.
В шарпе идеально сделаны геттеры и сеттеры
В данной теме, по факту, про инкапсуляцию ни слова не сказано)
Кроме того что упоминается прайват.
Инкапсуляция - сокрытие элементов путем изменения\добавления модифакторов доступа. Это более обширная тема, чем прописывание сеттеров и геттеров.
В остальном, спасибо за видео)
согласен, ни о чем, если честно...
// Основная идея инкапсуляции вы должны максимум ограничить свои поля от другиз классов
Наконец хоть кто-то по английски правильно говорит!
Почему не так:
public void setName(String name){
this.name = name;
канал отличный
Спасибо за курс. Неплохо было бы дать определение "сеттера" и "геттера" и объяснить в каком они формате записываются, то есть почему пишется "setName", синтаксис. А то приходится догадываться интуитивно.
set - назначить, get - получить, при минимальном знании английского это становится очевидно)
скажите пожалуйста чем отличается класс который мы создали в одном файле и класс на который мы выделяем отдельный файл
Большущее спасибо! :) каша ушла )))
а что если в конструкторе при создании объекта указывать те же имя и возраст, получается проверку надо в конструкторе прописывать?
это адекватный способ или как?)
как проверять правильность введенных данных если по условию стоит установка данных через конструктор, или это бред?)
Наиль, скажи, в твоем курсе по ссылке есть стримы? Я просто только лямбда выражения нашел!
А вдруг это не совсем умный пользователь вместо имени мат напишет, это нам в сеттере целую партянки проверок нужно писать. Да и возрос же не может быть 0 или 200 лет. Дела... Лайк как всегда, за урок спасибо.
"пользователь" вообще не будет трогать код или что-то там смотреть. Код будете юзать только ты, либо другой программист. Автор использует слово "пользователь", чтобы было хоть немного понятно, зачем нужны геттеры и сеттеры, для тех, кто никогда с этим не сталкивался.
Бро, вместо ручного переименовывания переменных в intelliJ есть команда "Refactor" в контекстном меню кликая на переменную. С её помощю переименовывается переменная во всем коде
Ну норм совет в ролик шестилетней давности. Некропостер
Второй момент-зачем задавать значение полей, если есть ограничения на их вид. Можно же параметры все через метод передавать? И в методе они уже проверяются и возвращаются статусы
спасибо!
Автору как всегда респект!! А вопрос такой. Я тоже сделал вариант со сканнером, когда пользователь на запрос программы вводит имя и возраст. Так вот. Когда в методе сэттер идет проверка на пустое имя (так же как и на отрицательный возраст). Здесь, как-бы, нужно зациклить, пока пользователь не введет что-то адекватное, так?. А как это сделать, допереть не могу. Посоветуйте, пожалста!)))
Вот это да вот это другое дело
Спасибо!
Здравствуйте, а можно ли назвать инкапсуляцией то что мы делали на прошлом уроке? Мы же не обращались на прямую к переменным из метода main.
отлично
объясните, зачем нужен геттер, если в сеттере уже все возвращается?
Не пойму до конца сути. Мне кажется все эти манипуляции можно провести в одном методе
сеттер = для присваивания переменной значения, только через метод, а не напрямую. этот метод не возвращает значение методу, а только присваивает значение переменной.
геттер = для пользования этим значением в методе main.
Если что, пусть поправят, я так это вижу.
В сеттере ничего не возвращается (это и немудрено, так как в качестве типа возвращаемого значения мы указываем пустоту, то бишь, void), он нужен лишь для присваивания какого-значения. А если нам нужно вытянуть значение из переменной класса, к примеру, для вывода в методе System.out.println(), мы должны использовать get-метод.
В названии видео есть слово "Инкапсуляция", но что это - так и не услышал. Только пару раз между делом в тексте прозвучало.
Про сеттерны\геттерны тоже как-то расплывчито понятие в уроке, для меня, было. До этого 17 уроков всё ок.
на шестндцатой минуте:
"в этом основная идея инкапсуляции. вы должны максимально ограничивать свои поля от других классов, то есть ваши поля были видны только в пределах класса."
всё, то делалось в этом видео и есть инкапсуляция.
в плейлисте канала видео в обратном порядке воспроизводится, как задать нужную последовательность?
Шëл 2023 год, среды разработки не меняются, и языки программирования не меняются...
В 2024 все также )
@@EdgeOfDoomв 2025 все также)
Изменяются, выходят новые версии например
Спасибо
Здравствуйте, хотел бы задать вопрос.
Я видел, что люди используют просто void, а иногда public void. В какой ситуации нужно использовать void. И чем void отличается от public void.
Если не указать статус доступа (public, private)
То будет установлен доступ по умолчанию (package).
Этот тип доступа шире чем private , но строже, чем public и protected.
Если у поля тип доступа - package , то обращаться к нему могут объекты классов из того же пакета, что и класс, содержащий данное поле.
a почему, когда вы писали set и get, то начинали писать "public"? этот метод же и так работает
хотела спросить , а почему мы использовали слово public рядом методах в классе Person ? Ведь в предыдущих уроках эти методы были без этого слово public
public для того чтобы можно было использовать и обращаться к данному метод в любой точке программы или пакета.
Наиль, подскажите, пожалуйста, почему выводится не "вы ввели некорректный возраст", а 0 при вызове метода .getAge, то же самое с .getName, почему null, а не сообщение sout("вы ввели некорректное имя")?
выводится. самой первой строчкой.
а потом отрабатывают методы гетнейм и гетеэдж. там уже выводится значение переменных на данный момент.
Добрый день , можете подсказать что у вас за тема в ИнтелиДжей ?
дефолт даркула
почему геттер сеттер методы не нельзя объединить?
public int setgetWeight(int x)
{
weight=x;
return weight;
}
Еще удобно помечать synchronized setName и speak для избежания коллизий. А вот на счет максимально инкапсулировать не согласен. На последнем месте работы зомбодебилы инкапсулировали у класса Point поля x y. Их спрашиваешь зачем почему. Тык мык мычат чего то вот таких видосов насмотрелись