background top icon
background center wave icon
background filled rhombus icon
background two lines icon
background stroke rhombus icon

Скачать "Java для начинающих. Урок 18: Инкапсуляция. Сеттеры и геттеры."

input logo icon
Обложка аудиозаписи
Подождите немного, мы готовим ссылки для удобного просмотра видео без рекламы и его скачивания.
console placeholder icon
Теги видео
|

Теги видео

Инкапсуляция
джава
ява
сеттеры
геттеры
java для начинающих
Encapsulation (Programming Language Paradigm)
Programming Language (Software Genre)
Субтитры
|

Субтитры

subtitles menu arrow
  • enАнглийский
Скачать
00:00:02
про методы мы научились создавать
00:00:05
учились возвращать значение и научились
00:00:09
передавать им аргументы и на этом уроке
00:00:11
мы знаем про инкапсуляции что это такое
00:00:13
и зачем это надо у нас есть класс песен
00:00:17
с прошлых уроков и у нас есть класс
00:00:19
другой классный объект в котором методе
00:00:23
main мы создаем объект класса песен и
00:00:25
передаем в поля вот эти значения и что
00:00:31
плохого в этой программе
00:00:32
а плохо то что мы передаем мы обращаемся
00:00:35
к полям этого класса через точку то есть мы
00:00:38
напрямую обращаемся вот к этим полям
00:00:42
сейчас я постараюсь продемонстрировать
00:00:44
недостатки такого подхода представьте
00:00:47
что вы программисты вы пишете большую
00:00:49
программу которая будет использоваться
00:00:51
конечным потребителем
00:00:52
не программистом обычным человеком и
00:00:55
представьте что вот этот класс то есть
00:00:58
это вот ваша программа которую вы
00:01:00
написали а здесь уже пользователь
00:01:04
конечный обращается к вашему созданном
00:01:07
классу и использует его каким-то образом
00:01:10
так в чем недостаток в чем недостаток
00:01:13
прямого обращения к вашим полям а в том
00:01:15
что все таки эти поля они должны быть
00:01:20
скрыты от пользователя потому что вы с
00:01:23
ними проводятся какие-то действия внутри
00:01:24
класса и эти данные они должны быть для
00:01:30
внутреннего использования почему потому
00:01:33
что например вы можете захотеть изменить
00:01:35
имя вашего в поле потому что вам это
00:01:39
понадобилось
00:01:41
сделать во внутренней работе класса но
00:01:45
при этом ваш конечный пользователь уже
00:01:48
не сможет использовать это поле потому
00:01:51
что если вы измените например здесь у
00:01:53
вас по логике классу уже не подходят и
00:01:56
my name вам подходит имя юзер например
00:01:59
если вы это сделаете то ваш пользователь
00:02:02
он не сможет использовать это поле
00:02:07
другой пример например ваш пользователь
00:02:11
не совсем умный человек и он хочет
00:02:14
задать пустой имя
00:02:18
вот у вас для работы этого класса просят
00:02:21
вам нужно не пустое имя и вам нужно
00:02:23
естественно какой-то положительный тоже
00:02:25
не пустое положительные не пустое
00:02:27
числовое значение для возраста ваш
00:02:30
пользователь задает пустое именно пример
00:02:33
пустое имя и задает отрицательный
00:02:36
возрасту на прям минус пять лет если вы
00:02:39
запустите эту программу давайте мы
00:02:41
запустим здесь мы выведем красен . speak
00:02:47
если мы это допустим та та все быть
00:02:52
работать то есть нет ни имени есть
00:02:56
отрицательный возраст но программа
00:02:58
работает и работает она опять и теплоту
00:03:00
и причине что пользователь может
00:03:02
напрямую обращаться к полям класса
00:03:05
чтобы мы сделали если бы он обращался не
00:03:09
напрямую а через методы в эти методы мы
00:03:12
могли бы поместить проверку то есть
00:03:14
прежде чем мы присвоим этим полям
00:03:18
значение мы в этих методов методах
00:03:21
проверь и либо положительные лет
00:03:23
значения если мы говорим о возрасте или
00:03:25
не пустое лет и значение если мы говорим
00:03:27
о об имени и вот такие методы в которых
00:03:30
мы проверяем которые эти методы служат
00:03:36
такой прослойка между вашими полями и
00:03:40
между конечным пользователям эти методы
00:03:42
называются сеттеры гитары и сейчас мы их
00:03:45
создадим
00:03:46
вообще c3 гитары это стандартное такое
00:03:51
соглашение и они используются в любом
00:03:54
типе этой это
00:03:56
applications public интерфейс по моему в
00:03:59
общем если простыми словами то и пять
00:04:02
это тот интерфейс через который
00:04:04
пользователь получает доступ к
00:04:05
функционала программы и пользователя не
00:04:09
нужно знать как все работает внутри
00:04:11
пользователю вы должны давать только
00:04:13
какой-то интерфейс через который сможет
00:04:16
получать нужный функционал и
00:04:19
пользователь не должен трогать
00:04:20
внутреннее устройство программы
00:04:22
имя для этого мы не даем пользователю
00:04:26
доступ к самим переменным самим полям
00:04:28
класса модему доступ только к публичным
00:04:31
методом поэтому давайте вот эти поля
00:04:34
сделаем прорвать правят это ключевое
00:04:39
слово которое означает что это поле
00:04:42
доступно и видно только в пределах этого
00:04:46
класса и вы видите что как только мы
00:04:48
сделали переменную
00:04:51
name правят она
00:04:54
раз уже перестала быть доступной в
00:04:57
других классов то есть если вы ставите
00:05:00
ключевой слова про его перед вашим полем
00:05:02
в классе то это поле теперь отныне
00:05:05
доступна только в пределах этого класса
00:05:08
в частности в пределах класса персон в
00:05:11
пределах этого класса и
00:05:12
видите мы можем использовать эту
00:05:14
перемену изменять и использовать
00:05:16
но в других классах мы этого делать не
00:05:19
можем если мы наведем то мы увидим
00:05:21
ошибку name has provide access in просит
00:05:26
то есть на ему настраивать и мы его не
00:05:28
можем использовать в эти мы также делаем
00:05:31
право про его и which provide и увидите
00:05:36
что мы теперь не можем использовать и
00:05:37
печь так что теперь пользователь конечно
00:05:40
не может получить прямого доступа к
00:05:41
полям поэтому это мы можем стереть как
00:05:47
же теперь пользователь будет получать
00:05:49
доступ к этим полям как он будет
00:05:51
назначать их как он будет получать
00:05:53
значению получать он значение будет
00:05:56
через сито и гетры для этого давайте мы
00:06:01
сначала сделаем сад арбитр для имени
00:06:05
а потом сделаем для возраста для этого
00:06:08
мы пишем public white сытным параметрах
00:06:17
мы пишем string name string пусть будет
00:06:23
озерный и здесь мы приравниваем наше
00:06:29
поле этому значению которое пришло у нас
00:06:32
в параметрах время равняется username
00:06:41
теперь у нас основан может может
00:06:45
назначить
00:06:46
имя с помощью этого метода передав мы в
00:06:50
параметры строку и в этом методе у нас
00:06:55
этому полю
00:06:57
назначается назначается строка
00:07:00
переданная передано их параметр и
00:07:03
обратите внимание на то что у нас метод
00:07:05
white потому что ничего не возвращает
00:07:07
он только назначает но другой метод get
00:07:11
у нас будет с типом возвращаемого
00:07:15
значения string потому что он будет
00:07:17
возвращать строку
00:07:19
public string пьет name with name пустые
00:07:23
параметры
00:07:27
при вызове этого метода у нас будет
00:07:30
возвращаться строка
00:07:31
который является полем в этом классе
00:07:35
давайте сделаем такие же методы для поля
00:07:39
и public would set эйч
00:07:45
здесь параметрах у нас уже теперь не
00:07:48
string а int int юзер речь здесь тоже
00:07:55
нужно сделать так вот юзер речь и в
00:08:01
методе у нас эйч равняется юзер речь
00:08:08
опять таки воет здесь int и метод public
00:08:14
int int и потому что мы будем возвращать
00:08:18
целочисленную со численное значение
00:08:21
public and get rich bitch
00:08:28
у нас четыре метода в каждый из них
00:08:30
означает
00:08:32
в каждом и вот пара
00:08:35
метода пару методов предназначенную для
00:08:38
этого поля и пара методов
00:08:40
предназначенных для 2 поля теперь в
00:08:42
другом классе
00:08:44
можем получить доступ к этим полям через
00:08:48
эти методы и давайте попробуем снова .
00:08:58
set name какое-то имя
00:09:03
ps one one .
00:09:07
сэт эйч любое какое-то число и ps one
00:09:13
that speak у нас вернет вызовет метод
00:09:17
который у нас будет три раза
00:09:19
приветствовать и выдавать возраст и
00:09:22
увидите что у нас во первых удалось имя
00:09:27
и у нас сдалось
00:09:31
задался возраст с помощью этих методов
00:09:34
также мы можем вернуть имя и возраст с
00:09:38
помощью соответствующих им
00:09:39
tagged методов one .
00:09:43
get rich и давайте здесь мы напишем что
00:09:47
мы выведем на экран а первых и напишем
00:09:49
что
00:09:53
выводим значение в моем методе
00:10:01
так так так
00:10:09
и здесь мы делаем тоже самое
00:10:23
запустим
00:10:28
вот на с помощью гитлеров те те
00:10:31
переменные которые мы назначали с
00:10:33
помощью сидоров с помощью гитарах мы их
00:10:35
вывели в другом классе в чем в чем плюс
00:10:40
такого подхода а в том что теперь мы
00:10:43
можем например
00:10:44
внутри класса мы можем изменить имя сны
00:10:48
ему например на какой угодно на
00:10:50
не знаю логин например какое угодно имя
00:10:56
и здесь пользователи уже не заметит
00:10:58
этого потому что внутри этого класса в
00:11:00
методах мы просто изменим внутреннюю
00:11:04
логику внутреннюю логику нашего класса и
00:11:06
вы видите что для пользователя ничего не
00:11:09
изменилось он обращается к этой
00:11:12
внутренней переменной по такому же
00:11:14
классу но внутренний переменная может
00:11:17
как угодно изменяться если мы запустим
00:11:20
то так так так вот логин изменяем внутри
00:11:26
класса еще одну переменную и спускаем и
00:11:32
увидите что ничего не изменилось помимо
00:11:38
этого мы можем в этих методах в сатирах
00:11:40
мы можем проверять корректность
00:11:44
вода то есть например нашему
00:11:49
пользователя нельзя водить пустое имя
00:11:50
потому что у человека должна быть не
00:11:52
пустое имя для этого мы здесь проверяем
00:11:55
username
00:11:56
давайте мы вернем обратно на им там уж
00:11:58
тетки на им более логично name is тоже
00:12:04
не знаем и здесь мы будем проверять не
00:12:12
пустой или нам пользователь подал
00:12:14
имя на вход для этого мы вызовем метод
00:12:18
is empty который доступен около со
00:12:21
string и этот метод у нас возвращать
00:12:23
true если у нас строка пуста я за
00:12:28
возвращает falls если строка не пуста
00:12:32
поэтому если user is empty мы печатаем
00:12:35
ошибку ты ввёл пустое имя корпус
00:12:40
мое имя элс в обратном случае элс
00:12:47
присваиваем юзер username так здесь у
00:12:53
нас фьюзера name is empty так здесь мы пишем
00:13:00
и вот теперь у нас пользователь не
00:13:04
сможет задать пустое имя потому что в
00:13:07
центре мы инкапсулируем нужную логику
00:13:12
которая проверила которые проверят
00:13:14
корректность воду и давайте тоже самое
00:13:18
сделаем для set it if you zerohedge то
00:13:24
есть тот возраст который был подан
00:13:25
больше нуля строго больше нельзя то
00:13:30
присваиваем не давайте сделаем если
00:13:33
меньше нуля то выводим ошибку то выводим
00:13:38
ошибку пишем south
00:13:45
некорректный так возраст должен быть
00:13:48
возраст должен быть положительным элс
00:13:54
присваиваем возраст если мы сейчас
00:13:58
запустим то ничего не изменится давайте
00:14:01
мы перестанем вызывать этот speak и
00:14:05
вызовем так видят name и
00:14:09
+ онлайн все допустим ничего не
00:14:18
изменилось такое же имя такой же возраст
00:14:21
но если мы сейчас попробуем присвоить
00:14:28
пустое имя и запустим то у нас во первых
00:14:34
у нас программа выдаст ошибку и вы
00:14:41
видите что здесь ну значит
00:14:43
переменной name не я не присвоила
00:14:47
значение которое было подано то же самое
00:14:49
мы сделаем с возрастом если мы зададим
00:14:51
пустой возраст точнее пустой а
00:14:53
отрицательный то у нас программа выдаст
00:15:02
сообщение о том что возраст должен быть
00:15:04
положительным в этом основная день
00:15:07
капитуляция
00:15:08
еще раз вы должны максимально
00:15:10
ограничивать свои поля от других классов
00:15:13
то есть вы должны делать так чтобы по
00:15:15
возможности чтобы ваши поля были видны
00:15:18
только в пределах одного класса класса в
00:15:21
котором эти поля
00:15:24
задекларированы и доступ к этим полям вы
00:15:27
должны осуществлять осуществлять через
00:15:28
сеттер и
00:15:29
и через геттеры

