Уроки Java с нуля / #14 - Наследование в классах

แชร์
ฝัง
  • เผยแพร่เมื่อ 8 ก.พ. 2025

ความคิดเห็น • 88

  • @Ko79rA
    @Ko79rA 2 ปีที่แล้ว +42

    Самый лучший плейлист по java для новичка. Сам сейчас учусь, использую этот плейлист как шпаргалку. Автору спасибо громное и успехов в дальнейших курсах. Обязательно посмотрю про андроид и еще чего-нибудь.

    • @repeat_str_four
      @repeat_str_four ปีที่แล้ว

      Как успехи?

    • @zapotichnyi_06
      @zapotichnyi_06 ปีที่แล้ว

      СУПЕР
      @@repeat_str_four

    • @amazing_youtube
      @amazing_youtube หลายเดือนก่อน

      как успехи?

    • @Ko79rA
      @Ko79rA หลายเดือนก่อน +1

      @@amazing_youtube я бросил джаву

    • @Ko79rA
      @Ko79rA หลายเดือนก่อน +1

      @@repeat_str_four я бросил джаву

  • @Artiran_
    @Artiran_ 2 ปีที่แล้ว +36

    Все круто!Инфа удобно упорядочена и легко подана.Это первый мой коммент за 14 уроков

    • @squyzyyyfaer2652
      @squyzyyyfaer2652 2 ปีที่แล้ว

      можешь пожалуйста объяснить момент вначале. 4:50. почему там ошиба то?

  • @on5real510
    @on5real510 ปีที่แล้ว +5

    Спасибо вам за все уроки! Очень просто и понятно!

  • @TheWorld902
    @TheWorld902 ปีที่แล้ว +6

    Отличный плейлист о java)
    Понятное объяснение и приятный голос автора обеспечивают не только интересное обучение, но и приятное для ушей:)
    Я изучал python, но понял что лично для меня и моих идей лучше java, kotlin и java script.
    После того как полностью изучу этот язык пойду слушать и про android.\
    Удачи всем кто только начинает свой путь программиста и тем кто уже имеет опыт!
    good luck!

  • @rendok6984
    @rendok6984 9 หลายเดือนก่อน +3

    Спасибо, очень информативно!

  • @Yaryga852
    @Yaryga852 ปีที่แล้ว +1

    Спасибо!
    Подробно и понятно информация изложена )

  • @zipen4983
    @zipen4983 ปีที่แล้ว

    Доброго времени суток, уважаемый автор! Спасибо вам за ваши видео, благодаря вашим стараниям получается освоить Java!

  • @felicificdmitry4392
    @felicificdmitry4392 2 ปีที่แล้ว +2

    Очень хорошо объяснили, спасибо

  • @ssiipp9338
    @ssiipp9338 ปีที่แล้ว +6

    Под новым видео все меньше и меньше лайков. Ни все выдерживают )

  • @stanislavfilipov487
    @stanislavfilipov487 2 ปีที่แล้ว +1

    отлично объяснил!

  • @Jagger5674
    @Jagger5674 11 หลายเดือนก่อน

    Видео супер 🎉

  • @ՀայկԱրտինյան-խ5փ
    @ՀայկԱրտինյան-խ5փ ปีที่แล้ว +1

    у вас талант по обяснению!

  • @Game_of_Xbox
    @Game_of_Xbox ปีที่แล้ว +2

    Если в truck сделать protected boolean isLoaded;
    То в main будет актуальна и корректно работать запись: Truck truck = new Truck(5600, new byte [] {100,0,50}, true); и setLoaded не нужен соответственно.

    • @dobriygoodwin87
      @dobriygoodwin87 11 หลายเดือนก่อน +2

      Я тоже не понял зачем лишний setLoaded

    • @СергейРоманов-ы1м7г
      @СергейРоманов-ы1м7г 3 หลายเดือนก่อน

      У меня так не сработало, я сделал по другому в классе truck, в методе get loaded прописал так:
      protected String getLoaded() {
      String otvet;
      If (isLoaded)
      otvet = "Грузовик загружен";
      else
      otvet = " Грузовик не загружен";
      return otvet;
      }
      То есть создал переменную otvet и в условии присвоил ей значения, потом через return вернул её, в таком случае не надо дописывать доп строчки в классе main

  • @qaisarbaltabay
    @qaisarbaltabay ปีที่แล้ว

    как ты хороош!

  • @ВиталикПралонов
    @ВиталикПралонов ปีที่แล้ว +1

    Поля и методы, обозначенные модификатором доступа protected, будут видны:
    в пределах всех классов, находящихся в том же пакете, что и наш;
    в пределах всех классов-наследников нашего класса.
    А в целом конечно спасибо за базу, но советую всем кто обучается у "интернет-гуру" перепроверяйте инфу в гугле.

  • @pongo3234
    @pongo3234 2 ปีที่แล้ว

    Спасибо!!!

  • @Linlees
    @Linlees หลายเดือนก่อน +1

    1-12 уроки всё хорошо было
    13 урок - сложновато
    14 урок - ничего не понимаю

    • @briliantobruno
      @briliantobruno 15 วันที่ผ่านมา

      Второй раз смотрю этот курс, в прошлый раз дошел до этого 14 урока и начал заново. Сейчас опять на 14 уроке ступор.

  • @casper-4188
    @casper-4188 ปีที่แล้ว +1

    16:35
    показывает ошибку, когда пишу "truck.setLoaded(true)"
    подскажите как решить, пожалуйста🥲🥲🥲
    Разобрался!
    вместо "truck.setLoaded(true)" пишется "((Truck) truck).setLoaded(true)".
    т.е. "((ClassName) ObjectName).Method()".
    такая же история и с методом подкласса (Truck) "getLoaded()".
    Ошибок НЕ показывает.
    Насколько я понял, после какого-то обновления немножко изменили способ вызова методов подклассов.

    • @_dikiy_omlet_102
      @_dikiy_omlet_102 ปีที่แล้ว +2

      О, огромное спасибо тебе. Я тоже не понял что ха хрень

    • @casper-4188
      @casper-4188 ปีที่แล้ว +1

      @@_dikiy_omlet_102 Пожалуйста. Всегда рад помочь)

    • @orbulka._.
      @orbulka._. ปีที่แล้ว

      Хочу написать тут для таких же дебилов как я, НЕ ОБРАЩАЙТЕСЬ К МЕТОДАМ В МАТЕРИНСКОМ КЛАССЕ, т.е если вы делаете как их я называю шаблон для дочерних классов, то в них не надо писать обращение к методам

    • @tot-toro
      @tot-toro 28 วันที่ผ่านมา

      Спасибо, сидел и мог понять, что не так, очень выручил

  • @villaribo_and_villobadjio6723
    @villaribo_and_villobadjio6723 ปีที่แล้ว

    Благодарю за проделанный труд, время.Очень полезно, просто и понятно.

  • @FallingInAWaterfall
    @FallingInAWaterfall 7 หลายเดือนก่อน +4

    Вот и настала писта мне

  • @БелковыйТип
    @БелковыйТип 3 หลายเดือนก่อน

    Все было норм до этого урока, я понимаю, что я не семи пядей во лбу, но именно на этом уроке я запутался, что и для чего

  • @АлексашкаАлексашкус
    @АлексашкаАлексашкус 5 หลายเดือนก่อน

    СПАСИИИИББОООООО

  • @yujostar1537
    @yujostar1537 ปีที่แล้ว

    Добавлю от себя в ходе теста, чтобы не писать лишний код с гет и сет именно в мейне, мы можем написать что getLoaded будет возвращать String. И в конце к return дописать " ". В таком случае будет точно такая же запись но при этом, в мейне в самой функции нового объекта не придется дописывать лишние 2 строки.
    Однако так как я новичок интересно мнение более опытных ребят, есть ли разница вернется ли нам строчная запись или же тип boolean или нет ?

    • @orbulka._.
      @orbulka._. ปีที่แล้ว

      Тут скорее удобство (я если что не опытен). Тебе же в будущем придется менять этот параметр или заставлять другого? Скорее всего с boolean легче вводить значения ( boolean = false !boolean =true(вроде так)), наверное так. НО ТЫ ОЧЕНЬ ХОРОШО СДЕЛАЛ, ЧТО РЕШИЛ ЭКСПЕРЕМЕНТИРОВАТЬ, это довольно полезно.

  • @alexanders1885
    @alexanders1885 2 ปีที่แล้ว +6

    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. Всё выводится автоматически.

    • @meversone1
      @meversone1 ปีที่แล้ว

      Поясните, пожалуйста! А зачем здесь setLoaded вообще? Я переписал как Вы написали, через возврат строки плюс sout в конструкторе, и заметил, что setLoaded не подсвечен в ide. Удалил его совсем.

  • @vladislavwolf7112
    @vladislavwolf7112 2 ปีที่แล้ว +8

    А я понял. Типо можно не использовать класс Transport а использовать его классы наследники (Car, Truck) что бы было более упорядочено все.

    • @helbua
      @helbua ปีที่แล้ว

      мне кажеться что сделано для других настроек, ну тип как показивали если я хочу написать возможность ездить на 2 колесах, для мопеда надо а для авто нет

  • @squyzyyyfaer2652
    @squyzyyyfaer2652 2 ปีที่แล้ว

    объясните пожалуйста момент на 4:50. почему там выдаётся ошибка и почем она решается так как он показал позже. впервые что-то перестаю понимать по твоим видеоурокам

    • @spacecowboy3000
      @spacecowboy3000 2 ปีที่แล้ว +4

      У каждого класса должен быть конструктор который инициализирует какими то основными значениями объект при создании. Если его нет то автоматически создается конструктор по умолчанию. Если в классе объявлены другие конструкторы то конструктор по умолчанию использовать уже нельзя.Конструктор по умолчанию это по сути public ClassName() {super();} Так как в родителе у нас нет конструктора без параметров то компилятор ругается.

    • @nyakota2372
      @nyakota2372 6 หลายเดือนก่อน

      Сам только учусь это понимать и я бы это описал так. Мы дали две ветки создания класса транспорт: с 4 переменными и с 2 и другого быть не может. Поэтому при создании пустого класса транспорт компухтер нас не понимает т.к. такого класса и в помине не существует. А решил он путем все таки создания такого пустого класса хоть и без каких-либо действий. Весь код написаный ниже для него пока никак не влияет, он просто существует как класс без дела

    • @maskin_sin
      @maskin_sin 4 หลายเดือนก่อน

      У меня она не чинится

  • @poloplopol9791
    @poloplopol9791 3 ปีที่แล้ว +11

    информация хорошая було бы круто если бы давал задачку а в начале нового видео давал решение

    • @arsikkbar
      @arsikkbar 3 ปีที่แล้ว +1

      було.

    • @Longestisarm
      @Longestisarm 4 หลายเดือนก่อน

      Изгой ​@@arsikkbar

  • @Sam-kx7vr
    @Sam-kx7vr ปีที่แล้ว

    У меня вопрос:
    Допустим, координаты сильно изменились и byte уже не хватает для описания координат.
    Каким образом можно переделать все это под int?

    • @apolenis9854
      @apolenis9854 ปีที่แล้ว +1

      (int.valueOf(название переменной)
      Может помочь.

  • @mishaploskodnyak2223
    @mishaploskodnyak2223 ปีที่แล้ว

    Доброго времени суток, уважаемый автор! Спасибо вам за ваши видео, благодаря вашим стараниям получается освоить Java!
    Но вот в чем появился вопрос:
    Установив модификатор доступа для метода/функции «protected» в родительском классе я по прежнему имею к нему доступ(к методу) в классе main… объясните, пожалуйста, почему

    • @orbulka._.
      @orbulka._. ปีที่แล้ว

      Еще нужно? Он допустил ошибку (логично, зная, что это бесплатные уроки), этот метод может работать: с наследниками, внутри класса И в (походу)в этой папке или, что-то подобное. И на будущее, смотри в интернете если что-то не понял, можно и в комментариях, просто ему приходит 50 сообщений в день, он физически не сможет ответить на все. Хорошо было бы проверять информацию в интернете, но мы все понимаем, что нам лень.

    • @mishaploskodnyak2223
      @mishaploskodnyak2223 ปีที่แล้ว +2

      @@orbulka._. спасибо за ответ)
      В тот же вечер разобрался в чем тут дело) а спустя время понял, что это не единственная ошибка в данном «курсе», и все равно спасибо автору)
      На случай если кому то будет полезно:
      Модификатор доступа в сигнатуре метода, а так же в полях/переменных имеют следующую иерархию доступа.
      Иерархия строгости доступа в порядки убывания:
      1. private - доступ только внутри класса.
      2. default или просто не указываем модификатор - доступ в классе и во всем пакете, т.е. и у наследников и других «независимых» классов (если все они в том же пакете, что и класс родитель).
      3. protected - тоже самое, что и без модификатора доступа, только еще за пределами пакета сохраняется доступ для классов наследников.
      4. public - полный доступ.
      И коль вы себе позволили давать мне советы, хоть я и не просил, то и я себе позволю дать вам совет:
      Советы можно давать только в тех случаях, когда вы отлично понимаете предмет. Как я понял по изложенному вами, это не про вас.
      Вы упустили важную деталь этого модификатора. За пределами пакета так же есть доступ у классов наследников!
      Всех благ!

  • @Miritashchyan
    @Miritashchyan ปีที่แล้ว

    везде при использовании метода super компилятор выдаёт ошибку. Можете подсказать, в чём причина?

    • @dobriygoodwin87
      @dobriygoodwin87 11 หลายเดือนก่อน

      Super должен быть первой строчкой в конструкте

  • @maksim12233
    @maksim12233 ปีที่แล้ว

    не понимаю какие еще кординаты в транспорте? цвет,вес,скорость это понятно но кординаты?

    • @kratos-gg8568
      @kratos-gg8568 ปีที่แล้ว

      ну например где находится в данный момент, на каких координатах

    • @Game_of_Xbox
      @Game_of_Xbox ปีที่แล้ว

      x y z почитай в интернетике 3х мерное пространство

  • @alexanders1885
    @alexanders1885 2 ปีที่แล้ว +1

    Кто-нибудь объясните зачем он прописал строку кода truck.setLoaded(true) на 16:40 если мы уже указали в параметрах объекта значение false, то есть не загружен...хэлп??

    • @poliev_edu
      @poliev_edu 2 ปีที่แล้ว

      Он просто хотел продемонстрировать, как можно менять этот параметр

    • @МихаилКузьмин-и7ш
      @МихаилКузьмин-и7ш 2 ปีที่แล้ว

      @@poliev_edu то есть изначально параметр(поле класса Truck) isLoaded принял false, но при исполнении метода setLoaded в него пришло значение true, правильно?

    • @vadimosadchenko6993
      @vadimosadchenko6993 ปีที่แล้ว

      @@МихаилКузьмин-и7ш да =)

    • @orbulka._.
      @orbulka._. ปีที่แล้ว

      @@vadimosadchenko6993 Вроде не так, мы не могли и просто вывести тру, так что использовали методы, чтобы он мог выводится, без этого нам бы ничего не вывелось. (Стоять, ах ты с)

  • @SilentRider
    @SilentRider ปีที่แล้ว

    По факту

  • @kosray7282
    @kosray7282 ปีที่แล้ว

    У меня у одного getLoaded не работает в классе main? Кто может помочь? Помогите!!!!

  • @АлександрКоролев-ь5щ
    @АлександрКоролев-ь5щ ปีที่แล้ว +2

    Сам там запутался, а с учетом, что обучение копи пастное, попробуй под свой код применить… че тут хвалить

  • @Daaaaaamn
    @Daaaaaamn ปีที่แล้ว

    Скиньте пожалуйста весь код ко всем 4 классам пожалуйста

  • @plumbumtv3051
    @plumbumtv3051 ปีที่แล้ว

    Одно не понял. Если наследуем грузовик от транспорта, а, условно, отечественный грузовик от грузовика, то при ключевом слове super он будет искать поле начиная с грузовика или транспорта.
    Другими словами, если обращаемся через ключевое слово super, то обращаемся к первому (самому старому) в цепочке наследования или на 1 старше?

    • @Game_of_Xbox
      @Game_of_Xbox ปีที่แล้ว

      Вероятно на 1 старше, но если он не найдет то пойдет в следующий, то есть выше.

  • @AbiturientFizteha
    @AbiturientFizteha ปีที่แล้ว

    чтобы пройти этот урок я потратил целые 2 недели

  • @SuperRob32
    @SuperRob32 8 หลายเดือนก่อน +1

    Масло-маслино

  • @Animator2D.
    @Animator2D. 2 ปีที่แล้ว

    Вообще-то машину или даже мотоцикл(если с каляской или багажником) тоже можно загрузить чем-нибудь

    • @Voxert
      @Voxert ปีที่แล้ว +1

      Это просто пример

    • @Animator2D.
      @Animator2D. ปีที่แล้ว

      @@Voxert ну значит это плохой пример

  • @romanbush5164
    @romanbush5164 2 ปีที่แล้ว +1

    как в php

    • @Частныйсектор-х4я
      @Частныйсектор-х4я 2 ปีที่แล้ว

      да тут и на с++ похоже многое, потому когда какой то язык хоть немного знаешь, то тут много знакомых)

  • @rainush234
    @rainush234 7 หลายเดือนก่อน +1

    Я ничего не понял🤬

    • @ronkilllorange
      @ronkilllorange 5 หลายเดือนก่อน

      Не знаю, вот я все прекрасно понял

  • @DéPaul-n1p
    @DéPaul-n1p 8 หลายเดือนก่อน +7

    ужасные примеры!!

  • @valentinpavlenko1055
    @valentinpavlenko1055 3 ปีที่แล้ว +1

    Зачем одно и тоже перезаливать несколько раз ??

    • @lkn1ghtl
      @lkn1ghtl 3 ปีที่แล้ว +2

      ты про что?

    • @morik777
      @morik777 3 ปีที่แล้ว +1

      @@lkn1ghtl +

    • @GorN_Rebel
      @GorN_Rebel 2 ปีที่แล้ว

      Это не одно и тоже. Более ранние видео были на другой IDEA и были немного другие