Java интерфейсы / Java для начинающих / Уроки Java

Поделиться
HTML-код
  • Опубликовано: 21 сен 2024
  • Java интерфейсы может показаться лёгкой темой. Но это не так. Сам этот механизм довольно интересный и имеет "глубокий смысл".
    Очень важно научиться пользоваться этим в программировании на java.
    #java #javaуроки #javaMarshal
    Все уроки • Уроки Java для начинаю...
    java для начинающих это плэйлист в котором я стараюсь максимально просто объяснить темы программирования на java, иногда из-за этого может быть не раскрыта часть важных нюансов, которые сложно понять на начальном уровне.
    В любом случае уроки это ваш старт на пути становления программистом и многое в ващем обучение будет зависеть от вас самих.
    Механизм наследования очень удобен, но он имеет свои ограничения. В частности мы можем наследовать только от одного класса, в отличие, например, от языка С++, где имеется множественное наследование.
    В языке Java подобную проблему частично позволяют решить интерфейсы. Интерфейсы определяют некоторый функционал, не имеющий конкретной реализации, который затем реализуют классы, применяющие эти интерфейсы. И один класс может применить множество интерфейсов.
    Все методы интерфейса не имеют модификаторов доступа, но фактически по умолчанию доступ public, так как цель интерфейса - определение функционала для реализации его классом. Поэтому весь функционал должен быть открыт для реализации.
    Одним из преимуществ использования интерфейсов является то, что они позволяют добавить в приложение гибкости.
    По умолчанию все методы в интерфейсе фактически имеют модификатор public. Однако начиная с Java 9 мы также можем определять в интерфейсе методы с модификатором private. Они могут быть статическими и нестатическими, но они не могут иметь реализации по умолчанию.
    Если нам надо применить в классе несколько интерфейсов, то они все перечисляются через запятую после слова implements
    Вложенные интерфейсы
    Как и классы, интерфейсы могут быть вложенными, то есть могут быть определены в классах или других интерфейсах.
    И также как и в случае с классами, интерфейсы могут использоваться в качестве типа параметров метода или в качестве возвращаемого типа.
    Ключевое слово interface используется для создания полностью абстрактных классов. Создатель интерфейса определяет имена методов, списки аргументов и типы возвращаемых значений, но не тела методов.
    Наличие слова interface означает, что именно так должны выглядеть все классы, которые реализуют данный интерфейс. Таким образом, любой код, использующий конкретный интерфейс, знает только то, какие методы вызываются для этого интерфейса, но не более того.
    Чтобы создать интерфейс, используйте ключевое слово interface вместо class. Как и в случае с классами, вы можете добавить перед словом interface спецификатор доступа public (но только если интерфейс определен в файле, имеющем то же имя) или оставить для него дружественный доступ, если он будет использоваться только в пределах своего пакета. Интерфейс может содержать поля, но они автоматически являются статическими (static) и неизменными (final). Все методы и переменные неявно объявляются как public.
    Класс, который собирается использовать определённый интерфейс, использует ключевое слово implements. Оно указывает, что интерфейс лишь определяет форму, а вам нужно наполнить кодом. Методы, которые реализуют интерфейс, должны быть объявлены как public.
    Интерфейсов у класса может быть несколько, тогда они перечисляются за ключевым словом implements и разделяются запятыми.
    Интерфейсы могут вкладываться в классы и в другие интерфейсы.
    Если класс содержит интерфейс, но не полностью реализует определённые им методы, он должен быть объявлен как abstract.

