Тёмный

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

Лёша Маршал
Подписаться 149 тыс.
Просмотров 28 тыс.
50% 1

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.

Опубликовано:

 

2 ноя 2020

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 68   
@reexoolreex5511
@reexoolreex5511 Год назад
На самом деле автор очень доходчиво донес смысл концепции интерфейсов. До этого ролика дня два смотрел разные видео и читал много статей по теме, пытаясь понять что это и зачем это нужно? Это видео дало понимание. При всем уважении к видеокурсу Алишева, например, он не объяснил тему интерфейсов так понятно, как автор этого видео . Огромное спасибо!
@user-uf7zz4fe7m
@user-uf7zz4fe7m 2 года назад
Душераздерающая история про то, как мальчик не умеет читать, а всё что умеет - это запускать игру ногой...
@sazonikv5086
@sazonikv5086 26 дней назад
Я плакал на этом месте😢
@relaxshinehouse
@relaxshinehouse Год назад
Я безумно рад, что нашел твой канал. Ты рассказываешь разжевывая, спасибо!
@user-ui4im9io2d
@user-ui4im9io2d 3 месяца назад
Благодаря безграмотному мальчику, включающему игры ногой, я понял что такое интерфейсы. Спасибо!!!
@dervil
@dervil 3 года назад
Очень хорошо, ждем продолжения ; )
@user-lt6zn6px5c
@user-lt6zn6px5c Год назад
Ты супер)) начинаю с нуля и все понимаю, раньше ничем таким не увлекался. Уметь доносить информацию не всем дано
@sdors4
@sdors4 2 года назад
Ничего не понял но очень интересно :D
@LOREM383
@LOREM383 7 месяцев назад
хахахахха тоже самое
@user-cr9ny5kb8k
@user-cr9ny5kb8k 2 года назад
Спасибо за видео. Очень понятно и просто изложено.
@dmitrypushkaryov2857
@dmitrypushkaryov2857 2 года назад
До этого все уроки заходили на ура. А тут осталось смутное чувство недопонимания.
@sergeyzhilin9529
@sergeyzhilin9529 2 года назад
Зря в конце не запустил весь код. Сам кое-как дописал но не факт что правильно вызываю: Boy ivan = new Boy(); Game game = new Game(); School school = new School(); game.start(ivan); school.start(ivan);
@sazonikv5086
@sazonikv5086 26 дней назад
Урок понравился мне этот🎉
@user-ek6kb8me4f
@user-ek6kb8me4f 2 года назад
Спасибо за видео. Очень доходчиво
@ilyasamilyak6517
@ilyasamilyak6517 2 года назад
Очень круто, спасибо
@No..Name.
@No..Name. Год назад
Очень хорошо объяснил, спасибо большое за материал. Звук отличный. Побольше видео про java бы, особенно про spring
@mysterybox4893
@mysterybox4893 2 года назад
только после твоего видоса понял что такое интерфейсы До ээтого посомтрел 7-8 уроков, но твой лучший
@alexanderwagner8199
@alexanderwagner8199 3 года назад
Вот, вроде, все понятно, но есть ощущение, будто что-то не понял.. Хотя, у меня вообще с ООП такая ситуация.. В любом случае спасибо за уроки)
@konstantinp440
@konstantinp440 3 года назад
Да, интересно было с этой стороны посмотреть на интерфейсы
@user-vv2yg6ux7g
@user-vv2yg6ux7g 2 года назад
Спасибо за труд.
@turbach12568
@turbach12568 Год назад
Мне кажется ну не закончил урок , ещё немного не договорил, надо было показать как это работает,.А вообщем супер приятно смотреть уроки))и более менее все понятно😊
@user-gw5yb7qi6n
@user-gw5yb7qi6n 3 года назад
спасибо за урок, приятный, вдумчивый голос
@leshamarshal
@leshamarshal 3 года назад
Спасибо !
@HieromonkRazov
@HieromonkRazov Год назад
спасибо за "..поправим масштаб текста.."))
@qetosf
@qetosf Год назад
В Яндекс практикум не поняла, а тут поняла, спасибо!
@simonpetryk2541
@simonpetryk2541 Год назад
Классное видео, спасибо, зашло, подписался+лайк
@user-ju8hk2gs3b
@user-ju8hk2gs3b 8 месяцев назад
Спасибо
@ms.Mysh1
@ms.Mysh1 Год назад
спасибо!
@metasta3a
@metasta3a 9 месяцев назад
Смысл понятен, но оч загрузил))
@viktorkrechikov7293
@viktorkrechikov7293 Год назад
thanks!!
@pavelh.4543
@pavelh.4543 Год назад
Нипонял. Если серьезно - не совсем понял до конца прошлый урок, этот аналогично.. стоит ли переходить к следующим урокам? или пересматривать эти 2 пока не дойдет?
@sazonikv5086
@sazonikv5086 13 дней назад
Всем привет еще раз зашел сказать сапсибо
@VitaliyPerezhogin
@VitaliyPerezhogin Год назад
Добрый день! Есть вопрос. А почему нельзя пользоваться так же классами. То есть вызывать методы из классов Player и School. Почему именно интерфейс нужно использовать?
@VLAD-pi6ee
@VLAD-pi6ee 2 года назад
Всё понятно но скажи где это может быть использовано в сознании чего либо?
@amirabdulatipoff157
@amirabdulatipoff157 3 года назад
Автору: просмотри ролик и признайся честно, ты сам понял сказанное/показанное?
@leshamarshal
@leshamarshal 3 года назад
Я так понимаю, не зашло ?))
@amirabdulatipoff157
@amirabdulatipoff157 3 года назад
@@leshamarshal , не вопрос вкуса "нравится/не нравится", подача хорошая, но тема не раскрыта до степени понимания. Т.е. декларация есть, а описание не полное
@leshamarshal
@leshamarshal 3 года назад
Хм...я учту. Но тут конечно проблема. Тема то по сути очень простая. Может я перестарался и стало непонятно по итогу )))
@shepardmoore8048
@shepardmoore8048 3 года назад
@@leshamarshal да норм, на самом деле. Я понял.
@KoshkaRus55
@KoshkaRus55 3 года назад
@@leshamarshal все в принципе понятно, но по итогу я не поняла как это работает. т.е. после того как я создала все что было в уроке и нажала Run, то как бы ничего не получилось, хотелось бы увидеть продолжение этого урока, чтобы все работало
@DIO-ed1ml
@DIO-ed1ml 2 года назад
Признаться, не понял. Только общий посыл(
@QQ-th7yw
@QQ-th7yw 2 года назад
топ
@Slevin_87
@Slevin_87 2 года назад
Увы для меня не сильно понятно......
@user-bm4pj2xe8u
@user-bm4pj2xe8u 2 года назад
спасибо я учус самоучка. И ваши видео уроки очень помогает. Хочу стать програмистом план ровно через год приехать в Москву и устроиться програмистом.
@user-gc4nx8tm2u
@user-gc4nx8tm2u Год назад
хорош в Москву ехать! Ваши предки в 1991м выгнали всех русских "чемодан вокзал Россия", а теперь сами едете)) Едь в Нью-орк, Париж, Берлин и тд
@dimakovpak5230
@dimakovpak5230 Год назад
@@user-gc4nx8tm2u хера себе ))) что за ненависть такая , в 90 -х все всех выгоняли ))))
@user-od9ef9ke1l
@user-od9ef9ke1l Год назад
Ну и как уже подзабил хуек или еще учишься?
@user-gc4nx8tm2u
@user-gc4nx8tm2u Год назад
​@@dimakovpak5230 я просто помню как моих друзей и не только их выгнали из Узбекистана, а потом сами поехали в Россию. Они говорили что мы им мешаем, ну вот, не мешаем, так они теперь к нам едут.
@dan4ikBi6
@dan4ikBi6 Год назад
@@user-gc4nx8tm2u а щас ваши понаехали к нам) вот она, карма ахахаха
@blossomxs
@blossomxs Год назад
все норм ,но почему ни разу прогу не запустил то
@F00Ntik
@F00Ntik 3 года назад
вроде говорил, что будет 3 урока в неделю... а сейчас почти неделю нету новых видео(
@leshamarshal
@leshamarshal 3 года назад
есть такое дело. Чёт заработался
@nfew
@nfew Год назад
Я два часа страдал и думал почему у меня не работает код, потом меня осенило... я не объявил main() в классе Start...
@pechen57.
@pechen57. Год назад
какой сексистский урок😂 на самом деле самая удобная подача для меня
@BoddenDeni
@BoddenDeni Год назад
Зашла..
@user-dc9cp1yl3m
@user-dc9cp1yl3m 4 месяца назад
Но ведь реализация метода play() интерфейса Player или read() интерфейса Study должна где-то быть прописана, а это значит что мы должны создать классы Player и Student, объекты которых по идее и должны быть созданы в Game и School, хоть их там и 50 штук будет например, ведь каждый из них реализует метод play или study по разному. И вот спрашивается на кой нам интерфейс? Это круто что через него можно вызывать тот или иной метод помещая в него определенный объект, который был создан на основе этого интерфейса, но разве не проще вызвать метод через имя объекта? И не надо будет нагромождать код интерфейсами и их объектами! Я рил не понимаю для каких реальных целей существуют интерфейсы, разве что для решения проблем с множественным наследием
@user-dc9cp1yl3m
@user-dc9cp1yl3m 4 месяца назад
Я имею ввиду: что в классе Player, что в его интерфейсе будет один раз прописан один и тот же метод play(), но вот вопрос: зачем мне имплементироваться от интерфейса, если можно просто в классе Player написать метод play() и исключить лишние строки кода в виде интерфейса? типо еще кто-то кроме плейера может обладать таким же методом? Вроде нет. Student и Player это разные объекты содержащие разные методы и свойства. Тут все слишком зависит от контекста: если мы делаем программу для Школы, то нам не важно, что студент является Человеком или Игроком, он просто студент, который будет иметь свойства пол, возраст имя. Так же и с Игроком. А вот если мы ведем речь о Человеке, что он может быть как Игроком, так и Студентом, то да, тут интерфейс может пригодится. Все😂 я сам себе рассказал че это такое) Тебе просто надо было вместо мальчика и девочки брать понятие Человек, так как пол это свойство человека
@user-gu4zr7gk1e
@user-gu4zr7gk1e 3 года назад
Упаси Господи трансгендер... )))))))
@VLAD-pi6ee
@VLAD-pi6ee 2 года назад
А ты это писал ещё 7 месяцев назад когда это было не так принято а щас все начали дич творить
@UserName-bf7vi
@UserName-bf7vi 2 года назад
@@VLAD-pi6ee Полностью поддерживаю
@Petrengo1
@Petrengo1 Год назад
Тяжеловато
@user-xo9ux5dv4f
@user-xo9ux5dv4f Год назад
увидел "интерфейс" первое впечатление "сейчас будет наконец-то что-то про формы ввода, вывода информации..." ан нет... чУдной язык джава и термины в нем ...
@gadgad6775
@gadgad6775 Год назад
нехватает примеров с исполнением задач через интерфейсы, да есть разные классы которые могут на интерфейсы ссылаться но видео стоит переработать
@doinkes7764
@doinkes7764 Год назад
Со второго раза понял, но не понял как в классе Main запустить метод у Player'a
@user-ox6vt8ww9b
@user-ox6vt8ww9b Год назад
The Sims на минималках?
@XersiLsi
@XersiLsi Год назад
спасибо!
Далее
Comparable и Comparator в Java
20:55
Просмотров 11 тыс.
Как Я ОБМАНУЛ Датчик ДВИЖЕНИЯ?
10:50
Putin visits North Korea for first time in 24 years
00:20
Java. Для чего нужен Optional?
18:26
Просмотров 12 тыс.
Интерфейсы на практике
7:34
Просмотров 177 тыс.