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

Скачать "Занятие 7 (20.06.22) Java (основы) поток 32"

input logo icon
Теги видео
|

Теги видео

занятие
20.06.22
java
основы
поток
32
Субтитры
|

Субтитры

00:00:36
ис-7 получать
00:00:40
начинать смотреть под домашнему заданию
00:00:44
очень многие сбросили все хорошо и я
00:00:47
плюс попросила юля скинула свою домашку
00:00:52
например просто тому кого что-то там не
00:00:55
получилось вы можете самостоятельно
00:00:56
просто по разбирать да вот как у нее и
00:00:59
по поводу в целом понять какие то
00:01:01
домашки разбирают вместе с вами какие-то
00:01:03
скидывать хорошо потому что в принципе
00:01:06
под этими у всех нормально достаточно
00:01:08
зашло поэтому не буду прям разбирать но
00:01:12
отдать ему который будем учить сегодня
00:01:13
мы соответственно по ней будут
00:01:15
максимально правки однозначным японии
00:01:19
сто процентов мы уже будем разбирать на
00:01:21
следующем занятии домашние хорошо и
00:01:25
сегодня мы уже начнем мы тему
00:01:27
объектно-ориентированное
00:01:28
программирование понемножечку и
00:01:33
сегодняшнего дня ооп все правила уже
00:01:36
сегодня
00:01:41
понятно да уже можно
00:01:49
целом я начну делать вы можете сейчас не
00:01:53
делать это просто показывать и потом с
00:01:56
какого момента начнём делать вместе я
00:01:58
уже соответственно с каждым
00:02:07
с
00:02:12
тик
00:02:17
что такое объектно-ориентированное
00:02:19
программирование это тогда когда мы
00:02:21
представляем уже
00:02:23
методы и так далее вот все это в виде
00:02:26
одного определенного типа
00:02:31
что такое тип к примеру есть вот из
00:02:36
реалий до взять к примеру есть тип
00:02:39
официант официант этот тип и
00:02:42
этого типа могут быть объекты к примеру
00:02:46
вы зашли в ресторан и перед вами стоит
00:02:48
три объекта типа официант вам нужно
00:02:51
представлять теперь вот такой формат это
00:02:54
объекты три объекта типа официант два
00:02:58
объекта типа повар то есть они для вас
00:03:00
они одинаковые tubular это повар но это
00:03:03
объекты типа повар но как тип string как
00:03:07
тип int только это с не примитивные тип
00:03:10
перед вами стали так а это уже более
00:03:12
сложный да и соответственно у него тип
00:03:15
его называется повар или кипр
00:03:17
администратор или тип стол есть тип стон
00:03:22
и у вас 10 объектов типа стол в
00:03:25
ресторане вот это это и есть
00:03:27
объектно-ориентированное
00:03:28
программирование когда мы уже
00:03:31
как бы на объект и смотрим и объекты
00:03:34
между собой начинают взаимодействовать
00:03:36
что такое взаимодействие объектов это
00:03:39
тогда когда тип официант подошел с того
00:03:43
к объекту типа стол и передвинул его
00:03:47
тест про взаимодействовал два объекта
00:03:49
разных типов между собой могут
00:03:52
коммуницировать взаимодействовать
00:03:54
обмениваться информацией и так далее
00:03:56
самый важный момент это то что они могут
00:03:59
обмениваться информацией и обмениваться
00:04:01
информацией могут посредством методов не
00:04:05
тот это и есть способ коммуникации между
00:04:08
типами у одного типа один тип может 2
00:04:12
типа что-то вызвать предположим ты такой
00:04:15
то сделай вот это ты вот это и так далее
00:04:18
то есть вот это и то есть
00:04:19
объектно-ориентированный programmer не и
00:04:21
все полностью строится на этом
00:04:23
максимально нужно себе
00:04:26
представляешь этот визуальный мир сто
00:04:29
процентов представлять это что есть в
00:04:31
реалиях то и программируется никто
00:04:34
никогда не программирует что-то
00:04:35
нереальное 3 грн трехглавого тигра и так
00:04:39
далее никто не программирует
00:04:40
программируют то что есть в режиме реале
00:04:44
тогда будет более нормальной более
00:04:47
читабельный код все остальное то что вы
00:04:49
начнете себя делать таких вот непонятных
00:04:52
зверушек это будет всё кодом
00:04:54
год в итоге я вот вы представьте себе
00:04:57
что вы входите в проект и
00:05:01
в этом проекте работает три четыре пять
00:05:03
человек и соответственно один человек
00:05:06
начинает читать ваш код и он начинает
00:05:08
считаете вы тут пишете пришел при
00:05:10
угловые это у него вызван такой то метод
00:05:13
он думает чему что это вообще такое ну
00:05:15
то есть вот такой чтобы не было да вы
00:05:17
максимально-максимально
00:05:18
двигаете споре алям полностью по
00:05:21
реальным и
00:05:23
есть язык функциональной вот предположим
00:05:26
взять там java script он считается более
00:05:29
функциональный меня закону что такое
00:05:31
функциональный язык это тогда когда есть
00:05:33
файлик внутреннего написаны методы и
00:05:35
потом мы просто вызываем эти методы
00:05:38
вызвали вызвали вызвали вызвали все и
00:05:40
программа отработала отработала
00:05:42
отработала вот все что мы делали до
00:05:44
этого это был функциональный язык а
00:05:46
теперь мы переходим на план а
00:05:49
объектно-ориентированного тогда когда
00:05:51
уже все становится более визуально
00:05:53
реально
00:05:54
[музыка]
00:05:56
пример давайте
00:05:59
я могу делать вы можете не делать да вот
00:06:02
этот примерчик
00:06:03
предположим если я хочу написать
00:06:06
программу которая будет вести ну к
00:06:10
примеру
00:06:13
давайте какой-то учет учет чего-то вот
00:06:16
очень часто идет какой-то учета например
00:06:19
вот
00:06:20
программа которая будет автоматически
00:06:22
вести учет товаров на складе и
00:06:26
ее главной основная цель это то чтобы не
00:06:31
какой продукт предположим
00:06:34
не был просрочку
00:06:37
примеру есть вот такая задача что
00:06:40
есть определенный момент что нельзя
00:06:44
чтобы были продукты просрочены как
00:06:46
только просрочен сразу идет предположим
00:06:49
сигнал что через день там будет
00:06:51
просрочен через два дня будет просрочена
00:06:53
то есть вот идут какие-то сигналы эти
00:06:55
предположим она также еще дополнительно
00:06:57
учитывает какой товар на складе
00:06:59
заканчивается и автоматически говорит
00:07:02
вам что вот этот товар мало на складе
00:07:04
соответственно нужно его докупить плюс
00:07:07
еще эта программа можно потом доделать
00:07:09
чтобы автоматически делала закупку
00:07:11
отправляла заказ
00:07:14
лично вот такую нам надо программу
00:07:16
написать вот как вы думаете если это был
00:07:18
бы реальный мир какой бы тип здесь было
00:07:21
бы тип что вам нужно какая информация
00:07:23
вам важно давайте так
00:07:27
присутствуют ли здесь какой вот если
00:07:30
взять тип и томится ввиду что вот как
00:07:32
тип и string вот какой тип нам нужен вот
00:07:35
какую единицу мы учитываем внутри
00:07:37
программы что мы учитываем
00:07:40
я бы тоже сказала товар и соответственно
00:07:43
как только мы поняли
00:07:45
что нам нужно какой тип то наша цель это
00:07:49
создать файлик такого названия вот мы
00:07:52
создали получается товар
00:07:54
как класс давайте делать все параллельно
00:07:59
давайте лучший бой
00:08:01
целый класс под названием товар
00:08:03
[музыка]
00:08:08
lesson 7 обязательно у кого не создан и
00:08:14
давайте сделаем файлик класс под
00:08:17
названием товар
00:08:23
когда мы создали такой файлик этот
00:08:26
файлик уже стал типом то есть вот здесь
00:08:29
я подпишу что мы создали tiff
00:08:33
мы создали новый тип все достаточно
00:08:40
всего лишь нужно было создать класс для
00:08:43
того чтобы он уже стал
00:08:46
типом
00:08:49
теперь предположим давайте создадим main
00:08:53
main
00:08:57
[музыка]
00:08:59
которых будет public static white line
00:09:07
вот wayne & public static void main это
00:09:10
старт это начало и вот здесь идёт как бы
00:09:13
наш сценарий
00:09:16
предположим здесь мы уже можем создать
00:09:19
объект типа товары такой такой же объект
00:09:22
как объект типа string мы создавали
00:09:24
объект типа int создавали вот точно так
00:09:26
же мы можем создать здесь объект типа
00:09:28
товаров он будет такого формального
00:09:30
первое слово это указание типа раньше
00:09:34
вон string сейчас товар и когда мы пишем
00:09:37
слово отобран обязательно смотрите вот
00:09:40
где он лежит вот сейчас вот оказывается
00:09:41
в 87 а может быть это название
00:09:44
пересекала и спустя my которые уже
00:09:45
созданы внутри g d к и тогда бы выбирали
00:09:48
бы тот который в вашей папочки товар
00:09:52
дальше идет его название предположим
00:09:59
лейбл какой-то продаем
00:10:01
равно
00:10:03
дальше пойдет слова не у как создание
00:10:06
нового объекта и опять опять указания
00:10:09
того же типа который мы создаем то есть
00:10:12
товар и круглые скобочки в конце .
00:10:14
заготовить то есть вот он 1 объект
00:10:16
создалась вот у нас предположим день был
00:10:19
я подпишу его темп был один и к примеру
00:10:21
я могу создать таких 2 вот это apple 2
00:10:24
то есть мы продаем положим в нашем
00:10:27
интернет-магазине два стола и
00:10:32
реально представляете что они у вас есть
00:10:35
но теперь вопрос становится такого
00:10:37
формата если эта программа по учету
00:10:40
товаров на складе то вопрос становится
00:10:45
такой такой из лифта информация которая
00:10:49
нам важно предположим может быть
00:10:51
остальные мы хотим о товаре хотим внести
00:10:53
какую-то информацию к примеру какую это
00:10:56
может быть
00:10:59
к примеру там какие-то характеристики
00:11:01
дают
00:11:03
который нам важно учитывать это может
00:11:05
быть цена цена оптовая цена розничная
00:11:08
либо срок годности либо ширина высота
00:11:11
длина если это учитывается в доставках
00:11:14
каких-то либо это может быть
00:11:17
[музыка]
00:11:20
свет до материал и так далее то есть
00:11:22
здесь все то что нам важно но только
00:11:26
важный момент что это то что важно
00:11:28
относительно всех товаров которые есть в
00:11:31
вашем интернет-магазине предположим или
00:11:33
относительно этом магазина да то есть
00:11:35
если мы указали что тип является товаром
00:11:38
то теперь наша вторая цель это
00:11:41
определяем ключевые параметры такие нам
00:11:44
важны о каждом объекте где записываются
00:11:47
эти параметры
00:11:49
параметры записываются вот здесь то есть
00:11:53
вот здесь место
00:11:57
здесь напишу что
00:12:00
[музыка]
00:12:03
переменная в скобочках они же поля
00:12:06
класса называются
00:12:09
которые
00:12:11
описывают
00:12:13
состояние
00:12:15
объекта
00:12:19
характеристики
00:12:27
пусть вот здесь их место тех переменных
00:12:32
которые описывают состояние объекта и
00:12:35
здесь вы просто перечисляем все то что
00:12:38
нам важно важно предположим я бы сказала
00:12:41
что нам важно выньте
00:12:44
нам важно был бы сто процентов я бы
00:12:47
сказала что айди потому что в каждом
00:12:49
давали которое у нас продается у нас
00:12:51
есть едешь к
00:12:53
предположим еще важно было бы в ин-те
00:12:56
к примеру full price
00:13:04
примеру в индии
00:13:07
сыну прайс
00:13:13
в стринги
00:13:16
название
00:13:24
количество вот по поводу количества да
00:13:28
вот здесь 1 мега важный момент тоже вот
00:13:31
прям капслоком ключом
00:13:35
здесь
00:13:38
могут быть переменные которые относятся
00:13:44
только к одному объекту
00:13:47
только к одному ну смотри одному и
00:13:51
подставляешь название класса одному
00:13:54
товару если бы там был бы класс под
00:13:56
названием товары то тогда количество
00:13:59
могло быть если глаз называется товар 1
00:14:02
1 единица соответственно количество но
00:14:05
не имеет никого отношения здесь могут
00:14:07
быть переменная которые относятся только
00:14:09
к одному
00:14:10
дауэ в данном случае товар 1 товар и
00:14:16
еще также и
00:14:20
которые
00:14:27
описывают состояние данного объекта
00:14:34
[аплодисменты]
00:14:36
[музыка]
00:14:44
которые описывают состояние данного
00:14:47
объекта то здесь не могут быть
00:14:49
переменные которые не вообще никак не
00:14:52
относятся к объектам предположим там
00:14:55
количество дней в году или там я не знаю
00:14:59
название интернет-магазина но тоже не
00:15:01
относится конкретно к этому товару а
00:15:04
здесь могут быть только то что носится
00:15:07
по этому товару только и никак
00:15:09
по-другому вот это это частое моменты
00:15:12
частых ошибок то что начинают писать все
00:15:16
которые попало вообще перемены не таком
00:15:18
случае
00:15:20
ну и предположим название у нас есть она
00:15:24
полная цена со скидкой айди но к примеру
00:15:27
здесь можно было бы поставить еще срок
00:15:30
годности можно было поставить и шоу
00:15:33
все то что нам действенную размера и так
00:15:37
далее вот все том что нам важно потому
00:15:40
что если нам это важно мы это учитываем
00:15:42
если не важно не учитываем вот потому
00:15:45
что они не стоит писать лишние да вы
00:15:47
тоже здесь пишется только то что нам
00:15:49
нужно
00:15:51
далее когда мы перейдем в моем теперь у
00:15:55
каждого из этой переменной то и был один
00:15:57
это и был 2 появились свои эти
00:16:00
переменные то есть я вот смотрите ставлю
00:16:03
положим
00:16:05
да и был один то есть я обращалась
00:16:09
конкретно к первому столом и теперь я же
00:16:12
не обращалась к классу товара с большой
00:16:15
буквы да я обращаюсь конкретных
00:16:19
первым столом ставлю точку и после точки
00:16:23
вижу вот эти четыре своих переменные то
00:16:25
есть я могу установить ты был один .
00:16:29
предположим айди равняется ну и даю сюда
00:16:33
какой номер то есть вот таким образом я
00:16:35
присваиваю ему ты был один теперь четыре
00:16:40
внутренних переменных вот этих и вот и
00:16:44
был 2 теперь свои четыре внутренних
00:16:46
переменных другими словами от смотрите
00:16:49
вот родился объект типа человек и
00:16:53
у этого объекта типа человек есть мозг
00:16:58
что такое воск воск фактически давайте
00:17:00
рассматривать как место куда
00:17:02
записывается информация и вы
00:17:04
соответственно у каждого объекта типа
00:17:06
человек мозг свой свое место где
00:17:09
записывается информация это его как
00:17:10
резервуар правильно и здесь тоже самое
00:17:13
почитаете что вот это это мозг на
00:17:15
которой может записываться информацию и
00:17:17
у каждого объекта получается ты была
00:17:20
дина до балба свой мозг и они все вы
00:17:23
сохраняют туда всю информацию если
00:17:27
ничего не установить вот таким вот
00:17:29
образом то соответственно ничего на этих
00:17:31
переменных и не будет ты был один .
00:17:34
предположим
00:17:36
full price но скажу что там 12000
00:17:41
примерно так
00:17:45
тебе
00:17:47
если сделать я сделаю system of print
00:17:50
and и поставлю вот так брат и запущу в
00:17:53
режиме дебага я просто делаю это для
00:17:55
того чтобы посмотреть чему сейчас
00:17:57
равняется объекта и был один почему
00:17:59
объекта и bool2
00:18:08
вот отработал другой
00:18:13
сейчас я буду
00:18:17
ты был один сейчас выходит
00:18:22
айди установлена это что мы установили
00:18:25
full price установлена то что мы
00:18:28
установили sell price in a им не
00:18:30
установлено не пустые но если я разверну
00:18:32
ты был 2 то-то и bool2 тоже имеют таких
00:18:36
же четыре переменных и они просто пусты
00:18:38
понятен смысл
00:18:41
замечательным теперь начинаем учить
00:18:44
правила потому что если мы пишем не по
00:18:46
правилам мы gpu находим какие есть
00:18:49
правило
00:19:06
какие есть правило сейчас смотрите есть
00:19:09
четыре основных правилах исходя из
00:19:12
которых идет все программирование
00:19:14
объектно-ориентированное
00:19:15
программирование держится на них 4 и вот
00:19:18
эти правила обязательно вас будут
00:19:20
спрашивать на собеседовании
00:19:22
первое правило вот я мы начнем сегодня
00:19:26
только буквально первое правило первое
00:19:28
правило оно звучит так инкапсуляция
00:19:35
то есть фактически что такое
00:19:37
инкапсуляция давайте разберем
00:19:40
инкапсуляция это
00:19:42
реализация области видимости
00:19:46
даже можно здесь вот написать что это
00:19:49
реализация
00:19:53
области видимости
00:19:58
что такое реализация области видимости
00:20:01
вы давайте представим себе что все мы
00:20:03
являемся объектом деппа человек у
00:20:06
нас такого объекта типа человек
00:20:10
предположим у меня есть такие поля
00:20:12
внутри моего как бы класс у нас у всех
00:20:15
они есть эти поля у нас всех лист поле
00:20:18
имя фамилия отчество адрес проживания
00:20:21
номер телефона
00:20:23
предположим есть родители или нет их
00:20:26
имена тогда у нас всех есть эти
00:20:29
переменные сто процентов у всех но какие
00:20:33
я не могу ли я предположим я как объект
00:20:36
вы достаете предположим какие-то из этих
00:20:40
или нет информацию открытая информация
00:20:42
предположим где я живу открытыми
00:20:45
информации нет соответственно если она
00:20:49
открыта или закрыта
00:20:50
значит она инкапсулированы правильно и
00:20:53
что такое инкапсуляция инкапсуляции это
00:20:56
и есть область видимости
00:20:58
то есть наша задача наша задача
00:21:01
правильно
00:21:03
сделать так чтобы предположим какие-то
00:21:07
переменные были доступны всем остальным
00:21:09
какие-то перемены и не даст умные в
00:21:12
примеру в классе товар вот есть
00:21:14
переменная а идея умный идеи full price
00:21:18
uk price и так далее они должны быть
00:21:21
скрытым они должны быть здесь что вы
00:21:24
доступ имел только товар я как объекте я
00:21:28
имею только к своей информацию своему
00:21:30
получается информацию я не имею
00:21:33
информацию к чужого больше а если я
00:21:35
захочу иметь к чужому объекту информацию
00:21:38
я вызову его метод предположим отъезд у
00:21:42
юли метод под названием как тебя зовут я
00:21:45
знаю что у него у нее этот метод есть
00:21:47
потому что он есть у всех объектов типа
00:21:49
человек я захочу я у этого объекта
00:21:52
вызову и она как у нее реализован этот
00:21:56
метод так она мне и скажет вот так идет
00:21:59
смысл и получается что правило такое
00:22:01
если мы следуем инкапсуляции если не
00:22:04
следуем к этому правилу то вот эти
00:22:06
четыре переменных они должны быть
00:22:08
спрятаны внутри текущего нашего класса
00:22:12
чтобы невозможно было вот так
00:22:14
устанавливает значение этаж неправильно
00:22:17
нельзя устанавливать значение вот такому
00:22:19
формату
00:22:20
как скрыть помните четыре переменных мы
00:22:24
выучили когда метод да как создавать
00:22:26
метод мои прописан лишь но и в методе
00:22:32
подключается в методе первым словом
00:22:35
пишется модификатор доступа вот
00:22:37
модификатор доступа это и есть
00:22:40
это снова который организовывает область
00:22:44
видимости и
00:22:46
здесь нам нужно поставить слово проявит
00:22:51
получается что слова про его ставим
00:22:54
везде
00:22:59
вот это это по правильному это не гавно
00:23:02
код ставим везде слова проявит теперь
00:23:05
получается товары два объекта типа
00:23:08
товаров они в мае ни один уже
00:23:11
скрыты до скрывают свою информацию и
00:23:14
получается что вот такая вот ошибочка
00:23:16
уже показывает о том что извините но
00:23:19
данные теперь уже недоступным вот мы
00:23:23
ставим безвестного правят перед всеми
00:23:25
переменными и
00:23:26
видим вот такую вещь это правильная вещь
00:23:32
править этапе сальдо
00:23:35
видим вот такой вещи до полностью
00:23:38
правильно вечно что теперь недоступна
00:23:41
недоступна внутри нашего
00:23:44
типа
00:23:46
недоступен теперь поле райден
00:23:51
так теперь быть если мы все таки с этого
00:23:54
класса хотим установить лейбла
00:23:59
айди
00:24:01
соответственно мы должны сделать метод
00:24:04
вот здесь подписываю что поскольку
00:24:13
поскольку
00:24:15
данные скрыты
00:24:19
мы должны
00:24:21
написать
00:24:23
метод
00:24:26
который будет
00:24:32
менять
00:24:33
значение айди
00:24:38
этого объекта этого либо любого другого
00:24:41
но конкретно в нашем случае мы хотим
00:24:43
который был один это сделать по могли
00:24:45
это сделать и кто ебал бар как только мы
00:24:48
напишем такой метод этот функционал
00:24:50
будет теперь доступен у всех товаров и
00:24:53
все товары отныне теперь умеют
00:24:55
устанавливать 1
00:24:56
вот так
00:25:00
теперь как записать такой метод
00:25:05
всех есть двигаемся
00:25:09
где записывать такой метод такой метод
00:25:12
записывается конечно в классе товар если
00:25:14
мы хотим этот функционал подарить
00:25:16
объекту типа товар соответственно должны
00:25:19
эти методы писаться в массе товар где
00:25:21
пишутся методы вот этот тоже важный
00:25:23
момент они пишутся конечно же ниже и не
00:25:26
выше потому что вы тогда потеряем
00:25:28
видимости переменных они пишутся ниже
00:25:30
вот здесь
00:25:31
мы пишем public потому что уже этот
00:25:36
метод публичной открытый
00:25:39
дальше static пишется или нет вот
00:25:42
смотрите как мы обращаемся к еде то есть
00:25:44
мы же хотим именно этого требует и
00:25:47
поменять правильно именно этого ты войди
00:25:50
значит больше static мы не пишем потому
00:25:53
что если бы мы выписали бы static это
00:25:57
говорило бы о том что мы не мы не
00:25:59
какому-то конкретному объекту обращались
00:26:01
а мы конкретно этому столу хотим
00:26:04
установить один поэтому вот такое
00:26:06
обращение будет через переменную и это
00:26:09
уже не стачек соответственно стачек не
00:26:12
пишем
00:26:13
дальше когда мы говорим о том что все ты
00:26:16
был один твой айди вот такой-то моему
00:26:19
дали команду
00:26:20
возвращаемый тип есть
00:26:27
ну вот смотрите я не чувствую буду на
00:26:30
тебе говорит примеры вот предположим я
00:26:32
говорю все отдаю я буду называть властью
00:26:36
она возвращаемый тип какой-то дала нет
00:26:39
но она будет откликаться на лодзь и
00:26:41
потому что я принципе ей бы этого же
00:26:43
сказала
00:26:44
возвращаемого типа нет то есть это вот
00:26:47
мы сказали все теперь от меня у этого ты
00:26:49
был один едешь к такое то что для нас
00:26:52
это так поэтому
00:26:55
этот метод воет со стороны получается
00:26:59
того объекта это воин это молча
00:27:01
происходит
00:27:04
дальше метод будет называться если речь
00:27:07
идет об установке одного из поля это
00:27:10
называется поля класса если речь идет об
00:27:13
установке одного из поля методы
00:27:15
называются обычно сет сеттеры это
00:27:19
название международное пожалуйста
00:27:22
называйте именно таким образом даже в
00:27:24
это не заводится уже сыта едим все то
00:27:27
едем дальше идут круглые скобки тело
00:27:31
входящие параметры будут или нет году
00:27:34
сто процентов входящий параметр это вот
00:27:36
именно то что должен человек сохранить
00:27:39
записать то есть если это с кличкой
00:27:42
предположим то это именно прим саму
00:27:44
кличку если это сойди е то это в ин-те
00:27:47
едим
00:27:49
ну давайте вот здесь напишем иди
00:27:57
эту сейф
00:28:01
предположим если это с кличкой я говорю
00:28:04
метод будет называться установить кличку
00:28:07
и сюда передаю новую кличку а теперь мы
00:28:11
становимся вот здесь когда в теле мы
00:28:14
находимся и хотим сделать реализацию
00:28:15
тело мы должны себе представить как
00:28:17
будто бы мы теперь этот объект если вы
00:28:20
стол и нам сказали что наша иди вот
00:28:24
такая то что нам нужно сделать здесь
00:28:27
цель это теперь на вот эту мозговую
00:28:30
извилину сохранить вот эту информацию
00:28:33
которую дали
00:28:34
райна
00:28:37
поняли смысл и
00:28:41
почему сохранить давайте с примером если
00:28:45
я вот юля сказала что юля я теперь тебя
00:28:47
буду называть настя что я не дала имя
00:28:50
настя и наносите я передам вот здесь что
00:28:54
юля надо сделать юля надо это сохранить
00:28:57
ей надо сохранить что ok теперь меня
00:29:00
будут называет настя вот вот это не надо
00:29:03
куда-то сохранить и вот вот это это ее
00:29:05
извилинами мозговые считайте что у него
00:29:08
только 4 предположим место куда можно
00:29:10
сохранить информацию но я просто на
00:29:13
такие примеры чтобы вам было всем
00:29:14
понятно и вот из этих четырех мест но
00:29:17
просто куда из этих четырех ну как бы
00:29:19
подписанных если ей дали айди
00:29:22
соответственно вот это потому что она
00:29:24
максимально похожие тогда мы говорим что
00:29:26
ok на эту место где тут еще ничего пока
00:29:29
нет я сохраню вот эту информацию которую
00:29:33
мне дали
00:29:35
вот так получается сохранением
00:29:41
если взять в мае не
00:29:44
в мае не я теперь вот эту строчку
00:29:49
закомментируем чтоб она не ругалась
00:29:51
красным закомментировал а они же вот
00:29:54
здесь сделаю то же самое то же самое
00:29:57
теперь идет вот такого формата ru ты был
00:30:00
один то есть я конкретно к объекту хочу
00:30:03
обратиться ты был один .
00:30:07
вот выпадает теперь этот мне эта идея
00:30:11
установить один и вот сюда мне надо
00:30:14
указать соответственно айди этот метод
00:30:17
молча будет выполняться я делаю с этой
00:30:19
де и даю те цифры которые я хотела чтобы
00:30:24
сохранились все это произошло то же
00:30:27
самое что и вот это потому что в этом
00:30:29
образе на поле айди сохраняется значение
00:30:34
вот мы эти значения передали и они в
00:30:37
методе сохранились на этаже поле
00:30:41
не всем
00:30:44
до чего начали бред а
00:30:46
вот зачем прятать чтобы потом доставать
00:30:50
очень интересный момент смотри есть
00:30:52
четыре плавала объектно-ориентированное
00:30:54
программирование
00:30:55
по нему все пишут если пишут по-другому
00:30:58
это боев а
00:31:00
кажется вроде бы вроде бы шато логично и
00:31:04
вроде кажется зачем прятать если потом
00:31:06
она нужно будет но все равно это
00:31:09
отпадает уже под правило когда кода и в
00:31:11
дальнейшем будут выскакивать какие-то
00:31:13
моменты ошибок
00:31:15
к примеру
00:31:18
расскажу когда
00:31:23
если ты не заплачешь данная к примеру
00:31:26
они останутся публичные
00:31:32
вот публичные данные в которых есть идеи
00:31:36
full price там да и так далее может ли
00:31:40
быть такое вот что ты купил ты хозяин
00:31:43
интернет
00:31:44
магазин а вот у тебя есть товары товары
00:31:46
есть они как объекты существуют и потом
00:31:49
перед чрезмерно захотел поменять цену
00:31:51
может быть такой
00:31:53
можем а как ты это сделаешь ты просто
00:31:57
очень и через ментов напрямую обратишься
00:31:59
к поле
00:32:01
вот смотри ладно это не тот пример
00:32:04
плохой пример пример другой вот
00:32:06
представь себе что почему они не скрыты
00:32:09
вот представьте что вы вам план себя
00:32:10
есть 500 полей 500 полей 500 данных
00:32:14
которые вы пища есть внутри у нас у
00:32:15
каждого есть как минимум есть
00:32:21
можно сделать предположим не все
00:32:23
открытые да ну к примеру какие-то
00:32:26
открыты цвет волос и глаз какие-то
00:32:30
закрытые
00:32:32
уровень зарплаты я не знаю это мужчин и
00:32:36
так далее ну понимаешь вот а если они
00:32:38
все будут открыты то текст 3 как по
00:32:41
книжке of tanks и понятно
00:32:43
но понял о чем идет речь о
00:32:45
программировании то же самое и
00:32:47
программирование тоже самое как и в мире
00:32:50
живом у нас есть определенный уровень
00:32:53
инкапсуляции сокрытия данных если мы не
00:32:56
будем его закрывать потом в дальнейшем
00:32:59
очень много информации будут другие
00:33:01
классы получают очень много информации и
00:33:04
получается что мы начнем мы как бы
00:33:06
путать этот всю информацию а плюс ко
00:33:08
всему вот могу так сказать вот представь
00:33:10
что в дальнейшем в будущем другие
00:33:14
программы они знают о том что у тебя
00:33:18
такие методы есть
00:33:20
знаю и пытаются вызвать эти методы а ты
00:33:24
их не сознаю и получается что будут
00:33:27
ошибки то есть вот эти методы которые
00:33:29
устанавливают поля класса
00:33:32
они обязаны быть сто процентов вот как с
00:33:35
этой де обязан быть метод сет full price
00:33:39
social про из сауны
00:33:42
потому что когда-то может измениться иди
00:33:45
может измениться убрать может измениться
00:33:48
той может измениться и посредством
00:33:50
только методов нужно обращаться к этим
00:33:53
им что-то менять только с помощью
00:33:55
методов
00:33:58
почему они не открыты и понимаю что так
00:34:01
удобно вот такой формат
00:34:06
[музыка]
00:34:14
я не смотрел вначале должны понимать что
00:34:18
происходит
00:34:21
идея мы не будем этого делать
00:34:25
заводят открываем до чтобы не было
00:34:28
видишь
00:34:30
[музыка]
00:34:31
ну из этих 500 полей предположим если в
00:34:34
каком-то типе есть мы захотим открыть
00:34:36
только 200 и на эти 200 делаем методы
00:34:39
которые позволят установить либо считать
00:34:42
информацию заново поле красе она 300 не
00:34:45
захотим делать и они должны быть скрыты
00:34:47
внутри класса
00:34:51
вот эти правила сто процентов всегда
00:34:53
будет спрашивать на собеседовании есть
00:34:55
правило инкапсуляции и правила
00:34:58
инкапсуляции гласит что всегда все поля
00:35:01
пальцы должны быть правят
00:35:03
если кто-то захочет их изменить должен
00:35:06
быть метод
00:35:09
вот так или никак по другому все
00:35:12
остальное будет считаться нечистым ходом
00:35:14
теперь что касается вот вот этих полей
00:35:18
дальше вот full price и так далее все
00:35:20
что мы захотим точно также устанавливать
00:35:23
конечно же нам точно так же нужно будет
00:35:25
делать методы сет
00:35:28
методы set давайте сделаем следующий
00:35:31
метод сет full price
00:35:36
public у
00:35:40
только начали эту тему самые переломные
00:35:43
моменты ближайших 2-3 занятия
00:35:46
может быть много и не понятно пока
00:35:50
фабрик
00:35:52
дальше идет
00:35:54
[музыка]
00:35:57
тоже это будет молча бои и
00:36:01
сайт full price
00:36:13
сюда мысли свина даем full price к
00:36:18
примеру and new full price и
00:36:27
сохраняем эту информацию получается на
00:36:30
переменную full price comprise равняется
00:36:33
new full price
00:36:47
и
00:36:53
в нем ума и ним теперь мы соответственно
00:36:57
вот этот метод вот это тоже меняем на
00:37:00
метод его комментируем и
00:37:03
соответственно делаю ты был один .
00:37:08
сайт full price и сюда добавляю 12000
00:37:26
понятие смысл так то есть в принципе вот
00:37:29
такой хорошо
00:37:30
давайте теперь я не буду просто дальше
00:37:34
мы сейчас возьмем более
00:37:37
равному примеру более темного давайте
00:37:39
возьмем еще один тип создадим
00:37:43
будет называться
00:37:45
будет
00:37:48
треугольник
00:37:54
треугольник
00:37:56
вот давайте теперь определил а какие
00:37:59
поля класса нам важны как а теперь
00:38:01
треугольник
00:38:03
к примеру если мы будем писать вот такой
00:38:06
вот программа
00:38:10
примеру
00:38:22
примеру мы хотим сделать вот такую
00:38:25
программку которая будет считать к
00:38:28
примеру
00:38:29
что конкретно нам нужно но вот площадь
00:38:32
треугольника к примеру через три стороны
00:38:37
сюда вводятся значение вот так мы с вами
00:38:39
делали да и и нажимали и вот площадь
00:38:41
выводятся вот почему мы хотим написать
00:38:43
вот такую программу
00:38:45
вот у нас есть класс треугольник
00:38:48
какие поля класса здесь будут
00:38:53
рестораны и полностью согласна то есть
00:38:55
если только такая программа по кроме
00:38:59
трех сторон но больше ничего не нужно
00:39:03
если у нас было бы строительная
00:39:06
программа там где есть учет каких-то при
00:39:08
угольников то возможно там было бы еще
00:39:10
материал или там что-то такое
00:39:13
хрупкость и так далее но мы то не нужно
00:39:15
нас будет рестораны поэтому пишем
00:39:18
проявит and
00:39:22
provide in b
00:39:26
и
00:39:27
правят int
00:39:29
то есть вот три стороны
00:39:36
обязательно пройдут
00:39:46
теперь давайте
00:39:49
сделаем методы сет
00:39:53
которые будут устанавливать о бойце
00:39:57
все три метода set
00:40:03
public метод будет уже public
00:40:07
void-а
00:40:15
давайте первым сделаем сны вот в метод
00:40:19
set а нам хотелось бы передать
00:40:22
переменную inp а вот нам бы хотелось бы
00:40:27
передать вот это этаж мы придумали
00:40:29
название а и мы видим сейчас что это
00:40:32
название переменной пересекается с этой
00:40:35
названием переменных и
00:40:37
здесь получается идет такой формат а
00:40:39
равняется получается что вот эту
00:40:42
переменную а я хочу присвоить то что нам
00:40:44
дадут вот сюда и давайте теперь
00:40:47
посмотрим будет ли вот так работать
00:40:49
будет ли вы так работать мы сделаем
00:40:52
сейчас мы
00:40:57
main один
00:41:03
без разницы монтян поможете отдам public
00:41:07
static void main здесь я сделаю
00:41:10
предположим один треугольник и
00:41:16
вызову у него метод под названием set a
00:41:19
и
00:41:21
передам сюда 7 и
00:41:25
теперь я просто вот 100 новых здесь на
00:41:28
борт poland сейчас запущу и покажу чему
00:41:31
в данный момент времени является
00:41:34
треугольник
00:41:42
когда мы запустили
00:41:45
брык point где-то
00:41:49
режем и добра к ссоре
00:41:53
когда мы запустили вот наш треугольник
00:41:56
ожидаемый результат какой что на стороне
00:41:59
а у треугольника будет семерка
00:42:02
когда мы раскрываем а на стороне а
00:42:06
ничего ноль вот это это мега важный
00:42:08
момент вот почему 0 почему на поле а
00:42:12
ничего не сохранилось вроде бы мы дали и
00:42:14
сторону 7
00:42:19
все весь смысл кроется вот здесь вот
00:42:23
здесь почему когда мы вызываем метод под
00:42:27
названием
00:42:28
вот это семерка в метод приходит под
00:42:32
каким словом вот здесь семерка вот здесь
00:42:35
вот пишу семерка под каким словом пришла
00:42:38
под словом а вот этим как здесь написано
00:42:41
вот здесь как мы написали так
00:42:44
вот эта переменная
00:42:48
вот это мозговой центр она тоже под а
00:42:50
это получается подпишу его мозг
00:42:54
то есть
00:42:56
получается а это и семерка и
00:43:00
семерка которая пришла и мозговой центр
00:43:04
и получается что программа здесь
00:43:08
запуталась я говорю юля вот тебе семь
00:43:12
сохранили пожалуйста там на сторону
00:43:14
своего треугольника я говорю вот тебе
00:43:17
семьи он эдакая чем это съем все ну как
00:43:21
бы она здесь зацикливаясь на 7 это 7 и
00:43:23
все она не поняла что это нужно
00:43:26
сохранить вот на это поле для того чтобы
00:43:29
было понятно что вы судах сохранить
00:43:31
используется одно ключевое слово она
00:43:34
кстати используется только тогда когда
00:43:36
вот это слово пересекается с вот этим
00:43:38
словом а пересекается она во всех 100
00:43:41
процентах случаях программисты любят так
00:43:43
писать чтобы эта переменная тряслась с
00:43:45
этой по названию и если она пересекается
00:43:48
то тогда вот эта переменная которая
00:43:52
здесь входит входящим параметрам она
00:43:55
называется просто а а вот эта переменная
00:43:58
ее нужно сказать у меня у меня у меня а
00:44:02
это другими словами у меня это говорит
00:44:05
из
00:44:06
zest . а вот такой формат зис внутри mi
00:44:10
внутри метода именно описывающего тип
00:44:14
вот предположим треугольник тогда мы
00:44:17
переводим как я у меня я представляю
00:44:20
себя сразу треугольником то есть если
00:44:21
кто-то вызвал метод а и передал им нет
00:44:24
ли этом семерку я вот здесь при
00:44:27
выполнении метода себя представляю
00:44:29
треугольником и получается как бы с ес
00:44:31
будет
00:44:33
за как я у меня я у меня на поле
00:44:35
сохраняется 7 получается что перед вот
00:44:39
этой переменной выставим ключевое слово
00:44:41
else wise .
00:44:46
вот так здесь .
00:44:48
а равняется и
00:44:50
теперь вот таким образом когда я стала
00:44:54
этой а она говорит что это именно это
00:44:56
как этой а вот оно подсветилось что это
00:44:59
именно это и в мае ни один теперь когда
00:45:02
я запишу в режиме дебага то теперь
00:45:06
программа будет правильно работать и
00:45:08
сохранять
00:45:09
получается что ключевое слово за из она
00:45:12
может использоваться может
00:45:16
использоваться в описывающих типах да
00:45:18
вот классов описывающих
00:45:21
также еще чем является зыс вот кстати
00:45:24
еще могу сказать ну давайте рассмотрим
00:45:26
вот этот пример вот вот здесь вот эту
00:45:28
строчку
00:45:30
подпишу ее вызов метода
00:45:36
в метод всегда передается два типа
00:45:40
параметров
00:45:49
два типа параметров
00:45:53
всегда
00:45:55
явные и неявные
00:46:00
явные и неявные
00:46:03
явный н параметры это те которые явно
00:46:08
вложены внутрь нашего метода то есть
00:46:12
входящими параметрами вот здесь вот это
00:46:14
это явные параметры
00:46:16
вот здесь напишем передаются
00:46:20
метод выведем входящих параметров а
00:46:33
что такое не явно
00:46:36
не явный параметр
00:46:39
этот объект у которого вызван данный
00:46:43
метод
00:46:47
которого вы саван данный метод
00:46:55
и
00:46:56
так же ещё допишу что он внутри методов
00:47:04
вот здесь вот почему так внутри метода
00:47:09
здесь то есть внутри метода доступен
00:47:15
доступен внутри метода
00:47:17
доступен
00:47:24
то есть явные параметру еще раз они
00:47:27
передаются входящими параметрами вот
00:47:30
сюда вот это это явные
00:47:33
неявный это тот объект у которого
00:47:36
вызываем данный метод и он внутренне это
00:47:40
да доступен по слову за то есть кто
00:47:43
такой язык внутри метода set а это тот
00:47:48
треугольник у которого вызван данный
00:47:50
метод но треугольников то здесь один
00:47:53
может быть 10 вот у того треугольником у
00:47:56
которого вызван данный метод кто-то
00:47:59
является зыс тот момент временем понятен
00:48:01
смысл замечательно соответственно вот
00:48:04
здесь это в нашем случае это вот этот
00:48:08
треугольник слово здесь в нашем случае у
00:48:12
него обращено полю а и сохраненной
00:48:15
информации которая передавал
00:48:18
хорошо как быстро писать предположим
00:48:22
поскольку у нас на каждое поле нужно
00:48:24
создавать методы set вы можете вот так
00:48:27
вот начинать даже писать слова сет и вот
00:48:30
он вам выводят set by сердце у вас еще
00:48:32
не хватает и вы выбираете предположим
00:48:35
сбн вот он описался и он описался со
00:48:38
словом заяц и с таким же названием как
00:48:42
название более вашего класса и
00:48:45
если вы хотите ssc то получается я
00:48:48
ночной совет делать вы тоже попробуйте
00:48:50
обязательно и выбираете сердце
00:48:54
почему такого нет потому что стойте там
00:48:58
где нам надо написать мне внутри метода
00:49:00
не за пределами класса а именно вот
00:49:03
после метода и
00:49:06
начинаем писать сет вот
00:49:10
не в паблик статикой не нужно там где
00:49:14
ваш тип triangle там где вы хотите
00:49:16
создать центр и
00:49:26
не стирает там же все уже написано было
00:49:29
до тебя там уже все написаны
00:49:34
вот мы сделали быстро эти два метода
00:49:36
сделали все и теперь в нем в мае нем мы
00:49:42
можем уже
00:49:43
соответственно
00:49:45
обратиться еще раз в tri-angle . сэт
00:49:49
предположим в
00:49:55
примеру
00:49:58
53 англ .
00:50:00
секция
00:50:02
предположим 10
00:50:07
вот наш треугольник вышел со сторонами
00:50:10
75 10 но еще также мы можем здесь не
00:50:14
только один треугольник создать но
00:50:16
предположим вот второй я сразу создам
00:50:18
еще 2 triangle предположим triangle 2
00:50:21
равняется new triangle и
00:50:26
указывают ему стороны
00:50:30
предположим
00:50:33
примеру
00:50:38
все думаем положим тоже
00:50:45
сердце тоже предположим 6 все вот так то
00:50:50
есть вот у нас получилось в мае не два
00:50:52
объекта один объект у которого
00:50:54
установлены параметры и второй объект у
00:50:57
которого установлены параметры параметры
00:50:59
устанавливаются ровно тем же самым
00:51:01
методами
00:51:05
смысл понятия отлично
00:51:09
теперь в чем же красота и в чем же
00:51:12
прелесть вот здесь вы уже представляете
00:51:14
визуально чтобы вот этот момент времени
00:51:17
у вас есть полноценных два треугольника
00:51:20
внутри вашего как виртуального мира и
00:51:23
теперь в этим треугольником можете также
00:51:26
добавлять какой-то функционал
00:51:28
предположим какой функционал можно
00:51:31
добавить треугольнику вот есть
00:51:32
треугольник у него есть ресторан и мы
00:51:35
можем у него сделать метод предположим
00:51:38
периметр и спросить при угоне к сколько
00:51:40
у тебя периметру он скажет один там
00:51:43
скажет 22-ом его 2 спросим у тебя
00:51:45
сколько выскажут 16 поняли то есть вот
00:51:48
вот это это функция на который мы можем
00:51:50
добавлять внутри нашего треугольника мы
00:51:55
переходим опять в паз треугольник и вот
00:51:58
сюда если мы хотим именно к какому-то из
00:52:00
треугольником обращаться и спрашивать
00:52:02
здесь мы пишем метод
00:52:04
предположим фабрик
00:52:07
возвращаемый тип int уже без слово
00:52:10
static потому что мы будем обращаться к
00:52:12
треугольнику и предположим назовем его
00:52:14
периметр
00:52:16
периметр
00:52:19
дальше идут круглые скобки тела и теперь
00:52:22
вся прелесть чем входящие параметры
00:52:25
нужны или не нужны как думаете
00:52:28
укус
00:52:29
а
00:52:30
вот неправильно не нужны
00:52:33
входящие параметры не нужны
00:52:36
не чужд или опять на тебя у меня
00:52:38
простоты вы цилечка как раз мне удобно
00:52:41
очень представлю себе что юля этот
00:52:43
треугольник мы юлия сказали что она 5 на
00:52:47
5 на 6 вот она есть 5 5 на 6
00:52:51
она это знает что он опять 5 на 6 почему
00:52:55
она это знает потому что у нее есть
00:52:56
мозговые извилины turfed язык лесного а
00:52:59
теперь я в любой момент времени говорю
00:53:01
юля а какой-то периметр она может
00:53:04
сказать или гетмана может высчитать
00:53:06
исходя из того что у нее есть мозговые
00:53:08
извилины
00:53:10
может в любой момент времени абсолютно
00:53:12
потому что вот эта информация которая
00:53:14
записана здесь она не может пользоваться
00:53:17
внутри любого метода любого своего
00:53:21
метода и здесь соответственно ей
00:53:23
входящие параметры не нужны если я скажу
00:53:25
юля сколько периметр стёб и то ей тогда
00:53:29
она скажет дайте мне его параметры три
00:53:32
стороны входящих
00:53:36
после процедуры знает поэтому ей
00:53:38
входящие параметры не нужны и здесь
00:53:40
будет тереть он родион и
00:53:43
соответственно мы будем уже судьбу трех
00:53:47
сторон считать здесь мы могли бы
00:53:49
написать предположим за из . a + b . b +
00:53:55
c . c
00:53:58
но почему вот эти зыс ыс ыс ыс здесь
00:54:02
писать не обязательно потому что нет
00:54:04
входящих параметров и нет ни к чему
00:54:07
пересекаться этим названием они и так
00:54:09
одни здесь это же в ходящими параметрами
00:54:12
пересекались название и нам нужно было
00:54:14
явно указать слова зыс а здесь можно не
00:54:17
указывать и получается что получится a +
00:54:20
b + c вот так и когда нет указания слово
00:54:25
здесь то она и так сюда сомов там этом
00:54:27
его подставит и вот будет результат
00:54:31
результат сложения 3-х наших сторон
00:54:36
within a + b + c и теперь в меню
00:54:41
поскольку у нас этот метод периметр
00:54:45
имеет возвращаемый тип в мае не мы
00:54:48
делаем таким образом вот мы делаем
00:54:50
систем он придумал прям сразу печатаем
00:54:53
на консоль система определяет
00:54:55
предположим triangle это была ссылочка
00:54:58
на первый треугольник .
00:55:01
периметр сколько там у тебя периметр и
00:55:04
он напечатает
00:55:07
также я могу обратиться к triangle 2
00:55:10
потому что у меня есть два треугольника
00:55:12
и я сначала обращаясь к первому слою
00:55:14
периметр и у второго узнают периметр и
00:55:17
смотрел сколько в итоге периметру
00:55:22
и таким образом
00:55:23
ответил 22 и 16 все они посчитали исходя
00:55:27
из своих армий класса и своих каждый и
00:55:30
каждый ответил правильным и получается в
00:55:33
метод в моменте предположим вызовы
00:55:36
методов периметр метод передаются два
00:55:39
вида входящих параметров явные и неявные
00:55:41
явные не были переданы они явные были
00:55:45
перины передан этот треугольник у
00:55:47
которого вызван и он был доступен внутри
00:55:50
метода по слову
00:55:52
заставила сюда и сюда и получается что
00:55:55
правильные данные взяты
00:56:07
[музыка]
00:56:12
четыре
00:56:15
пальца
00:56:19
[музыка]
00:56:38
[музыка]
00:56:46
которого ты можешь со мной оригинал
00:56:50
я таким что дальше
00:57:02
[музыка]
00:57:18
[музыка]
00:57:28
[музыка]
00:58:04
[музыка]
00:58:14
[музыка]
00:58:22
[музыка]
00:58:52
[музыка]
00:59:19
[музыка]
00:59:30
[музыка]
00:59:36
[музыка]
00:59:48
[музыка]
00:59:54
[музыка]
01:00:06
[музыка]
01:00:11
чем
01:00:17
[музыка]
01:00:43
[музыка]
01:00:56
[музыка]
01:01:06
[музыка]
01:01:30
[музыка]
01:01:44
[музыка]
01:02:03
[музыка]
01:02:29
[музыка]
01:02:39
[музыка]
01:02:47
[музыка]
01:02:53
[музыка]
01:03:27
периодически
01:03:31
[музыка]
01:03:39
это не сумма не поняла я буду загружать
01:03:45
остальная сумма если что это
01:03:49
микрофон который
01:03:59
поэтому фокусник ручаться
01:04:04
двигаемся дальше что есть внутри класса
01:04:09
давайте структуру глаз в разберем
01:04:13
структура класса
01:04:19
не не это не второе правило это просто
01:04:22
ниже здесь напишу это не второе правило
01:04:25
структура классов должно быть так и что
01:04:28
есть поля класса
01:04:31
есть конструкторы а
01:04:34
есть
01:04:38
конструкторы а
01:04:42
есть методы
01:04:44
то есть они записываются вот именно в
01:04:47
таком порядке вначале самом верху поля
01:04:50
класса потом конструкторы потом методы
01:04:54
мы уже знаем что такое поля класса это
01:04:56
вот переменная описывающие
01:04:58
характеристики знаем что такое методы
01:05:00
конструкторы мы еще не знаем и сейчас
01:05:02
сегодня вот как раз таки разберем что то
01:05:05
другое в классе никогда абсолютно не
01:05:08
бывает вообще в априори может быть этого
01:05:12
много или вообще не быть может быть
01:05:14
этого много или вообще не быть и может
01:05:17
быть этого много или вообще не быть если
01:05:20
даже взять вот класс вейн он все равно
01:05:22
исходит из нашей структуры потому что
01:05:25
полей нет конструктор в нет и есть один
01:05:28
метод public static void
01:05:30
название его main вот входящие параметры
01:05:33
вот его тело все
01:05:35
складывается только из этой структуры
01:05:39
теперь что по поводу
01:05:41
инкапсуляции то есть инкапсуляции мы
01:05:43
поняли что это реализация области
01:05:46
видимости она реализована с помощью
01:05:50
четырех слов эти четыре слова они
01:05:52
называются модификатор доступа
01:05:56
получается здесь еще раз повторюсь что
01:05:59
это паблик
01:06:01
либо
01:06:03
protected
01:06:05
либо проявит
01:06:09
либо если ничего не поставить и
01:06:13
как раз таки модификатор доступа где
01:06:16
пишется перед полем класса перед
01:06:20
конструктором перед методом и перед
01:06:25
самим классом то есть вот 4 место где
01:06:28
записывается модификатор доступа больше
01:06:31
никогда не где вы не увидите только в
01:06:33
этих четырех местах вот и убеждаемся
01:06:36
перед классом стоит модификатор доступа
01:06:39
перед me тогда нам стоит модификатор на
01:06:42
выступая перед
01:06:44
полями тоже стоит модификатор доступа и
01:06:47
сейчас разберем что такое конструкторы
01:06:49
тоже там будет стоять модификатор
01:06:51
доступа то есть 4 место где он стоит что
01:06:54
внутри какого-то года он никогда не
01:06:58
будет стоять никогда снова паблик про
01:07:00
его нигде не будет только в этих четырех
01:07:02
местах
01:07:07
если не поставить то будет вот он вот
01:07:10
такой
01:07:11
он есть
01:07:14
джаве очень много есть такое что по
01:07:16
умолчанию если вы не фонде с но он вот
01:07:18
такой он обязан быть
01:07:21
теперь что такое конструктор разберем
01:07:25
вот давайте посмотрим вот мы создали
01:07:28
треугольник и вот мы установили ему три
01:07:30
стороны а
01:07:33
если нам нужно создать 10 треугольников
01:07:37
получается что нас и на момент создания
01:07:40
одного треугольника выходит четыре
01:07:42
строки соответственно если мы создаем 10
01:07:46
треугольников то будет 40 строчек кода
01:07:48
логичным а как можно сделать быстрее а
01:07:51
вот скажите даже вот как нам было бы
01:07:54
удобно если предположим вот же идет
01:07:56
момент создания треугольника и как бы
01:07:59
было бы классно вот сюда прямо вложить
01:08:01
556 и так вот вот это это и есть вот это
01:08:06
это конструктор что такое конструктор
01:08:09
конструктор это особый метод который
01:08:12
вызывается после слова new в момент
01:08:15
создания объектов и он вызывается
01:08:18
исключительно только для создания
01:08:21
объекта и больше не для чего его больше
01:08:23
никогда нигде нельзя будет вызвать
01:08:26
только в момент создания момент создания
01:08:29
объектов и он существует для нашего
01:08:32
удобства для удобства программиста чтобы
01:08:35
объекты можно было создать быстро в одну
01:08:38
строчку потому что когда нужно указывать
01:08:40
полей но сразу о товаре предположим
01:08:44
название и полную цену и цену со скидкой
01:08:46
иди дай дай только в идеале конечно
01:08:49
указать сразу все и все поэтому вот эта
01:08:53
это и есть вызов конструктора вот это
01:08:56
это тоже был вызов конструктора а почему
01:08:59
же тогда мы его вызвали а какой же
01:09:02
конструктор мы вызвали если у нас в
01:09:04
классе его нет
01:09:05
вот это это и есть тоже тот момент
01:09:08
который нужно вот запомнить что если мы
01:09:10
не написали ни одного конструктора то
01:09:14
конструктор вот такой автоматически
01:09:17
генерируется внутри нашего класса
01:09:19
автоматически как он выглядит и где они
01:09:23
записываются они записываются после
01:09:25
полей вот здесь
01:09:27
как он пишется давайте вот здесь вот
01:09:29
запишем формулу
01:09:31
создания конструктором
01:09:38
если не оказываем то стандартная батла
01:09:41
этого напишут
01:09:44
формула создание конструктора
01:09:57
первое слово
01:09:59
модификатор доступа это логично
01:10:05
первым словом модификатор доступа точно
01:10:08
также как и в методе потому что
01:10:10
конструктор это особый метод который
01:10:13
вызывается только после слова new и
01:10:17
он обычно всегда в конструкторе public
01:10:21
потому что конструктор это и есть то что
01:10:24
позволяет нам создать объект поэтому он
01:10:27
должен быть public
01:10:32
второе слово
01:10:35
название класса
01:10:39
сразу идет название класса то есть если
01:10:42
у вас
01:10:44
название класса triangle то название
01:10:47
вашего конструктора тоже тренингов
01:10:49
название класса в скобочках это и есть
01:10:53
название конструктора
01:11:04
следующим действием входящие параметры
01:11:08
ru
01:11:12
входящие параметры на входящие параметры
01:11:14
это точно такие же входящие параметры
01:11:16
как и в метод и
01:11:19
дальше тела
01:11:22
есть вот эта часть она точно такая же
01:11:26
как в нашем методе отличается только вот
01:11:30
этой частью то что есть возвращаемый тип
01:11:32
и название здесь возвращаемого типа нет
01:11:35
название один в один с названием нашего
01:11:37
класса совпадают один в один но так
01:11:44
если взять вот здесь получается если вот
01:11:47
я new и после new вот есть вызов
01:11:50
треугольника вызов конструктора если я
01:11:53
на него стану и нажму fnaf4 чтобы
01:11:55
посмотреть что отрабатывала fnaf4
01:11:58
нажимаю вот сюда кликается что сюда
01:12:01
отрабатывалась если его не было он
01:12:04
автоматически писался вот такой всегда
01:12:08
но если мы хотим то мы можем написать
01:12:12
его ручкой и вообще есть правило такое
01:12:15
что если мы хотим создать любой другой
01:12:18
конструктор а конструкторы между собой
01:12:21
могут отличаться только входящими
01:12:23
параметрами вот эта часть абсолютно
01:12:25
идентичная во всех конструкторах только
01:12:28
входящие параметры в одном пусто во
01:12:30
втором один входящий параметров третьем
01:12:33
при там и так далее в четвертом но
01:12:35
предположим когда начну входящие
01:12:37
параметры вот смотрите здесь три стороны
01:12:39
соответственно будут бы конструктор
01:12:41
удобен с тремя сторонами а
01:12:44
вот здесь две стороны и угол возможно
01:12:47
что как бы передается две стороны и угол
01:12:49
в конструктор а вот сюда предположим
01:12:52
такие параметры или те параметры которые
01:12:55
мы знаем
01:12:57
вот мы написали 1 и теперь вот ниже сюда
01:13:00
спускаемся и сейчас напишем 2
01:13:02
конструктор public
01:13:05
triangle
01:13:07
круглые скобки тела
01:13:10
вот таких два конструктора быть не может
01:13:13
абсолютно одинаковых но конструкторы
01:13:15
между собой отличаются входящими prime и
01:13:17
кроме поэтому сюда мы напишем тот
01:13:20
конструктор который удобен нам она
01:13:23
удобен тот который принимает сторону в
01:13:25
сторону и сторону предположим это а это
01:13:27
вы этот и
01:13:29
здесь я пишу что дайте нам выньте в инте
01:13:33
b и в ин-те
01:13:36
как только мы написали
01:13:38
a b c
01:13:42
теперь в мае не вот я сейчас перейду в
01:13:44
main
01:13:48
видите как сразу подписалась она как
01:13:51
подписала a : вы двое . целую . она
01:13:54
сразу поняла что это этот конструктор в
01:13:58
первом варианте был вызван другой
01:14:00
конструктор в этом пустой а в этот стиль
01:14:03
и входящими параметрами
01:14:17
теперь что делать с премиум ходящими
01:14:20
параметрами внутри метода как вы думаете
01:14:26
присвоено смотрите если конструктор это
01:14:29
то что нужно для удобства программиста
01:14:32
чтобы не вызывать при отдельных методов
01:14:35
раз два три о передать их внутри одного
01:14:38
якобы метода что делают вот эти методы 1
01:14:41
2 3 присваивается хранение а в яйце
01:14:44
значит и вот эти переменные которые нам
01:14:47
дали кисти пожалуйста должны присваивать
01:14:51
получается а бойцы и вот здесь мы теперь
01:14:55
пишем такой формат лист . а равняется
01:15:02
здесь . b равняется b
01:15:08
cis . цент равняется цен
01:15:17
вот задача которые должна была
01:15:19
выполняться пример методами site site
01:15:22
site
01:15:23
вот оно выполняется с помощью
01:15:24
конструктора понятен смысл
01:15:28
замечательным
01:15:31
замечательном
01:15:36
дописали
01:15:41
внутри конструктора можно делать все что
01:15:44
угодно вызывать любые методы да можно
01:15:47
было написать это вызов метода sun bay
01:15:49
sands можно было в конструктор это вот
01:15:53
делает кусочек кода внутри которого ты
01:15:55
можете отцу что в одном общем и в
01:15:58
некоторых конструкторах делается гораздо
01:16:00
больше чем здесь написано а давайте
01:16:04
теперь перейдем к более к реальным
01:16:06
задачам и то есть выходом слоем более к
01:16:10
реальным задачам
01:16:11
возьмем прошлое занятие
01:16:15
вот у нас был тур учился
01:16:19
вот у нас был моей вот давайте посмотрим
01:16:22
моим
01:16:25
в мае не мы писали что мы не турагенства
01:16:30
и
01:16:32
создавали в мае не 2-мерный массив а
01:16:36
как бы было бы по правильному знаем же
01:16:39
эту информацию которую вам дали сегодня
01:16:42
как бы
01:16:45
создать тип под названием
01:16:50
предположим тур
01:16:52
в котором есть поля класса
01:16:55
номер странно сколько дней
01:17:00
самолетом или нет сколько завелось
01:17:03
стоимость и полпути над или нет создать
01:17:07
такой тип сделать в нем соответственно
01:17:10
методы сет чтобы можно было это все
01:17:13
установить конструктор а потом создать
01:17:16
еще один тип под названием турагентство
01:17:20
которая в себе хранит предположим массив
01:17:24
туров
01:17:25
много туров давайте вот переделаем
01:17:28
сегодня вот вторую часть занятий
01:17:29
переделаем вот это задание полностью
01:17:31
чтобы видели как можно было делать этот
01:17:34
и то же задание только с другой стороны
01:17:36
начнем с ds продолжите дома поэтому
01:17:40
сколько мы сегодня успеем столько мы
01:17:42
сделаем
01:17:45
можно в папочке ls он 7 то есть смотрите
01:17:49
что нам нужно давайте делаем папочку
01:17:53
давайте сделаем папочку турагентство
01:17:56
внутри папочки 87
01:17:59
то уж можно даже назвать
01:18:02
туры
01:18:08
пакет пакет под названием туры и
01:18:18
дальше здесь делаем класс
01:18:22
под названием тур 1 тур
01:18:32
сделаем пакет неважно как называется это
01:18:35
не та без разницы да создаем класс под
01:18:40
названием тур
01:18:43
ну я понимаю давайте так смотрите
01:18:46
давайте так есть такое пока учился в
01:18:51
школе хорошо
01:18:52
есть такие
01:18:54
вот он включился в школе хорошо это мы
01:18:57
максимально не повезло я бы сказала
01:18:59
почему потому что расскажу вот есть
01:19:02
такое понятие как не в школе вот вообще
01:19:05
я обращаю внимание что есть такое как
01:19:07
синдром отличника от синдром отличника
01:19:09
это говорит тогда когда
01:19:11
человеку страшно сделать ошибку и он
01:19:13
думает что есть одно правильное решение
01:19:15
и вот тогда боится экспериментировать и
01:19:17
боится писать большие и маленькие буквы
01:19:19
писать какие-то слова больше
01:19:22
эксперимента потому что программирование
01:19:24
такого нет программирование нет понятия
01:19:27
один правильный ответ я могу одному
01:19:29
поставить классную оценку и второму а
01:19:31
хотя у них абсолютно разные решения вот
01:19:34
отличная работа у них абсолютно
01:19:35
по-разному ноту и я обоим сказала что
01:19:38
все хорошо потому что нет такого понятия
01:19:41
что задача имеет одно решение
01:19:43
поэтому не бойтесь ошибаться и не
01:19:45
бойтесь экспериментировать вообще ни с
01:19:47
чем здесь программирования
01:19:50
делаем тип тур теперь относительно типа
01:19:54
мы определяем как какие нам поля класса
01:19:57
важны вот теперь мы уже видим что на
01:20:00
идиш кота важно в индии они в стринги
01:20:04
вам помочь любят мед хорошо
01:20:11
проявит
01:20:17
делаем в инте 1 просмотр мы чтобы потом
01:20:22
не мучаться да вот как здесь мы учились
01:20:24
со стрингами очень мучались теперь у нас
01:20:27
все так как и должно быть в инте иди
01:20:30
страны вот смотрите а здесь много стран
01:20:34
да ни одна страна может быть вот как мы
01:20:37
проговорили а здесь может быть много
01:20:38
стран что это может быть массив до
01:20:42
массив молодец стой spring значок
01:20:45
массива назовем его аккаунт с
01:20:50
только обязательно еще про его
01:20:54
правит string countries
01:21:00
[музыка]
01:21:03
дальше 2 0 5 дней 7 дней и так далее я
01:21:07
бы сказала это в индии количество дней в
01:21:10
ин-те потому что слова дни мы в любой
01:21:12
момент можем записать это не проблема
01:21:14
поэтому проявлять и до из
01:21:25
type of века да будет наш самолет
01:21:30
автобус и так далее это будет у нас
01:21:32
проявит string
01:21:52
[музыка]
01:21:54
никто не помнит как транспорт
01:21:58
транспорт у
01:22:01
меня
01:22:06
[музыка]
01:22:10
не помню
01:22:17
если вы сейчас малинка знаю ладно
01:22:20
транспорт
01:22:29
транспорт type of transport отлично
01:22:33
дальше следующее
01:22:35
количество звезд тоже будет в индии
01:22:38
потому что нам очень удобно с ним будет
01:22:40
работать
01:22:42
проявит in the stars
01:22:50
прайс тоже будет в индии
01:22:55
and
01:22:57
price
01:23:00
и
01:23:11
полу пансионат пансионат это будет что
01:23:15
правит стрелка
01:23:18
[музыка]
01:23:19
type of food
01:23:29
не особое название будет
01:23:33
[музыка]
01:23:36
сервис сервис на отлично давайте сервис
01:23:44
вот мы определили получается
01:23:46
относительно 1 тур и какие поля нам
01:23:50
важны вот сейчас мы уже никого на почему
01:23:53
же правильно разбиваем получается по
01:23:55
типу
01:23:56
дальше давайте
01:23:59
сделать им конструктор который нам
01:24:02
удобен вот такие конструкторы нам были
01:24:05
бы удобны
01:24:06
как только мы думаем про конструктор
01:24:09
какой-то один из входящих параметров нам
01:24:12
сто процентов нужно теперь генерировать
01:24:14
это стоит тоже потому что густой
01:24:15
автоматически перестает генерироваться а
01:24:18
если пустого не будет потом в дальнейшем
01:24:20
будут проблемы с программированием
01:24:22
поэтому объясню попозже какие конкретно
01:24:25
когда дойдем до этой темы но сразу
01:24:27
просто себе за правило берите что как
01:24:30
только вы хотите написать исходящими
01:24:32
параметрами конструктор не стоит тоже
01:24:35
пишем ручками потому что он перестает
01:24:37
автоматически генерироваться пишем
01:24:39
постой конструктор public
01:24:42
дальше идет название конструкторы один в
01:24:45
один с названием класса тур круглые
01:24:47
скобки дело он как будто бы ничего не
01:24:50
сохраняет и ничего не делая полном арфе
01:24:53
важен
01:24:54
почему архива жанра скажу потому что от
01:24:57
этого типа потом будут дочерние типы и
01:25:00
если конструктора пустого не будет то
01:25:03
дочерние типы создать невозможно будет
01:25:05
как бесплодные класс ну как то не очень
01:25:08
поэтому он должен быть
01:25:14
а дальше конструктор мы теперь придумаем
01:25:17
тот который нам был бы удобен вот какой
01:25:19
давайте так
01:25:21
какой конструктор был дан был удобен
01:25:24
сразу передавая это так все входящие
01:25:26
параметры
01:25:27
честно говоря не очень сразу скажу
01:25:30
почему потому что очень много параметры
01:25:32
война все длинные 1
01:25:38
я бы сказала что вот мне неудобно было
01:25:41
бы в конструкторе передавать колун при
01:25:43
потому что надо сразу же бы иметь
01:25:45
заготовленный массив ну вот это неудобно
01:25:48
его нужно заготовить что получается на
01:25:50
строчку выше неудобная а вот удобно
01:25:53
перед предположим о еде ну к примеру
01:25:56
тоже не удобно и можно сказать что и
01:25:58
диски будут автоматически + 1 + 1 + 1 с
01:26:01
вами генерироваться можно так сделать
01:26:04
таким образом говорится что один а
01:26:09
потом при каждом следующем создание плюс
01:26:12
1 плюс 1 будет здесь отрабатывать мы
01:26:13
можем так сделать
01:26:16
сейчас не будем об этом ладно я понимаю
01:26:18
сварог
01:26:19
к примеру какой мне был бы удобен мне
01:26:22
был бы удобен сразу чтобы я указала к
01:26:24
примеру дни
01:26:26
транспорт stars прайс сервис то что
01:26:30
несложная
01:26:31
аккаунт рис добавить countries я сделаю
01:26:34
добавить добавить добавить отдельным
01:26:36
методом потому что мне не удобно
01:26:38
создавать целый массив вот я предположим
01:26:41
определила что удобно и пишу такой
01:26:43
конструктор
01:26:45
public тур круглые скобки в тело и
01:26:48
говорю что мне сюда нужно передать young
01:26:52
guys
01:26:55
string
01:26:58
type of
01:27:00
транспорт и кстати обратите внимание
01:27:03
когда написала слова string- и хочу быть
01:27:06
типов транспорта ночной псв и он мне
01:27:09
тоже показывает вариант type of
01:27:10
транспорт то есть он уже думает о том
01:27:13
что вы видите такое писать дальше stars
01:27:16
inc stars
01:27:19
энн райс и
01:27:23
string
01:27:27
к примеру вот такой мне удобен раз два
01:27:30
три 4 5
01:27:47
как сделать так чтобы база автоматом
01:27:50
считала номера им туров и кишки туров
01:27:52
сама присваиваем здесь можно указать что
01:27:55
идиш которая по умолчанию якобы единица
01:27:59
а
01:28:01
теперь вот здесь мне нужно присваивать
01:28:03
посмотрите я присваиваю у этого объекта
01:28:06
тот объект который создается на поле
01:28:09
edit я присваиваю
01:28:16
я бы свою перед вложим айди плюс плюс
01:28:20
что такое иди плюс плюс это увеличение
01:28:23
себя на единицу только вначале
01:28:25
присвоится что это будет 1 доллар а для
01:28:28
следующего
01:28:30
оно поменяется предположим на единицу
01:28:36
не поняли на двойку а для следующего
01:28:40
вызова конструктора на тройку и так
01:28:42
далее
01:28:46
почему здесь один или ноль а не ноль
01:28:49
когда ты поставишь 0 то первому
01:28:52
присвоится 0 потому что в этой строке 2
01:28:55
операции операция присваивания
01:28:58
и операция увеличения какую делать
01:29:00
первую и в этом случае вы указали что
01:29:03
смотри плюс плюс стоит после иди значит
01:29:06
она вначале присвоит а потом увеличат и
01:29:09
соответственно первый тур будет 0
01:29:11
сначала с 10 потом 1 2 3 и так далее но
01:29:15
если мы хотим куда нужно либо плюсики
01:29:18
передайте поставить либо вместо нолика
01:29:19
поставить единицу и начать с единицы все
01:29:23
дебатах либо так теперь еще мега важный
01:29:27
архи момент мигом
01:29:30
если мы хотим чтобы вот эта переменная
01:29:36
мы так не сделаем кстати вот этот момент
01:29:40
не сделаем
01:29:41
объясню почему это же переменная она
01:29:45
получается создается для каждого тура
01:29:48
своя если мы создадим предположим 10
01:29:51
туров то у всех будет переменная иди
01:29:54
первоначально 1 и всем присвоится 1 вот
01:29:58
так мы даже счетчик не сможем сделать
01:29:59
поэтому этим счетчиком пока не будем
01:30:02
заморачиваться ладно будет не будет у
01:30:05
нас и дежкин поддержку будем как-то
01:30:06
потом ладно давайте вот здесь в
01:30:09
конструкторе in the gem передавать
01:30:11
давайте конструкторе передавать
01:30:16
не сможем так там
01:30:21
ну и дальше здесь присваиваем получается
01:30:24
присваиваем до из транспортов и так
01:30:27
далее все внутри конструктора
01:30:31
жизнь . да из равняется
01:30:36
days
01:30:44
каком порядке вы будете присваивать
01:30:47
абсолютно неважно порядок не учитывается
01:31:46
вот такой конструктор мы создали который
01:31:48
нам удобный и теперь давайте создадим
01:31:51
main посмотрим какой у нас сейчас он
01:31:53
будет
01:31:55
моим вот в этой папке когда мы находимся
01:31:58
внутри топ с папки здесь можно опять
01:32:01
назвать main
01:32:03
создали вот такой конструктор
01:32:16
создаем main public static void main и
01:32:21
в этом у нас было создание дуров вот
01:32:25
давайте мы теперь здесь создаем пюре с
01:32:27
помощью такого образа тур тур 1
01:32:30
равняется a new tour и
01:32:33
вот здесь после слова него получается
01:32:36
сразу передаем входящие параметры да вот
01:32:38
сюда и
01:32:39
важный тоже омега момент это то что в
01:32:41
какой последовательности лежат они здесь
01:32:44
в такой ровно последовательности надо
01:32:45
передавать первым или вторым дни
01:32:48
соответственно сюда я даю вначале айди
01:32:52
потом дней
01:32:55
положим в первом туре у меня пять дней
01:32:57
соответственно я подпишу
01:33:05
не-не-не-не она параметры да да
01:33:08
догадалась не всегда
01:33:10
не имени параметра но не подсвечивает
01:33:13
почему потому что возможно что у тебя ни
01:33:15
один конструктор их 357 и он потом будет
01:33:17
динамически подстраивается какой-то
01:33:19
конструктор выбираешь исходя из
01:33:21
количества входящих параметров
01:33:25
сейчас запущу
01:34:00
[музыка]
01:34:10
после пятерочки получается у меня я
01:34:13
сразу смотрела что я следующем должна
01:34:15
положить я должна положить типов
01:34:18
транспорт а у меня и типов транспорт
01:34:20
смотрю самолет значит не нужно положить
01:34:22
поймет кавычках слова самолет и так
01:34:25
далее создаем опять-таки все но давайте
01:34:29
хотя бы не все давайте хотя бы три хотя
01:34:31
бы три остальные дома перенесете
01:34:35
самолет
01:34:37
потом звезды потом на цена звезды это 5
01:34:41
цена 120 соответственно 5 я же указала в
01:34:45
инте количество звезд соответственно у
01:34:48
меня в инте и прайс даже в инте да вы
01:34:52
что же за этим следить за типа
01:34:56
да когда она уже ближе к концу и уже
01:35:00
понимает что программа что нет другого
01:35:02
инструктора она подскакивает конечно
01:35:05
120 и сервис кончается полу пансионат
01:35:24
что делают часто начинающие программисты
01:35:27
они пишут вот эти слова айди : да из :
01:35:32
повторюсь что мы их не пишем не пишем
01:35:35
они здесь подставляются автоматически
01:35:37
самостоятельно
01:35:41
вот мы получается заполнили первый тур и
01:35:45
давайте таких мы сделаем еще перенесем
01:35:49
но я вот и змей на со своего мейна
01:35:51
перенесу еще 2 и 3 вот буквально два
01:35:55
остальные вы дома самостоятельно
01:35:57
соответственно я вот копируем
01:36:00
копирую-вставляю
01:36:02
вниз еще раз и еще раз и получается
01:36:06
меняю
01:36:08
тор 2 тур
01:36:13
323
01:36:18
70 получается дней
01:36:27
ссылаются ворота в корпус
01:36:36
мнение чувствую писатель на абсолютно
01:36:39
города
01:37:00
[музыка]
01:37:04
записываете вот так я оставлю вот такого
01:37:07
формата
01:37:50
[музыка]
01:37:56
[музыка]
01:38:04
[музыка]
01:38:16
[музыка]
01:38:25
так замечательно теперь смотрите мы
01:38:28
создали с помощью конструктора передали
01:38:31
туда 6 входящих параметров но ни одного
01:38:35
не передали
01:38:36
получается страны потому что страны нам
01:38:39
было неудобно это представьте в этот
01:38:41
конструктор что передать страны нам
01:38:43
нужно было сначала создать массив
01:38:46
добавить туда такой-то такой-то струи
01:38:48
потом его сюда в конструктор передать
01:38:50
неудобным а как бы было бы удобно было
01:38:53
бы мигом удобно если был бы метод под
01:38:56
названием сет добавить или это внутри
01:38:59
предположим тур 1 . эталон 3 италия тур
01:39:03
1 . it can try франция до 8 с помощью
01:39:06
метода it can try могли бы загонять
01:39:09
страны куда человек летит чтобы сюда
01:39:13
даже не было момента создания массива
01:39:16
зачем он здесь нужен вот такой вот метод
01:39:19
нам был был удобен то есть мы это
01:39:20
определили а теперь идем к вас тур
01:39:23
создавать такой метод
01:39:25
дописали все переходим класс тур
01:39:28
получается после конструктора
01:39:31
здесь мы пишем метод он будет паблик
01:39:36
больше никакого статика
01:39:41
дальше идет воет молча it down 3
01:39:48
круглые скобки тело
01:39:52
сюда будут нам передавать в стринги
01:39:56
аккаунт 3
01:40:02
подпишу сюда цель
01:40:07
добавить в массив со странами
01:40:13
в первую свободную ячейку
01:40:22
данную страну
01:40:25
вот так
01:40:28
кстати
01:40:31
очень важный момент это то что вы
01:40:34
смотрите вот здесь у нас есть ссылка на
01:40:38
массив а
01:40:39
где сам массив а
01:40:41
массива нет и
01:40:44
на самом деле вот здесь когда создаются
01:40:47
полями класса массив то здесь же он
01:40:50
должен быть объявлен и здесь же мы сразу
01:40:53
продумываем то есть соответственно
01:40:55
отвечаем себе на вопрос а сколько в туре
01:40:57
максимально может быть стран сколько-то
01:41:02
не но в турагентстве так чтобы не ну
01:41:06
подождите ну вот вы зашли в турагентство
01:41:08
вот здесь захочет говоришь а если у вас
01:41:11
там тура в 180 стран и
01:41:14
если такое не
01:41:17
этаж 1
01:41:19
значит сколько может быть максимум стран
01:41:22
в одном туре
01:41:23
нет 2 тоже мало это если автобусный
01:41:26
струн автобусный тур по европе там 10
01:41:29
может быть я видела 10 ну давайте 15 это
01:41:32
за глаза то что вообще когда-либо может
01:41:34
быть опасной в одном туре количество
01:41:37
стран соответственно вот здесь вы
01:41:39
создаете массив длиной как говорится
01:41:42
максимально то что вообще когда-либо
01:41:44
могло бы быть потому что вам же нужно
01:41:46
указать длину массива первоначально
01:41:49
когда вы его создаете и вот этом есть
01:41:51
недостаток массивов которые вы еще не
01:41:54
знаете какие туры будут созданы а вам
01:41:56
уже нужно указать количество ячеек но
01:41:59
получается уже нужно указать количество
01:42:01
стран и здесь вы указываете просто
01:42:04
максимальное что может быть предположим
01:42:07
15 это не говорит о том что в туре
01:42:10
когда-то столько будет нет это верхний
01:42:12
предел если вы переживаете назвали его
01:42:15
1500 и когда точно не будет никакого
01:42:18
период но больше
01:42:20
но зато при таком написании вы конечно
01:42:23
же память немножечко засоряете потому
01:42:26
что в памяти сохраняется создается
01:42:29
массивной 1500 зачем он нужен мне надо и
01:42:32
теперь вот этот массив
01:42:35
получается с помощью метода вот этого
01:42:38
это каунт и нам нужно загнать вот эту
01:42:41
страну в первую свободную ячейку
01:42:44
только какой сейчас массив на данный
01:42:47
момент времени мы не знаем этот массив
01:42:49
может быть уже со словами какими-то
01:42:52
предположим и пора ли уже мы ж не знаем
01:42:55
а
01:42:57
в следующей ячейке ну предположим ну
01:43:03
ну
01:43:05
ну и так получается 15 раз
01:43:12
то есть если мы один раз уже предположим
01:43:16
вызвали этот метод то у нас получится
01:43:18
вот таким образом что уже
01:43:21
ну это я визуального показала просто
01:43:24
какой сейчас в данный момент времени
01:43:25
может быть наш массив дальше раз два три
01:43:29
4 5 6 7 8
01:43:34
вот такой и наша задача вот эту страну
01:43:37
которую нам передали первую свободную
01:43:39
ячейку найти и сохранить и все для того
01:43:42
чтобы наш массив заполнился и этот метод
01:43:46
это кантри мы можем вызвать относительно
01:43:48
1 ура два раза три раза четыре раза 5
01:43:50
раз неважно и каждый раз он в эту ячейку
01:43:53
в эту вы этого эту сохранял информацию
01:43:55
понятен смысл
01:43:57
замечательный понятен
01:44:00
или нет
01:44:03
почему 12 потому что вот здесь
01:44:08
максимальный предел 12 не потому что
01:44:11
просто просто 15 написала
01:44:17
почему сохраняется null что такое ну
01:44:20
[музыка]
01:44:24
смотрите вот вот здесь давайте вот так
01:44:27
объясним когда мы создаем вот такой
01:44:30
массив давайте вот здесь вот поставлю
01:44:33
брат point и мы посмотрим а какой сейчас
01:44:35
на самом деле массив
01:44:39
массив когда мы говорим что сохраняет не
01:44:42
примитивный тип массив не может хранить
01:44:45
в себе якобы вообще ничего ничего не
01:44:47
бывает а
01:44:50
я что написала londa ну вот смотри вот
01:44:55
смотрите получается в аккаунт рис видите
01:44:58
вот массивчик элемент из а ну потому что
01:45:02
вот он массив визуального напишет null ,
01:45:05
null null null null null это пустое
01:45:08
место просто место
01:45:11
когда мы сейчас создали просто массив он
01:45:15
и диски вот все остальное сохранил а что
01:45:18
он сохранит на аккаунт с ничего значит
01:45:21
соответственно а ячейки есть значит
01:45:23
такие чайки в пустоте нолики и теперь
01:45:26
когда мы будем предположим вызывать
01:45:28
ментов у дев скажу как он будет
01:45:30
вызываться новым ту ради и ну
01:45:31
предположим и с помощью метода эко
01:45:34
внутри давать сюда предположим италия
01:45:39
соответственно вот это слово должно
01:45:42
сохраниться на первую свободную ячейку в
01:45:45
том массиве все а
01:45:50
почему именно в первый тур потому что у
01:45:53
того тура это же неявный параметр у того
01:45:56
тура который у которого вы см от данный
01:45:59
метод как найти первую свободную ячейку
01:46:01
нам нужно цикл фо который пройдется по
01:46:03
всем ячейкам нужен пишем цикл for по
01:46:08
круглые скобки телом генерируем яндексе
01:46:13
int i равняется нулю пока а и меньше как
01:46:18
этот наш массивчик называется наш
01:46:21
массивчик вот я смотрю вот здесь вот
01:46:23
здесь . counties да или просто аккаунт
01:46:27
рез потому что не было входящих
01:46:28
параметров и это название не
01:46:30
пересекается вот я посмотрела как он
01:46:32
называется получается ой меньше hound
01:46:35
рис .
01:46:37
makes life
01:46:39
news + а
01:46:42
здесь я делаю проверку если в текущей
01:46:46
ячейки пусто iv
01:46:49
текущей ячейки аккаунт рис по индексу ой
01:46:56
нет не is empty никаких методов не
01:46:58
вызывается относительно массива равно
01:47:01
равно ну если текущей ячейки аккаунт рис
01:47:05
по индексу пустота
01:47:11
то тогда на текущую ячейку
01:47:19
[музыка]
01:47:27
то тогда на текущую ячейку
01:47:30
присваиваем
01:47:32
присваиваем
01:47:35
эту страну которую нам дали
01:47:48
и
01:47:50
далее
01:47:52
что мы должны сделать и далее мы должны
01:47:55
оборваться конфа потому что и следующая
01:47:59
ячейка тоже ну это же на ней прессуются
01:48:01
италии следующие ячейка но у тоже на нее
01:48:04
талии до конца речей будет италия и
01:48:06
чтобы этого не было нам нужно остановить
01:48:10
теперь вот остановить это соответственно
01:48:13
что сделает нам нужно либо брейком
01:48:15
разорвать форм
01:48:17
давайте брейком разных лимфом брейком
01:48:20
все break остановились нашли первую
01:48:22
свободную ячейку сохранили остановились
01:48:26
и
01:48:27
теперь я сохраню получается италия вот
01:48:32
сохранила к 1 франция сейчас сохранят 2
01:48:35
получается тор 2
01:48:38
.
01:48:40
это country
01:48:43
франция
01:49:01
актеру третьему я вообще сохраню грузия
01:49:05
и армения получается 2 целых thor 3 и .
01:49:09
это кантри и
01:49:18
тур 3 . foundry армения
01:49:27
а
01:49:37
грузия , армения если ты напишешь да
01:49:40
тогда она сохранится в одну ячейку
01:49:43
грузия , армения
01:49:45
а нам нужно чтобы сохранилась я учусь
01:49:48
покажу вам в режиме дэбак а вот здесь
01:49:50
делаю просто системой printer and
01:49:54
вот смотри как сохранится
01:49:58
будет объект который это один тур 2 тур
01:50:01
3
01:50:06
парадному gown dress
01:50:08
италия а все остальные новые
01:50:12
спор втором gown dress франция все
01:50:16
остальные null и а в тур третьем к
01:50:20
undress в грузии в первой ячейке армиями
01:50:22
во второй во все остальные новые а если
01:50:26
ты дашь грузии , армении она сохранится
01:50:28
тебя на первой ячейке грузия , армения а
01:50:31
на 2 будет пусто и все остальные новый а
01:50:36
зачем вот так же удобнее
01:50:40
смысл сплита смысл сплита сплит
01:50:44
разбивает на массив вот тебе уже готовый
01:50:46
массив зачем
01:50:52
да и ну вот то что ты предложила это
01:50:55
костыль называется что такое костыль
01:50:58
костыль это когда правой ногой левое ухо
01:51:01
чешем но она работает вроде почесали но
01:51:03
очень неудобно и вроде знаете как ну вот
01:51:07
на костылях программа на костылях это
01:51:09
тогда когда мы не хотим писать нормально
01:51:11
но мы подправили вроде работает а коряво
01:51:13
мы сейчас отдохнешь и она поломается
01:51:15
вот-вот в твоем случае это именно вот
01:51:17
так получается что это костыль добавить
01:51:20
много
01:51:26
конечно выходите и достигаете
01:51:33
[музыка]
01:51:35
дайте компании ой а то что выйти комбо
01:51:38
город вот смотрите это все компании эти
01:51:42
компании говорят что у них все на всех
01:51:43
костылях нигде нет нормального кода
01:51:45
везде гавно код везде всех этих ником
01:51:48
послушать не все говорят что у нас все
01:51:50
так фигово у нас все на костылях боже
01:51:52
мой вообще просто такой бардак везде в
01:51:54
ходе барда все так говорят вот все не
01:51:57
бывает идеального поверьте вот простая у
01:52:02
нас одна выпускница девочка уже полтора
01:52:05
года работает в банке вот я вчера
01:52:07
буквально звонила она говорит боже мой у
01:52:10
нас-то вместе с тобой месяц я не понимаю
01:52:12
за что они платят столько программистом
01:52:14
когда то что мы не могли сделать за
01:52:16
месяц мы выкладываем два месяца все но
01:52:19
по гарему работает они как-то все это ну
01:52:22
бы так медленно все делают с нами
01:52:24
говорил так все и было написано
01:52:32
да да вероятность огромное что вот так
01:52:35
именно все пишут конечно потому что вы
01:52:38
думаете что они боги а на самом деле
01:52:41
когда вы становитесь там вы понимаете
01:52:43
что можем этот оказывается так все так
01:52:46
делаю всегда находят потому что не знают
01:52:49
как
01:52:54
акула не
01:52:56
точно а ножницы с опытом приходит
01:52:58
поэтому мы вообще не переживайте я
01:53:02
максимально показываю все равно это все
01:53:04
только с практика только с практикой на
01:53:06
работается
01:53:08
я честно говоря нужно перевернуть да да
01:53:12
да да да мы просим перевернуть на
01:53:14
страницу на турс
01:53:17
добавить аккаунт и
01:53:19
нам еще надо сегодня чуть чуть поделать
01:53:22
так что сейчас ребята хорошо
01:53:25
вместо брейка здесь можно поставить
01:53:28
рутину тогда рыть он остановит весь
01:53:31
метод если бы он был бы написан после
01:53:34
цикла for он бы не отработал и здесь
01:53:36
стоял а break он останавливает конкретно
01:53:40
цикл for a
01:53:43
continue это на следующий круг итерации
01:53:46
перехватят моего поста еще не разбирали
01:53:48
[музыка]
01:53:52
continue не разрывает цикл фон его не
01:53:55
нет не отрывая это просто на следующий
01:53:58
круг на следующий пункт вниз не
01:54:00
пропускает а
01:54:05
зачем тебе следующую ну да она вложено
01:54:07
уже можно вообще можно положить давайте
01:54:10
теперь посмотрим еще что у нас вот то
01:54:12
есть по туру мы сделали все что нам пока
01:54:15
нужно но это еще далеко не все то что
01:54:18
вообще может быть внутри класса прям как
01:54:20
я методы здесь могут быть они еще могут
01:54:23
быть добавлены
01:54:24
теперь давайте вот так
01:54:32
у
01:54:35
нас есть
01:54:38
дальше туры да вот много туров все как в
01:54:42
виде одного двухмерного массива много
01:54:45
туров мы можем сказать что эта программа
01:54:47
которая как бы получается как бы
01:54:50
программа под названием турагентство ну
01:54:52
предположим это тип турагентство к
01:54:54
примеру давайте сделаем такой тип
01:54:57
турагентство
01:54:59
делаем новый тип
01:55:03
турагентство
01:55:09
[музыка]
01:55:26
[музыка]
01:55:34
теперь относительно турагентство что нам
01:55:37
важно [музыка]
01:55:39
я бы сказала что нам важны дурой
01:55:42
правильно
01:55:46
править
01:55:53
тип данных смотрите-ка культур тип
01:55:57
данных тур и
01:56:01
ставим значок массивы и называем их
01:56:05
предположим турс
01:56:12
равняется new
01:56:14
здесь поскольку массив то мы обязаны его
01:56:17
дальше продлить объявить и указываем
01:56:20
предположим здесь сразу заведомо
01:56:22
указываем максимальное количество дуров
01:56:25
которое вообще у нас может быть сколько
01:56:28
[музыка]
01:56:30
давайте тысячу сразу укажем все у нас на
01:56:35
точно больше не создадим тысячу ну хотя
01:56:38
неважно с на 1000 предположим
01:56:41
что относительно турагентство еще нам
01:56:43
было бы важно если было бы важно номер
01:56:45
телефона график работы название
01:56:48
турагентство тому вы указывали бы здесь
01:56:50
бы панаме
01:56:52
давайте сделаем проявит
01:56:55
string name
01:56:57
of agency
01:57:08
про with string
01:57:12
график работы как будет график работы
01:57:27
и
01:57:28
проявят
01:57:30
string
01:57:39
номер телефона к примеру и
01:57:48
теперь давайте так вашим домашним
01:57:51
заданием
01:57:55
сделать здесь
01:57:57
удобные конструкторы
01:58:02
1
01:58:08
сделать метод
01:58:10
сделать методы :
01:58:19
первые
01:58:20
добавить тур
01:58:23
туры
01:58:25
добавить turk туром это примерно точно
01:58:28
также как добавить страну к странам у
01:58:30
вас будет ровный аналог до в массив тора
01:58:34
вот у вас есть массив только у вас там
01:58:36
был тип string с дестур ничем не
01:58:38
отличается
01:58:44
второе
01:58:53
второе я сразу перейду к класс тур
01:58:59
скло сидур чего нам не хватает это на
01:59:03
все поля сделать методы сет
01:59:07
на все поля то есть вот здесь я подпишу
01:59:18
на все поля сделать методы set я вот эти
01:59:23
два класса своих я скинул тоже в общий
01:59:26
чат для того чтобы всё как было вот этот
01:59:29
один в один на все поля сделать методы
01:59:31
сет
01:59:33
на все поля
01:59:36
сделать
01:59:39
методы get что такое метод get вернуть
01:59:43
значение поля
01:59:49
если сет метод устанавливает значение
01:59:53
поля tagged возвращает значение поля
01:59:55
предположим я спрашиваю а как тебя зовут
01:59:58
а сколько тебе лет да и объект
02:00:00
возвращает значение он имеет
02:00:03
возвращаемый тип соответственно к методе
02:00:05
то есть в этом классе больше ничего в
02:00:07
классе тур это на все методы сделать на
02:00:10
все поля сделать методы сет на все
02:00:12
поляну сделать метод где в этом классе
02:00:15
все
02:00:16
дальше возвращайся в класс
02:00:19
туры тур агентство вот здесь дальше
02:00:23
пошли все методы которые со звездочкой
02:00:25
дальше вот то что наша основная цель что
02:00:28
нам надо сделать и это сделать блок
02:00:31
четверга закончена остальные методы они
02:00:34
будут со звездочкой и те что со
02:00:36
звездочкой мы разберем на занятии мы
02:00:38
начнем занятия с разбора как мы зделали
02:00:40
домашку и продолжим ее
02:00:42
для того кто молодо вот вам может там
02:00:45
показаться можно поэтому здесь
02:00:47
сделать методы сделать методы
02:00:53
напечатать
02:00:57
самый
02:00:58
[музыка]
02:01:00
самый дорогой тур
02:01:04
какой у нас там еще есть вы помните вот
02:01:07
эти вот все методы которые у нас были у
02:01:09
нас получается были варианты указать
02:01:12
среднюю стоимость указать среднюю
02:01:15
стоимость любого тура вывести туры в
02:01:17
определенную сторону увести туре ценой
02:01:19
отдал и так далее вот это все вот эти
02:01:22
все варианты они должны быть в виде
02:01:24
методов внутри тур агентство в виде
02:01:28
методов
02:01:31
здесь напишу напечатать самый дорогой
02:01:33
тур это то с чего мы начнём следующее
02:01:35
занятие просто сразу вам говорю с чего
02:01:37
мы начнём да и соответственно вот это
02:01:39
это мы можем сразу доработать напечатать
02:01:43
самый дорогой дур и
02:01:45
перенести
02:01:52
перенести 6 вариантов
02:01:58
запросов в методы данного класса
02:02:08
только там вы работали с типом string с
02:02:11
двойным массивом а здесь вы в этом
02:02:13
классе тур десна вы будете работать
02:02:15
спасибо в туром у вас будет по-другому
02:02:17
работал и
02:02:20
это такая более творческая задача такая
02:02:24
она подумает можно сказать и
02:02:25
соответственно с неё мы продолжим
02:02:30
постарайтесь к четвергу принципе сегодня
02:02:32
понедельник но если вы вообще никто не
02:02:35
сделает домашку или даже не сделаете
02:02:37
ничего страшного мы с этого начнем того
02:02:39
что мы сто процентов ее разберем потому
02:02:41
что она непростая она вся непростая она
02:02:44
уже прошла по структуре поэтому по
02:02:45
структуре все что связано с мы будем
02:02:47
разбирать
02:02:50
ребят чертова на нее есть вопросики
02:02:58
вопросиков нет давайте так как вы
02:03:00
оцените по сложности от 1 до 10
02:03:02
сегодняшнюю тему 10 максимально сложно
02:03:05
один максимально легко тебя не спрашиваю
02:03:09
вы ребята
02:03:10
[музыка]
02:03:15
997
02:03:17
889 у тебя
02:03:19
[музыка]
02:03:29
ну вот могу сказать где-то 8 9 wot
02:03:32
должна была уровень сложности быть на
02:03:34
сегодня 89 примерно так
02:03:36
как мы все понятно
02:03:40
мы начали структуру мы начали структуру
02:03:44
даже если
02:03:45
ничего не сделаете это ничего страшного
02:03:48
даже если вообще ничего не сделать
02:03:50
сейчас просто сложный переломный момент
02:03:55
она консолью на детсада та же самая
02:03:59
другая

Описание:

На этой странице вы можете по ссылке скачать медиафайл «Занятие 7 (20.06.22) Java (основы) поток 32» максимально возможного качества БЕЗ каких-либо ограничений на количество загрузок и скорость скачивания.

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

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

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

mobile menu iconКак можно скачать видео "Занятие 7 (20.06.22) Java (основы) поток 32"?mobile menu icon

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

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

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

mobile menu iconКакой формат видео "Занятие 7 (20.06.22) Java (основы) поток 32" выбрать?mobile menu icon

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

mobile menu iconПочему компьютер зависает при загрузке видео "Занятие 7 (20.06.22) Java (основы) поток 32"?mobile menu icon

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

mobile menu iconКак скачать видео "Занятие 7 (20.06.22) Java (основы) поток 32" на телефон?mobile menu icon

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

mobile menu iconКак скачать аудиодорожку (музыку) в MP3 "Занятие 7 (20.06.22) Java (основы) поток 32"?mobile menu icon

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

mobile menu iconКак сохранить кадр из видео "Занятие 7 (20.06.22) Java (основы) поток 32"?mobile menu icon

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

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

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