Java для начинающих. Урок 33: Введение в параметризацию. (Generics)

แชร์
ฝัง
  • เผยแพร่เมื่อ 23 ธ.ค. 2024

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

  • @alishevN
    @alishevN  7 ปีที่แล้ว +7

    Регистрируйтесь на курс "Продвинутая Java": th-cam.com/video/rRe1vT0SDD8/w-d-xo.html
    Практикуйтесь в написании Java кода: java-marathon.tilda.ws

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

      В курсе "Продвинутая Java", где я разбираю коллекции, я даю ответ на этот вопрос.
      По-моему даже на первом уроке. Посмотрите его, он бесплатный.

  • @МихаилКоровайный-у7щ
    @МихаилКоровайный-у7щ 3 ปีที่แล้ว +17

    Потрясающие по лаконичности и понятности подачи материала уроки!!! Это лучший контент по данной тематике в русскоязычном сегменте ютуба!!!

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

    Экскурс в то как было до 5 java, наконец-то дал понимание что такое дженерики. Супер. Спасибо.

  • @alberttitov2692
    @alberttitov2692 7 ปีที่แล้ว +34

    Спасибо за доступно излагаемые интересные уроки!!! :)

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

    Спасибо большое! Всё очень понятно. Пока что не встречал людей, которые объясняют материал также )))

  • @monotheos
    @monotheos 3 ปีที่แล้ว +19

    Когда человек может простыми словами объяснить тему то значит хорошо в ней разбирается сам.

  • @gera.v.v
    @gera.v.v 4 ปีที่แล้ว +86

    учусь в минске на курсах джава. всей группой ваши видео пересматриваем. самый толковый препод. подробнее и понятнее не бывает.

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

      привет из Минска)

    • @NiflheimForever
      @NiflheimForever 4 ปีที่แล้ว

      @@FoxChpoks Как там в Минске?

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

      Jus да норм)
      Конкретно сегодня по проспекту ходил, тише воды обстановочка. А вот вчерашнего дня в инете полно) пару сотен тысяч человек было в Минске

    • @alexandrkomar4741
      @alexandrkomar4741 3 ปีที่แล้ว

      привет. ну что уже работаешь программистом?

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

      @@gera.v.v да. И я с Беларуси тоже. Изучаю вот ее третий месяц. Трудно было найти работу? И что ещё посоветуешь по учебе?

  • @alexb.2616
    @alexb.2616 5 ปีที่แล้ว +10

    Проще, чем в универе. Наконец-то я понял эту тему. Спасибо!!!

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

    Очень благодарен автору за этот материал. Давно уже начал часто замечать "List" и не знал что это, а тут такое понятное объяснение ВАУ!. спасибо тебе

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

    Очень понравились уроки, информация воспринимается на лету)! Все так просто и доступно рассказывается, что думаю будет понятно даже совсем совсем начинающему программисту, ну как я например:) У автора определенно талант к преподаванию, спасибо ему большое за труд и успехов во всем!

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

      Спасибо!

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

    Наиль, большое спасибо за уроки. 🤗

  • @Denis-xr5lw
    @Denis-xr5lw 5 ปีที่แล้ว +9

    Вместо нисходящего преобразования:
    String animal = (String) animals.get(1);
    к строковому типу можно привести и так:
    String animal = animals.get(1).toString();
    как делать правильнее?

    • @АлексейЧумаков-р7ф
      @АлексейЧумаков-р7ф 4 ปีที่แล้ว +13

      toString() не приводит к строковому типу, а возвращает строковое представление объекта. Другими словами он не закастит объект в строку, а вернёт строковое представление класса Object. Хотя в данном случае благодаря позднему связыванию вернётся ожидаемая строка

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

    :) Ну вот теперь же понятно! Как то в джавараш пропустили перед дженериками даункаст и было не понятно зачем он вообще нужен. Как всегда лучшее изложение, благодарю!

  • @daytona2786
    @daytona2786 4 ปีที่แล้ว +13

    8:10
    Давайте создадим свой Объе́кт класса Animal.
    Обычные люди: Cat, Dog, Mouse....
    Наиль: oUrAniMaL~~~

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

    Спасибо Вам огромное за качественные уроки!
    Очень бы хотелось увидеть уроки по коллекциям в Вашем исполнении!

    • @alishevN
      @alishevN  7 ปีที่แล้ว +3

      Спасибо вам.
      Уроки по коллекциям и по многопоточности уже готовы! Более 15 часов материала. В данный момент проверяю все записанные уроки и исправляю мелкие неточности.
      Следите за обновлениями на канале!

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

      @@alishevN Здравствуйте! Я не могу найти урок по коллекциям в вашем исполнении. Подскажите, он есть в доступе сейчас?

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

    Спасибо за работу!

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

    Спасибо. Объяснено просто и понятно.

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

    Замечательный урок!

  • @Andrzej3935
    @Andrzej3935 3 ปีที่แล้ว

    Огромнейшее спасибо!

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

    Алишев, крутые уроки у тебя по Джаве!

  • @КонстантинГерасенков
    @КонстантинГерасенков ปีที่แล้ว +1

    Мы создали объект типа List, класса ArrayList.
    Вопрос, 4:00. А можно ли сказать что у нас не получается в переменную типа Стринг вывести ячейку динамического массива из за того что она имеет объект типа List. Или я фигню говорю?

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

      Мне кажется, что при использовании объекта типа List мы уже должны добавить в переменную какие-то значения(как это сделал автор видео, написав "animals.add("Cat");" ). А вот для вывода элемента в ячейку массива нужна какая-то другая технология. Поправьте, если не прав. Сам только учусь.

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

    Классно и понятно!

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

    Спасибо, добрый человек )))

  • @Das.Kleine.Krokodil
    @Das.Kleine.Krokodil ปีที่แล้ว

    Спасибо. Чётко всё

  • @ИгорьЧумиков-й5б
    @ИгорьЧумиков-й5б 5 ปีที่แล้ว +1

    Все супер) Спасибо тебе)

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

    Хотелось бы понять использование Type Erasure

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

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

  • @trollinrollin9546
    @trollinrollin9546 5 ปีที่แล้ว

    Наконец-то "коротко и ясно")

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

    Супер!

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

    спасибо!

  • @777Revion777
    @777Revion777 7 ปีที่แล้ว +2

    Отличный канал! С меня подписка

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

    А что такое Generic?

  • @ДмитрийВоробьев-ц5в
    @ДмитрийВоробьев-ц5в 7 หลายเดือนก่อน

    сколько же неучей который обучают , наконец то я понял целенаправленность треугольных скобок. Вот настоящий шарящий программист

  • @jimmytalent7780
    @jimmytalent7780 4 ปีที่แล้ว

    Круто, как всегда

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

    Спасибо!

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

    Извините, не понял кто такие дженерики. Это когда мы просто явно указываем тип данных ArrayList'y ? В видео сказано 9:55 "с появлнеием дженериков", т.е. во множественном числе, а это обозначает что это свойство применимо не только к ArrayList'am. Когда меня спросить кто такие дженерики - я не смогу дать ответ. Это кода не надо даункастить аррайлист.

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

      www.quizful.net/post/java-generics-tutorial , с помощью женериков вы не сможете добавить например в коллекцию не правильный тип
      например:
      List yourclazzList = new ArrayList();
      yourclazzList.add(4);

    • @Das.Kleine.Krokodil
      @Das.Kleine.Krokodil ปีที่แล้ว

      к функциям тоже применимо понятие дженериков

  • @eateam28
    @eateam28 7 ปีที่แล้ว +9

    Супер уроки! Хотел спросить, после окончания курса, будет ли по андройд обучающие уроки?

    • @alishevN
      @alishevN  7 ปีที่แล้ว +13

      Это один из вариантов.

  • @Anatoli-bq1pe
    @Anatoli-bq1pe 2 ปีที่แล้ว

    Хорошее видео)

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

    В данном примере кода очень мало, весь он занимает процентов 20% от всего открытого окна идеи на экран. То есть можно было бы увеличить в 5 раз, чтобы на видео был виден только код без пустого места. А так, на небольшом смартфоне сложно вглядываться в эти маленькие строчки кода на краю тёмной пустоты. Пожелание - на будущее увеличивать код (в 5 раз наверное слишком, но в 2-3 раза - вполне хватит).

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

      ​@learning diary на самом деле, я узнал недавно, что на полноэкранном режиме с приложения TH-cam на смартфоне тоже можно увеличивать - двумя пальцами раздвигаешь по экрану в стороны - и увеличивает. Но это не всегда удобно.

  • @antondityatev2338
    @antondityatev2338 4 ปีที่แล้ว

    List list = new ArrayList(); получается любой тип ссылочной переменной работает как интерфейс?

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

      Почему он у меня new ArrayList() ругаемся и говорит переписать в new List(). Версии java по-другому сейчас ?

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

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

    • @yfrite
      @yfrite 4 ปีที่แล้ว

      По идее через запятую

  • @Евгений-ч9к2ф
    @Евгений-ч9к2ф 7 ปีที่แล้ว

    спасибо

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

    generic создан не из за неудобства, а потому что при получении значения были ошибки , потому что не известно какой тип будет на выходе, это важно !!!
    хотя бы сюда гляньте www.quizful.net/post/java-generics-tutorial

    • @manOfPlanetEarth
      @manOfPlanetEarth 4 ปีที่แล้ว

      Лизонька, ты звёздочка!

  • @ВладиславЖикол-ц3д
    @ВладиславЖикол-ц3д 7 ปีที่แล้ว

    file-up.net/big/0b/0b2d87b633f9f5c3a520170502115947.jpg
    Не могу понять в чём проблема. Помогите

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

      Почему вы пишете код вне метода main?

    • @ВладиславЖикол-ц3д
      @ВладиславЖикол-ц3д 7 ปีที่แล้ว +1

      Даже не знаю как я так пропустил эту скобку. И начал писать код за пределами метода main. Спасибо за ответ.

    • @lisafox9026
      @lisafox9026 6 ปีที่แล้ว

      ты вышел за приделы метода vain и пытаешься что то писать в воздухе

  • @uuBach
    @uuBach 4 ปีที่แล้ว

    Я что то пропустил? Почему в предыдущих уроках ничего не объясняли про List и ArrayList и сразу начали урок с ними, я даже не понял как их использовать и почему автор видео таким образом создает эти самые списки

    • @alishevN
      @alishevN  4 ปีที่แล้ว

      Просто на них удобно объяснить параметризацию.
      Подробнее о них смотрите в моем курсе Продвинутая Java: www.udemy.com/course/javarussia/?referralCode=A36A8387475CAFDC6776

  • @Judosaper
    @Judosaper 4 ปีที่แล้ว

    Что такое данкаст? Так понял дженерики и арэйлист ничем не отличаются?

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

      предыдущий урок глянь, там про даункасты говорят как раз

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

    Есть инженеры, а есть инженерики)

  • @Артем-о4щ7р
    @Артем-о4щ7р 4 ปีที่แล้ว

    мне кажется что объясняя тему на массивах сначала надо было обьяснить массивы) первое видео где может возникнуть непонимание( кто не знаком с массивами)

    • @Камень-л4ф
      @Камень-л4ф 4 ปีที่แล้ว +5

      так до этого были уроки про массивы так то

    • @Артем-о4щ7р
      @Артем-о4щ7р 4 ปีที่แล้ว

      @@Камень-л4ф точно! сам не знаю почему перепутал все) видимо в голове перемешались все курсы просмотренные уже)

    • @Камень-л4ф
      @Камень-л4ф 4 ปีที่แล้ว +1

      @@Артем-о4щ7р как ты быстро ответил!)))

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

    2024 , начал изучать java . list arraylist ругпюается .

  • @hondashadow750phantom-penn3
    @hondashadow750phantom-penn3 7 ปีที่แล้ว +1

    Испортил все впечатление... Ну не хранит Arraylist объекты, а только ссылки.. (((

    • @alexanderzimmermann5775
      @alexanderzimmermann5775 7 ปีที่แล้ว

      vredina

    • @hondashadow750phantom-penn3
      @hondashadow750phantom-penn3 7 ปีที่แล้ว

      ))

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

      Хоть и прошло 2 года, но напишу для будущих поколений =))) Выражение "ArrayList хранит объекты" означает тоже самое что "ArrayList хранит ссылки на объекты", так что автор видео все правильно говорит. Сам по себе ArrayList не может хранить примитивы

    • @manOfPlanetEarth
      @manOfPlanetEarth 4 ปีที่แล้ว

      Tyrion Lannister
      спасибо, мужик

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

      Tyrion Lannister
      так не может хранить не только примитивы, но и не примитивы. он вообще ничего не может хранить, только ссылки на что-то.

  • @ГеоргийСтародубцев-й8у
    @ГеоргийСтародубцев-й8у 3 ปีที่แล้ว

    Видимо что то поменялось в более поздней версии Java, но все нормально вывелось без и привидения типа:
    List animals = new ArrayList();
    animals.add("cat");
    animals.add("dog");
    animals.add("frog");
    animals.add("horse");
    for (int i = 0; i < animals.size(); i++)
    System.out.println(animals.get(i));
    ______________
    cat
    dog
    frog
    horse

    • @Das.Kleine.Krokodil
      @Das.Kleine.Krokodil 2 ปีที่แล้ว

      у меня тоже выводится также
      java version "17.0.2" 2022-01-18 LTS
      VSC ругается, но все выполняется
      - List is a raw type. References to generic type List should be parameterized
      - ArrayList is a raw type. References to generic type ArrayList should be parameterized

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

      в ptintln() автоматом выполняется animal.get(i).toString() [ Хорстманн том 1, с. 225 ]

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

      @@andrewpozdnyak то есть он выводить то выводит, но потом с этим работать не получится и надо все равно делать как показывает автор?

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

      @@Geovald ​ обычно toString() переопределяют чтобы выводились поля класса. Если мы не определили в своем классе метод toString(), то будет вызван метод toString() класса Object, и выведет нам "адрес" на объект.
      В общем если туСтринг переопределен, то при использовании дженерика по типу ArrayList arr = new ArrayList();
      (где T - параметр типа) мы уверены, что вызывая println(arr.get(i)) выведутся наши поля

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

      @@andrewpozdnyak согласен, спасибо

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

    Странно. У меня, вроде, последняя Java. Но почему-то треугольные скобки не воспринимает. IntelliJDEA 2018 3.2
    Error:(30, 47) java: diamond operator is not supported in -source 1.6
    (use -source 7 or higher to enable diamond operator)

  • @АлександрГоупрошкин
    @АлександрГоупрошкин 4 ปีที่แล้ว

    Спасибо большое за труды!

  • @ДмитрийДжонсон-ы3ы
    @ДмитрийДжонсон-ы3ы 3 ปีที่แล้ว +1

    спасибо