Комментарии • 72

  • @AndreTrudeau-o9d
    @AndreTrudeau-o9d Месяц назад +50

    А какие методы лучше использовать для создания интерфейсов в программировании? Лично я выбирал курсы по IT для улучшения своих навыков, рассматривал разные компании, но остановился на Skypro. Благодаря наставнику нашел первого заказчика))

  • @reexoolreex5511
    @reexoolreex5511 2 года назад +19

    На самом деле автор очень доходчиво донес смысл концепции интерфейсов. До этого ролика дня два смотрел разные видео и читал много статей по теме, пытаясь понять что это и зачем это нужно? Это видео дало понимание. При всем уважении к видеокурсу Алишева, например, он не объяснил тему интерфейсов так понятно, как автор этого видео .
    Огромное спасибо!

    • @Isaevmajid
      @Isaevmajid 2 месяца назад

      Ровно тоже самое. Прочёл на 4х сайтах и два ролика посмотрел
      до этого, а в итоге только тут разобрался для чего это нужно.

  • @АлександрЯкиманский-щ9з

    Душераздерающая история про то, как мальчик не умеет читать, а всё что умеет - это запускать игру ногой...

    • @sazonikv5086
      @sazonikv5086 3 месяца назад

      Я плакал на этом месте😢

  • @relaxshinehouse
    @relaxshinehouse 2 года назад +2

    Я безумно рад, что нашел твой канал. Ты рассказываешь разжевывая, спасибо!

  • @ДимитрийШафиров
    @ДимитрийШафиров Год назад +2

    Ты супер)) начинаю с нуля и все понимаю, раньше ничем таким не увлекался. Уметь доносить информацию не всем дано

  • @sdors4
    @sdors4 2 года назад +19

    Ничего не понял но очень интересно :D

    • @LOREM383
      @LOREM383 10 месяцев назад

      хахахахха тоже самое

  • @dmitrypushkaryov2857
    @dmitrypushkaryov2857 2 года назад +13

    До этого все уроки заходили на ура. А тут осталось смутное чувство недопонимания.

  • @alexanderwagner8199
    @alexanderwagner8199 3 года назад +19

    Вот, вроде, все понятно, но есть ощущение, будто что-то не понял.. Хотя, у меня вообще с ООП такая ситуация.. В любом случае спасибо за уроки)

  • @No..Name.
    @No..Name. Год назад +1

    Очень хорошо объяснил, спасибо большое за материал. Звук отличный. Побольше видео про java бы, особенно про spring

  • @sazonikv5086
    @sazonikv5086 3 месяца назад

    Урок понравился мне этот🎉

  • @turbach12568
    @turbach12568 Год назад +1

    Мне кажется ну не закончил урок , ещё немного не договорил, надо было показать как это работает,.А вообщем супер приятно смотреть уроки))и более менее все понятно😊

  • @mysterybox4893
    @mysterybox4893 3 года назад +3

    только после твоего видоса понял что такое интерфейсы
    До ээтого посомтрел 7-8 уроков, но твой лучший

  • @Тёма-г2ш
    @Тёма-г2ш 6 месяцев назад

    Благодаря безграмотному мальчику, включающему игры ногой, я понял что такое интерфейсы. Спасибо!!!

  • @БортОдин
    @БортОдин 3 года назад +3

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

  • @konstantinp440
    @konstantinp440 3 года назад +1

    Да, интересно было с этой стороны посмотреть на интерфейсы

  • @АндрейТест-э1н
    @АндрейТест-э1н 2 года назад +1

    Спасибо за видео. Очень доходчиво

  • @Дрюха-ш7б
    @Дрюха-ш7б 11 месяцев назад

    Спасибо

  • @HieromonkRazov
    @HieromonkRazov Год назад +1

    спасибо за "..поправим масштаб текста.."))

  • @sergeyzhilin9529
    @sergeyzhilin9529 3 года назад +7

    Зря в конце не запустил весь код. Сам кое-как дописал но не факт что правильно вызываю:
    Boy ivan = new Boy();
    Game game = new Game();
    School school = new School();
    game.start(ivan);
    school.start(ivan);

  • @qetosf
    @qetosf Год назад

    В Яндекс практикум не поняла, а тут поняла, спасибо!

  • @МихаилДолгашев-п5м
    @МихаилДолгашев-п5м 2 года назад

    Спасибо за видео. Очень понятно и просто изложено.

  • @metasta3a
    @metasta3a Год назад

    Смысл понятен, но оч загрузил))

  • @ЛюдмилаШестакова-т8д

    Интерфейс - это разный метод передачи действий, которые сам же и создал.

  • @simonpetryk2541
    @simonpetryk2541 Год назад

    Классное видео, спасибо, зашло, подписался+лайк

  • @ИванИванов-л1э6ы
    @ИванИванов-л1э6ы 2 года назад

    Спасибо за труд.

  • @dervil
    @dervil 3 года назад

    Очень хорошо, ждем продолжения ; )

  • @ilyasamilyak6517
    @ilyasamilyak6517 2 года назад

    Очень круто, спасибо

  • @amirabdulatipoff157
    @amirabdulatipoff157 3 года назад +9

    Автору: просмотри ролик и признайся честно, ты сам понял сказанное/показанное?

    • @leshamarshal
      @leshamarshal  3 года назад

      Я так понимаю, не зашло ?))

    • @amirabdulatipoff157
      @amirabdulatipoff157 3 года назад +3

      @@leshamarshal , не вопрос вкуса "нравится/не нравится", подача хорошая, но тема не раскрыта до степени понимания. Т.е. декларация есть, а описание не полное

    • @leshamarshal
      @leshamarshal  3 года назад +2

      Хм...я учту. Но тут конечно проблема. Тема то по сути очень простая. Может я перестарался и стало непонятно по итогу )))

    • @shepardmoore8048
      @shepardmoore8048 3 года назад

      @@leshamarshal да норм, на самом деле. Я понял.

    • @KoshkaRus55
      @KoshkaRus55 3 года назад +10

      @@leshamarshal все в принципе понятно, но по итогу я не поняла как это работает. т.е. после того как я создала все что было в уроке и нажала Run, то как бы ничего не получилось, хотелось бы увидеть продолжение этого урока, чтобы все работало

  • @БакирБазаркулуулу-ц8и

    спасибо я учус самоучка. И ваши видео уроки очень помогает. Хочу стать програмистом план ровно через год приехать в Москву и устроиться програмистом.

    • @Частныйсектор-х4я
      @Частныйсектор-х4я 2 года назад +2

      хорош в Москву ехать! Ваши предки в 1991м выгнали всех русских "чемодан вокзал Россия", а теперь сами едете)) Едь в Нью-орк, Париж, Берлин и тд

    • @dimakovpak5230
      @dimakovpak5230 Год назад

      @@Частныйсектор-х4я хера себе ))) что за ненависть такая , в 90 -х все всех выгоняли ))))

    • @user-od9ef9ke1l
      @user-od9ef9ke1l Год назад

      Ну и как уже подзабил хуек или еще учишься?

    • @Частныйсектор-х4я
      @Частныйсектор-х4я Год назад +1

      ​@@dimakovpak5230 я просто помню как моих друзей и не только их выгнали из Узбекистана, а потом сами поехали в Россию. Они говорили что мы им мешаем, ну вот, не мешаем, так они теперь к нам едут.

    • @dan4ikBi6
      @dan4ikBi6 Год назад +1

      @@Частныйсектор-х4я а щас ваши понаехали к нам) вот она, карма ахахаха

  • @sazonikv5086
    @sazonikv5086 3 месяца назад

    Всем привет еще раз зашел сказать сапсибо

  • @pavelh.4543
    @pavelh.4543 Год назад

    Нипонял.
    Если серьезно - не совсем понял до конца прошлый урок, этот аналогично.. стоит ли переходить к следующим урокам? или пересматривать эти 2 пока не дойдет?

  • @ms.Mysh1
    @ms.Mysh1 2 года назад

    спасибо!

  • @VitaliyPerezhogin
    @VitaliyPerezhogin Год назад

    Добрый день! Есть вопрос. А почему нельзя пользоваться так же классами. То есть вызывать методы из классов Player и School. Почему именно интерфейс нужно использовать?

  • @viktorkrechikov7293
    @viktorkrechikov7293 2 года назад

    thanks!!

  • @VLAD-pi6ee
    @VLAD-pi6ee 2 года назад

    Всё понятно но скажи где это может быть использовано в сознании чего либо?

  • @QQ-th7yw
    @QQ-th7yw 2 года назад +1

    топ

  • @DIO-ed1ml
    @DIO-ed1ml 2 года назад +1

    Признаться, не понял. Только общий посыл(

  • @pechen57.
    @pechen57. 2 года назад

    какой сексистский урок😂
    на самом деле самая удобная подача для меня

  • @nfew
    @nfew 2 года назад

    Я два часа страдал и думал почему у меня не работает код, потом меня осенило... я не объявил main() в классе Start...

  • @blossomxs
    @blossomxs Год назад

    все норм ,но почему ни разу прогу не запустил то

  • @АндрейЛысенко-й4ш
    @АндрейЛысенко-й4ш 7 месяцев назад

    Но ведь реализация метода play() интерфейса Player или read() интерфейса Study должна где-то быть прописана, а это значит что мы должны создать классы Player и Student, объекты которых по идее и должны быть созданы в Game и School, хоть их там и 50 штук будет например, ведь каждый из них реализует метод play или study по разному. И вот спрашивается на кой нам интерфейс? Это круто что через него можно вызывать тот или иной метод помещая в него определенный объект, который был создан на основе этого интерфейса, но разве не проще вызвать метод через имя объекта? И не надо будет нагромождать код интерфейсами и их объектами! Я рил не понимаю для каких реальных целей существуют интерфейсы, разве что для решения проблем с множественным наследием

    • @АндрейЛысенко-й4ш
      @АндрейЛысенко-й4ш 7 месяцев назад

      Я имею ввиду: что в классе Player, что в его интерфейсе будет один раз прописан один и тот же метод play(), но вот вопрос: зачем мне имплементироваться от интерфейса, если можно просто в классе Player написать метод play() и исключить лишние строки кода в виде интерфейса? типо еще кто-то кроме плейера может обладать таким же методом? Вроде нет. Student и Player это разные объекты содержащие разные методы и свойства. Тут все слишком зависит от контекста: если мы делаем программу для Школы, то нам не важно, что студент является Человеком или Игроком, он просто студент, который будет иметь свойства пол, возраст имя. Так же и с Игроком. А вот если мы ведем речь о Человеке, что он может быть как Игроком, так и Студентом, то да, тут интерфейс может пригодится. Все😂 я сам себе рассказал че это такое) Тебе просто надо было вместо мальчика и девочки брать понятие Человек, так как пол это свойство человека

  • @BoddenDeni
    @BoddenDeni Год назад

    Зашла..

  • @Slevin_87
    @Slevin_87 2 года назад +1

    Увы для меня не сильно понятно......

  • @F00Ntik
    @F00Ntik 3 года назад

    вроде говорил, что будет 3 урока в неделю...
    а сейчас почти неделю нету новых видео(

    • @leshamarshal
      @leshamarshal  3 года назад +1

      есть такое дело. Чёт заработался

  • @ЕвгенийЕрохин-ш4ф
    @ЕвгенийЕрохин-ш4ф 3 года назад +15

    Упаси Господи трансгендер... )))))))

    • @VLAD-pi6ee
      @VLAD-pi6ee 2 года назад +1

      А ты это писал ещё 7 месяцев назад когда это было не так принято а щас все начали дич творить

    • @UserName-bf7vi
      @UserName-bf7vi 2 года назад

      @@VLAD-pi6ee Полностью поддерживаю

  • @mikaadvgf
    @mikaadvgf Месяц назад

    Очень быстро(((

  • @Petrengo1
    @Petrengo1 Год назад

    Тяжеловато

  • @user-xo9ux5dv4f
    @user-xo9ux5dv4f Год назад

    увидел "интерфейс" первое впечатление "сейчас будет наконец-то что-то про формы ввода, вывода информации..." ан нет... чУдной язык джава и термины в нем ...

  • @gadgad6775
    @gadgad6775 Год назад

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

  • @ЛёваБогатищев
    @ЛёваБогатищев Год назад

    The Sims на минималках?

  • @doinkes7764
    @doinkes7764 Год назад

    Со второго раза понял, но не понял как в классе Main запустить метод у Player'a

  • @Xelinヅ
    @Xelinヅ Год назад

    спасибо!