Описание:

МОЙ НОВЫЙ КУРС: https://www.youtube.com/watch?v=rRe1vT0SDD8 ПРАКТИКА НА JAVA: https://java-marathon.tilda.ws/ Реклама и сотрудничество: [email protected]

Готовим варианты загрузки

popular icon
Популярные
hd icon
HD видео
audio icon
Только звук
total icon
Все форматы
* — Если видео проигрывается в новой вкладке, перейдите в неё, а затем кликните по видео правой кнопкой мыши и выберите пункт "Сохранить видео как..."
** — Ссылка предназначенная для онлайн воспроизведения в специализированных плеерах

Вопросы о скачивании видео

mobile menu iconКак можно скачать видео "Java для начинающих. Урок 18: Инкапсуляция. Сеттеры и геттеры."?mobile menu icon

  • Сайт http://unidownloader.com/ — лучший способ скачать видео или отдельно аудиодорожку, если хочется обойтись без установки программ и расширений. Расширение UDL Helper — удобная кнопка, которая органично встраивается на сайты YouTube, Instagram и OK.ru для быстрого скачивания контента.

  • Программа UDL Client (для Windows) — самое мощное решение, поддерживающее более 900 сайтов, социальных сетей и видеохостингов, а также любое качество видео, которое доступно в источнике.

  • UDL Lite — представляет собой удобный доступ к сайту с мобильного устройства. С его помощью вы можете легко скачивать видео прямо на смартфон.

