Регистрируйтесь на курс "Продвинутая Java": ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-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 }
Тип данных в параметрах метода, указывает на то, значение какого типа данных, метод может принять от объекта на хранение. Да, и еще важно понять, что поля - характеристики объекта, методы - средства работы с полями, а сам объект - immutable. ) В этом суть ООП. Прекрасный курс. Спасибо.
Прекрасное представление по всем темам.Разобрался сразу с теми вопросами,в котрых плавал(вызовы методов,void,return).Огромное спасибо,очень стоящий курс!
Все очень понятно и доступно. Спасибо за проделанную колоссальную работу по созданию обучающего курса) Я думаю, многим начинающим и не только разработчикам информация будет полезной
Первый раз понял что такое сеттеры и геттеры. До этого смотрел и читал разное, но на живых примерах - впервые изложено для понимания, а не для "так надо". СПАСИБО!
Почему я не знал этого канала 5 лет назад 👍 .... Спасибо большое, как ты объясняешь beckand с примером со стороны пользовательский ЭТО ВООБЩЕ БОМБА👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍
Подписался. Господи, после всяких "преподавателей" твои уроки это просто идеал преподавания! Вот так просто и своими словами объясняешь, я лишь повторяю в идее и все запоминается и понимается.
Стараюсь конспектировать все твои уроки чтоб быстрее понять и запомнить. Про геттеры и сеттеры на ютубе пересмотрел около 10 видосов разных. Я так и не понял что это и зачем нужны. Тут я даже ничего не записывал, ибо это оказалось настолько простой и понятной вещью
Очень круто обьяснил. В твоих уроках есть то чего нету в других. Обьянение того зачем это нужно и где этоприменяется. Сделай еще плиз курс пет проэкты. Что делать? Как делать? Зачем? Что на них ты должен научится? Что обычно делают в компаниях? Что пишут регулярно? А что не так часто? Что нужно знать чтобы понять как решить ту или иную проблему если ты работаешь как джава разработчик на андроид или на ентерпрайз. Будет реально полезно. И если будешь делать проэкты объясни почему именно он? Чем он нам поможет для работы и т.д. Спасибо тебе. Учить это твое. Продолжай в том же духе и монетизируй
крч, всем тем, кто уже пытался врубиться в джаву и не смог, но имеет сумбур знаний, вам на этот канал, очень хорошо мозги прочищает и расставляет всё по полочкам).
Спасибо за видео! Всё-таки, для меня, когда человек объясняет и показывает на примере лучше доходит. А то уже и в HeadFirst прочитал и в раше прошел, и так и не дошло)
я не могла понять раньше эти сет и гет потому что не понимала зачем по сто раз эти имена создавать. а теперь я понимаю что есть еще юзеры - поэтому мы должны быть в состоянии поменять внутри своей программы имена полей, НО что бы программа продолжала работать у других людей. что бы мои внутрение редакции не попортили работу программы у третьих лиц. .... если я верно поняла)
Так, в общем мне немного подсказали и таки получилось написать так, чтобы прога запрашивала и имя и возраст до тех пор, пока не будет адекватного ответа. Спасибо автору еще раз. Очень доходчиво излагаете!!! Если кому интересно, то код ниже: ------------------------------------------------- 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
Большая благодарность за труды по обучению недоразвитых) Но, если перед записью ролика составить себе на бумажке план лекции, то изложение еще улучшится.
Автору как всегда респект!! А вопрос такой. Я тоже сделал вариант со сканнером, когда пользователь на запрос программы вводит имя и возраст. Так вот. Когда в методе сэттер идет проверка на пустое имя (так же как и на отрицательный возраст). Здесь, как-бы, нужно зациклить, пока пользователь не введет что-то адекватное, так?. А как это сделать, допереть не могу. Посоветуйте, пожалста!)))
В данной теме, по факту, про инкапсуляцию ни слова не сказано) Кроме того что упоминается прайват. Инкапсуляция - сокрытие элементов путем изменения\добавления модифакторов доступа. Это более обширная тема, чем прописывание сеттеров и геттеров. В остальном, спасибо за видео)
Второй момент-зачем задавать значение полей, если есть ограничения на их вид. Можно же параметры все через метод передавать? И в методе они уже проверяются и возвращаются статусы
Тоже учусь по этим видосам все доступно. Мелочей правда мало, Нет всех подробностей. Лучше иметь под рукой какой нибудь учебник дополнительно.В общем респект, не зря тратишь время.
Спасибо за курс. Неплохо было бы дать определение "сеттера" и "геттера" и объяснить в каком они формате записываются, то есть почему пишется "setName", синтаксис. А то приходится догадываться интуитивно.
а что если в конструкторе при создании объекта указывать те же имя и возраст, получается проверку надо в конструкторе прописывать? это адекватный способ или как?) как проверять правильность введенных данных если по условию стоит установка данных через конструктор, или это бред?)
Бро, вместо ручного переименовывания переменных в intelliJ есть команда "Refactor" в контекстном меню кликая на переменную. С её помощю переименовывается переменная во всем коде
Наиль, подскажите, пожалуйста, почему выводится не "вы ввели некорректный возраст", а 0 при вызове метода .getAge, то же самое с .getName, почему null, а не сообщение sout("вы ввели некорректное имя")?
А почему бы нам сразу не передвать значение в Гетер. Т.е, например, передаем имя в getName, в котором name = введеное имя. И после возвращаем назначеное имя
Еще удобно помечать synchronized setName и speak для избежания коллизий. А вот на счет максимально инкапсулировать не согласен. На последнем месте работы зомбодебилы инкапсулировали у класса Point поля x y. Их спрашиваешь зачем почему. Тык мык мычат чего то вот таких видосов насмотрелись
А вдруг это не совсем умный пользователь вместо имени мат напишет, это нам в сеттере целую партянки проверок нужно писать. Да и возрос же не может быть 0 или 200 лет. Дела... Лайк как всегда, за урок спасибо.
"пользователь" вообще не будет трогать код или что-то там смотреть. Код будете юзать только ты, либо другой программист. Автор использует слово "пользователь", чтобы было хоть немного понятно, зачем нужны геттеры и сеттеры, для тех, кто никогда с этим не сталкивался.
Просто не выводить на экран с помощью метода System.out.println() значение полей age и name. Если проверка сеттера прошла отрицательно, то значение, которое задается в параметрах сеттера при вызове метода просто не будет присвоено полю объекта. 0 для переменной типа int и null для типа String всё равно останутся, так как это значения по умолчанию.
*Объясните пж, но ведь мы можешь и использовать для этого обычные методы без сеттеров и геттеров, я не понимаю суть get и set). Можно так же использовать обычный метод void который принимает значение и второй метод с возвращаемым значением, без всяких добавлений get и set*
это общепринятое название этих методов, чтобы другим программистам было понятно что это за метод. Разумеется, ты можешь написать эти методы без приписки "set" и "get", с точки зрения кода это не будет ошибкой, но с точки зрения читаемости твоего кода такое решение усложнит читаемость.
Здравствуйте, хотел бы задать вопрос. Я видел, что люди используют просто void, а иногда public void. В какой ситуации нужно использовать void. И чем void отличается от public void.
Если не указать статус доступа (public, private) То будет установлен доступ по умолчанию (package). Этот тип доступа шире чем private , но строже, чем public и protected. Если у поля тип доступа - package , то обращаться к нему могут объекты классов из того же пакета, что и класс, содержащий данное поле.
Вопрос. Так можно-же просто в самом начале изменить с name на login без геттеров/сеттеров. Человек же это не будет видеть так-как он видит только main. зачем тогда все это нужно?
Допустим у тебя 100 классов, в каждом из которых есть вызов поля name, потом по какой-то причине(ошибка из-за конфликтов переменных и тп), тебе надо изменить name -> login. Ты будешь вручную это делать? Лучше уж воспользоваться сетторами и гетторами, и изменить несколько строчек кода, в которых используеться это поле.
Здравствуйте Большое спасибо за Вашу огромную работу А вот ведь в классе Person метод speak() использует переменные name и age Не через геттеры (не getName и не getAge) Я так понимаю внутри класса всегда к переменным обращаемся на прямую без сеттеров и геттеров За раннее спасибо