Самый лучший плейлист по java для новичка. Сам сейчас учусь, использую этот плейлист как шпаргалку. Автору спасибо громное и успехов в дальнейших курсах. Обязательно посмотрю про андроид и еще чего-нибудь.
Отличный плейлист о java) Понятное объяснение и приятный голос автора обеспечивают не только интересное обучение, но и приятное для ушей:) Я изучал python, но понял что лично для меня и моих идей лучше java, kotlin и java script. После того как полностью изучу этот язык пойду слушать и про android.\ Удачи всем кто только начинает свой путь программиста и тем кто уже имеет опыт! good luck!
Если в truck сделать protected boolean isLoaded; То в main будет актуальна и корректно работать запись: Truck truck = new Truck(5600, new byte [] {100,0,50}, true); и setLoaded не нужен соответственно.
У меня так не сработало, я сделал по другому в классе truck, в методе get loaded прописал так: protected String getLoaded() { String otvet; If (isLoaded) otvet = "Грузовик загружен"; else otvet = " Грузовик не загружен"; return otvet; } То есть создал переменную otvet и в условии присвоил ей значения, потом через return вернул её, в таком случае не надо дописывать доп строчки в классе main
Поля и методы, обозначенные модификатором доступа protected, будут видны: в пределах всех классов, находящихся в том же пакете, что и наш; в пределах всех классов-наследников нашего класса. А в целом конечно спасибо за базу, но советую всем кто обучается у "интернет-гуру" перепроверяйте инфу в гугле.
16:35 показывает ошибку, когда пишу "truck.setLoaded(true)" подскажите как решить, пожалуйста🥲🥲🥲 Разобрался! вместо "truck.setLoaded(true)" пишется "((Truck) truck).setLoaded(true)". т.е. "((ClassName) ObjectName).Method()". такая же история и с методом подкласса (Truck) "getLoaded()". Ошибок НЕ показывает. Насколько я понял, после какого-то обновления немножко изменили способ вызова методов подклассов.
Хочу написать тут для таких же дебилов как я, НЕ ОБРАЩАЙТЕСЬ К МЕТОДАМ В МАТЕРИНСКОМ КЛАССЕ, т.е если вы делаете как их я называю шаблон для дочерних классов, то в них не надо писать обращение к методам
Добавлю от себя в ходе теста, чтобы не писать лишний код с гет и сет именно в мейне, мы можем написать что getLoaded будет возвращать String. И в конце к return дописать " ". В таком случае будет точно такая же запись но при этом, в мейне в самой функции нового объекта не придется дописывать лишние 2 строки. Однако так как я новичок интересно мнение более опытных ребят, есть ли разница вернется ли нам строчная запись или же тип boolean или нет ?
Тут скорее удобство (я если что не опытен). Тебе же в будущем придется менять этот параметр или заставлять другого? Скорее всего с boolean легче вводить значения ( boolean = false !boolean =true(вроде так)), наверное так. НО ТЫ ОЧЕНЬ ХОРОШО СДЕЛАЛ, ЧТО РЕШИЛ ЭКСПЕРЕМЕНТИРОВАТЬ, это довольно полезно.
protected boolean isLoaded; public Truck(float speed, int weight, String color, byte[] coordinate) { super (speed, weight, color, coordinate); } public Truck(float speed, int weight, String color, byte[] coordinate, boolean loaded) { super (speed, weight, color, coordinate); setLoaded(loaded); System.out.println(getLoaded()); } public void setLoaded(boolean loaded) { this.isLoaded = loaded; } public String getLoaded() { String infoLoading; if(isLoaded) infoLoading = "Грузовик загружен"; else infoLoading = "Грузовик не загружен"; return infoLoading; } Попробуйте вот такую запись кода в классе TRUCK. Мне кажется так код понятнее. Сделал по аналогии с классом родителем Transport. Можете сами посмотреть, что принцип использования методов setLoaded и getLoaded такой же как принцип setValues и getValues. И кстати там в getLoaded я ввел переменную которую мы возвращаем через return, а в классе Truck просто прописал что используем итог метода get.Loaded System.out.println(getLoaded()). И вследствии этого при создании объектов ничего не надо прописывать как делает автор на 16:40 и 16:48. Всё выводится автоматически.
Поясните, пожалуйста! А зачем здесь setLoaded вообще? Я переписал как Вы написали, через возврат строки плюс sout в конструкторе, и заметил, что setLoaded не подсвечен в ide. Удалил его совсем.
мне кажеться что сделано для других настроек, ну тип как показивали если я хочу написать возможность ездить на 2 колесах, для мопеда надо а для авто нет
объясните пожалуйста момент на 4:50. почему там выдаётся ошибка и почем она решается так как он показал позже. впервые что-то перестаю понимать по твоим видеоурокам
У каждого класса должен быть конструктор который инициализирует какими то основными значениями объект при создании. Если его нет то автоматически создается конструктор по умолчанию. Если в классе объявлены другие конструкторы то конструктор по умолчанию использовать уже нельзя.Конструктор по умолчанию это по сути public ClassName() {super();} Так как в родителе у нас нет конструктора без параметров то компилятор ругается.
Сам только учусь это понимать и я бы это описал так. Мы дали две ветки создания класса транспорт: с 4 переменными и с 2 и другого быть не может. Поэтому при создании пустого класса транспорт компухтер нас не понимает т.к. такого класса и в помине не существует. А решил он путем все таки создания такого пустого класса хоть и без каких-либо действий. Весь код написаный ниже для него пока никак не влияет, он просто существует как класс без дела
Доброго времени суток, уважаемый автор! Спасибо вам за ваши видео, благодаря вашим стараниям получается освоить Java! Но вот в чем появился вопрос: Установив модификатор доступа для метода/функции «protected» в родительском классе я по прежнему имею к нему доступ(к методу) в классе main… объясните, пожалуйста, почему
Еще нужно? Он допустил ошибку (логично, зная, что это бесплатные уроки), этот метод может работать: с наследниками, внутри класса И в (походу)в этой папке или, что-то подобное. И на будущее, смотри в интернете если что-то не понял, можно и в комментариях, просто ему приходит 50 сообщений в день, он физически не сможет ответить на все. Хорошо было бы проверять информацию в интернете, но мы все понимаем, что нам лень.
@@orbulka._. спасибо за ответ) В тот же вечер разобрался в чем тут дело) а спустя время понял, что это не единственная ошибка в данном «курсе», и все равно спасибо автору) На случай если кому то будет полезно: Модификатор доступа в сигнатуре метода, а так же в полях/переменных имеют следующую иерархию доступа. Иерархия строгости доступа в порядки убывания: 1. private - доступ только внутри класса. 2. default или просто не указываем модификатор - доступ в классе и во всем пакете, т.е. и у наследников и других «независимых» классов (если все они в том же пакете, что и класс родитель). 3. protected - тоже самое, что и без модификатора доступа, только еще за пределами пакета сохраняется доступ для классов наследников. 4. public - полный доступ. И коль вы себе позволили давать мне советы, хоть я и не просил, то и я себе позволю дать вам совет: Советы можно давать только в тех случаях, когда вы отлично понимаете предмет. Как я понял по изложенному вами, это не про вас. Вы упустили важную деталь этого модификатора. За пределами пакета так же есть доступ у классов наследников! Всех благ!
Кто-нибудь объясните зачем он прописал строку кода truck.setLoaded(true) на 16:40 если мы уже указали в параметрах объекта значение false, то есть не загружен...хэлп??
@@poliev_edu то есть изначально параметр(поле класса Truck) isLoaded принял false, но при исполнении метода setLoaded в него пришло значение true, правильно?
@@vadimosadchenko6993 Вроде не так, мы не могли и просто вывести тру, так что использовали методы, чтобы он мог выводится, без этого нам бы ничего не вывелось. (Стоять, ах ты с)
Одно не понял. Если наследуем грузовик от транспорта, а, условно, отечественный грузовик от грузовика, то при ключевом слове super он будет искать поле начиная с грузовика или транспорта. Другими словами, если обращаемся через ключевое слово super, то обращаемся к первому (самому старому) в цепочке наследования или на 1 старше?
Самый лучший плейлист по java для новичка. Сам сейчас учусь, использую этот плейлист как шпаргалку. Автору спасибо громное и успехов в дальнейших курсах. Обязательно посмотрю про андроид и еще чего-нибудь.
Как успехи?
СУПЕР
@@repeat_str_four
как успехи?
@@amazing_youtube я бросил джаву
@@repeat_str_four я бросил джаву
Все круто!Инфа удобно упорядочена и легко подана.Это первый мой коммент за 14 уроков
можешь пожалуйста объяснить момент вначале. 4:50. почему там ошиба то?
Спасибо вам за все уроки! Очень просто и понятно!
Отличный плейлист о java)
Понятное объяснение и приятный голос автора обеспечивают не только интересное обучение, но и приятное для ушей:)
Я изучал python, но понял что лично для меня и моих идей лучше java, kotlin и java script.
После того как полностью изучу этот язык пойду слушать и про android.\
Удачи всем кто только начинает свой путь программиста и тем кто уже имеет опыт!
good luck!
Как успехи?
Спасибо, очень информативно!
Спасибо!
Подробно и понятно информация изложена )
Доброго времени суток, уважаемый автор! Спасибо вам за ваши видео, благодаря вашим стараниям получается освоить Java!
Как успехи?
Очень хорошо объяснили, спасибо
Под новым видео все меньше и меньше лайков. Ни все выдерживают )
отлично объяснил!
Видео супер 🎉
у вас талант по обяснению!
Если в truck сделать protected boolean isLoaded;
То в main будет актуальна и корректно работать запись: Truck truck = new Truck(5600, new byte [] {100,0,50}, true); и setLoaded не нужен соответственно.
Я тоже не понял зачем лишний setLoaded
У меня так не сработало, я сделал по другому в классе truck, в методе get loaded прописал так:
protected String getLoaded() {
String otvet;
If (isLoaded)
otvet = "Грузовик загружен";
else
otvet = " Грузовик не загружен";
return otvet;
}
То есть создал переменную otvet и в условии присвоил ей значения, потом через return вернул её, в таком случае не надо дописывать доп строчки в классе main
как ты хороош!
Поля и методы, обозначенные модификатором доступа protected, будут видны:
в пределах всех классов, находящихся в том же пакете, что и наш;
в пределах всех классов-наследников нашего класса.
А в целом конечно спасибо за базу, но советую всем кто обучается у "интернет-гуру" перепроверяйте инфу в гугле.
Спасибо!!!
1-12 уроки всё хорошо было
13 урок - сложновато
14 урок - ничего не понимаю
Второй раз смотрю этот курс, в прошлый раз дошел до этого 14 урока и начал заново. Сейчас опять на 14 уроке ступор.
16:35
показывает ошибку, когда пишу "truck.setLoaded(true)"
подскажите как решить, пожалуйста🥲🥲🥲
Разобрался!
вместо "truck.setLoaded(true)" пишется "((Truck) truck).setLoaded(true)".
т.е. "((ClassName) ObjectName).Method()".
такая же история и с методом подкласса (Truck) "getLoaded()".
Ошибок НЕ показывает.
Насколько я понял, после какого-то обновления немножко изменили способ вызова методов подклассов.
О, огромное спасибо тебе. Я тоже не понял что ха хрень
@@_dikiy_omlet_102 Пожалуйста. Всегда рад помочь)
Хочу написать тут для таких же дебилов как я, НЕ ОБРАЩАЙТЕСЬ К МЕТОДАМ В МАТЕРИНСКОМ КЛАССЕ, т.е если вы делаете как их я называю шаблон для дочерних классов, то в них не надо писать обращение к методам
Спасибо, сидел и мог понять, что не так, очень выручил
Благодарю за проделанный труд, время.Очень полезно, просто и понятно.
Вот и настала писта мне
Все было норм до этого урока, я понимаю, что я не семи пядей во лбу, но именно на этом уроке я запутался, что и для чего
СПАСИИИИББОООООО
Добавлю от себя в ходе теста, чтобы не писать лишний код с гет и сет именно в мейне, мы можем написать что getLoaded будет возвращать String. И в конце к return дописать " ". В таком случае будет точно такая же запись но при этом, в мейне в самой функции нового объекта не придется дописывать лишние 2 строки.
Однако так как я новичок интересно мнение более опытных ребят, есть ли разница вернется ли нам строчная запись или же тип boolean или нет ?
Тут скорее удобство (я если что не опытен). Тебе же в будущем придется менять этот параметр или заставлять другого? Скорее всего с boolean легче вводить значения ( boolean = false !boolean =true(вроде так)), наверное так. НО ТЫ ОЧЕНЬ ХОРОШО СДЕЛАЛ, ЧТО РЕШИЛ ЭКСПЕРЕМЕНТИРОВАТЬ, это довольно полезно.
protected boolean isLoaded;
public Truck(float speed, int weight, String color, byte[] coordinate) {
super (speed, weight, color, coordinate);
}
public Truck(float speed, int weight, String color, byte[] coordinate, boolean loaded) {
super (speed, weight, color, coordinate);
setLoaded(loaded);
System.out.println(getLoaded());
}
public void setLoaded(boolean loaded) {
this.isLoaded = loaded;
}
public String getLoaded() {
String infoLoading;
if(isLoaded)
infoLoading = "Грузовик загружен";
else
infoLoading = "Грузовик не загружен";
return infoLoading;
}
Попробуйте вот такую запись кода в классе TRUCK. Мне кажется так код понятнее. Сделал по аналогии с классом родителем Transport. Можете сами посмотреть, что принцип использования методов setLoaded и getLoaded такой же как принцип setValues и getValues. И кстати там в getLoaded я ввел переменную которую мы возвращаем через return, а в классе Truck просто прописал что используем итог метода get.Loaded System.out.println(getLoaded()). И вследствии этого при создании объектов ничего не надо прописывать как делает автор на 16:40 и 16:48. Всё выводится автоматически.
Поясните, пожалуйста! А зачем здесь setLoaded вообще? Я переписал как Вы написали, через возврат строки плюс sout в конструкторе, и заметил, что setLoaded не подсвечен в ide. Удалил его совсем.
А я понял. Типо можно не использовать класс Transport а использовать его классы наследники (Car, Truck) что бы было более упорядочено все.
мне кажеться что сделано для других настроек, ну тип как показивали если я хочу написать возможность ездить на 2 колесах, для мопеда надо а для авто нет
объясните пожалуйста момент на 4:50. почему там выдаётся ошибка и почем она решается так как он показал позже. впервые что-то перестаю понимать по твоим видеоурокам
У каждого класса должен быть конструктор который инициализирует какими то основными значениями объект при создании. Если его нет то автоматически создается конструктор по умолчанию. Если в классе объявлены другие конструкторы то конструктор по умолчанию использовать уже нельзя.Конструктор по умолчанию это по сути public ClassName() {super();} Так как в родителе у нас нет конструктора без параметров то компилятор ругается.
Сам только учусь это понимать и я бы это описал так. Мы дали две ветки создания класса транспорт: с 4 переменными и с 2 и другого быть не может. Поэтому при создании пустого класса транспорт компухтер нас не понимает т.к. такого класса и в помине не существует. А решил он путем все таки создания такого пустого класса хоть и без каких-либо действий. Весь код написаный ниже для него пока никак не влияет, он просто существует как класс без дела
У меня она не чинится
информация хорошая було бы круто если бы давал задачку а в начале нового видео давал решение
було.
Изгой @@arsikkbar
У меня вопрос:
Допустим, координаты сильно изменились и byte уже не хватает для описания координат.
Каким образом можно переделать все это под int?
(int.valueOf(название переменной)
Может помочь.
Доброго времени суток, уважаемый автор! Спасибо вам за ваши видео, благодаря вашим стараниям получается освоить Java!
Но вот в чем появился вопрос:
Установив модификатор доступа для метода/функции «protected» в родительском классе я по прежнему имею к нему доступ(к методу) в классе main… объясните, пожалуйста, почему
Еще нужно? Он допустил ошибку (логично, зная, что это бесплатные уроки), этот метод может работать: с наследниками, внутри класса И в (походу)в этой папке или, что-то подобное. И на будущее, смотри в интернете если что-то не понял, можно и в комментариях, просто ему приходит 50 сообщений в день, он физически не сможет ответить на все. Хорошо было бы проверять информацию в интернете, но мы все понимаем, что нам лень.
@@orbulka._. спасибо за ответ)
В тот же вечер разобрался в чем тут дело) а спустя время понял, что это не единственная ошибка в данном «курсе», и все равно спасибо автору)
На случай если кому то будет полезно:
Модификатор доступа в сигнатуре метода, а так же в полях/переменных имеют следующую иерархию доступа.
Иерархия строгости доступа в порядки убывания:
1. private - доступ только внутри класса.
2. default или просто не указываем модификатор - доступ в классе и во всем пакете, т.е. и у наследников и других «независимых» классов (если все они в том же пакете, что и класс родитель).
3. protected - тоже самое, что и без модификатора доступа, только еще за пределами пакета сохраняется доступ для классов наследников.
4. public - полный доступ.
И коль вы себе позволили давать мне советы, хоть я и не просил, то и я себе позволю дать вам совет:
Советы можно давать только в тех случаях, когда вы отлично понимаете предмет. Как я понял по изложенному вами, это не про вас.
Вы упустили важную деталь этого модификатора. За пределами пакета так же есть доступ у классов наследников!
Всех благ!
везде при использовании метода super компилятор выдаёт ошибку. Можете подсказать, в чём причина?
Super должен быть первой строчкой в конструкте
не понимаю какие еще кординаты в транспорте? цвет,вес,скорость это понятно но кординаты?
ну например где находится в данный момент, на каких координатах
x y z почитай в интернетике 3х мерное пространство
Кто-нибудь объясните зачем он прописал строку кода truck.setLoaded(true) на 16:40 если мы уже указали в параметрах объекта значение false, то есть не загружен...хэлп??
Он просто хотел продемонстрировать, как можно менять этот параметр
@@poliev_edu то есть изначально параметр(поле класса Truck) isLoaded принял false, но при исполнении метода setLoaded в него пришло значение true, правильно?
@@МихаилКузьмин-и7ш да =)
@@vadimosadchenko6993 Вроде не так, мы не могли и просто вывести тру, так что использовали методы, чтобы он мог выводится, без этого нам бы ничего не вывелось. (Стоять, ах ты с)
По факту
У меня у одного getLoaded не работает в классе main? Кто может помочь? Помогите!!!!
Сам там запутался, а с учетом, что обучение копи пастное, попробуй под свой код применить… че тут хвалить
Скиньте пожалуйста весь код ко всем 4 классам пожалуйста
Одно не понял. Если наследуем грузовик от транспорта, а, условно, отечественный грузовик от грузовика, то при ключевом слове super он будет искать поле начиная с грузовика или транспорта.
Другими словами, если обращаемся через ключевое слово super, то обращаемся к первому (самому старому) в цепочке наследования или на 1 старше?
Вероятно на 1 старше, но если он не найдет то пойдет в следующий, то есть выше.
чтобы пройти этот урок я потратил целые 2 недели
Масло-маслино
Вообще-то машину или даже мотоцикл(если с каляской или багажником) тоже можно загрузить чем-нибудь
Это просто пример
@@Voxert ну значит это плохой пример
как в php
да тут и на с++ похоже многое, потому когда какой то язык хоть немного знаешь, то тут много знакомых)
Я ничего не понял🤬
Не знаю, вот я все прекрасно понял
ужасные примеры!!
Зачем одно и тоже перезаливать несколько раз ??
ты про что?
@@lkn1ghtl +
Это не одно и тоже. Более ранние видео были на другой IDEA и были немного другие