mobile menu iconКакой формат видео "Java для начинающих. Урок 18: Инкапсуляция. Сеттеры и геттеры." выбрать?mobile menu icon

  • Наилучшее качество имеют форматы FullHD (1080p), 2K (1440p), 4K (2160p) и 8K (4320p). Чем больше разрешение вашего экрана, тем выше должно быть качество видео. Однако следует учесть и другие факторы: скорость скачивания, количество свободного места, а также производительность устройства при воспроизведении.

mobile menu iconПочему компьютер зависает при загрузке видео "Java для начинающих. Урок 18: Инкапсуляция. Сеттеры и геттеры."?mobile menu icon

  • Полностью зависать браузер/компьютер не должен! Если это произошло, просьба сообщить об этом, указав ссылку на видео. Иногда видео нельзя скачать напрямую в подходящем формате, поэтому мы добавили возможность конвертации файла в нужный формат. В отдельных случаях этот процесс может активно использовать ресурсы компьютера.

mobile menu iconКак скачать видео "Java для начинающих. Урок 18: Инкапсуляция. Сеттеры и геттеры." на телефон?mobile menu icon

  • Вы можете скачать видео на свой смартфон с помощью сайта или pwa-приложения UDL Lite. Также есть возможность отправить ссылку на скачивание через QR-код с помощью расширения UDL Helper.

mobile menu iconКак скачать аудиодорожку (музыку) в MP3 "Java для начинающих. Урок 18: Инкапсуляция. Сеттеры и геттеры."?mobile menu icon

  • Самый удобный способ — воспользоваться программой UDL Client, которая поддерживает конвертацию видео в формат MP3. В некоторых случаях MP3 можно скачать и через расширение UDL Helper.

mobile menu iconКак сохранить кадр из видео "Java для начинающих. Урок 18: Инкапсуляция. Сеттеры и геттеры."?mobile menu icon

  • Эта функция доступна в расширении UDL Helper. Убедитесь, что в настройках отмечен пункт «Отображать кнопку сохранения скриншота из видео». В правом нижнем углу плеера левее иконки «Настройки» должна появиться иконка камеры, по нажатию на которую текущий кадр из видео будет сохранён на ваш компьютер в формате JPEG.

mobile menu iconСколько это всё стоит?mobile menu icon

  • Нисколько. Наши сервисы абсолютно бесплатны для всех пользователей. Здесь нет PRO подписок, нет ограничений на количество или максимальную длину скачиваемого видео.