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.
А какие методы лучше использовать для создания интерфейсов в программировании? Лично я выбирал курсы по IT для улучшения своих навыков, рассматривал разные компании, но остановился на Skypro. Благодаря наставнику нашел первого заказчика))
На самом деле автор очень доходчиво донес смысл концепции интерфейсов. До этого ролика дня два смотрел разные видео и читал много статей по теме, пытаясь понять что это и зачем это нужно? Это видео дало понимание. При всем уважении к видеокурсу Алишева, например, он не объяснил тему интерфейсов так понятно, как автор этого видео .
Огромное спасибо!
Ровно тоже самое. Прочёл на 4х сайтах и два ролика посмотрел
до этого, а в итоге только тут разобрался для чего это нужно.
Душераздерающая история про то, как мальчик не умеет читать, а всё что умеет - это запускать игру ногой...
Я плакал на этом месте😢
Я безумно рад, что нашел твой канал. Ты рассказываешь разжевывая, спасибо!
Ты супер)) начинаю с нуля и все понимаю, раньше ничем таким не увлекался. Уметь доносить информацию не всем дано
Ничего не понял но очень интересно :D
хахахахха тоже самое
До этого все уроки заходили на ура. А тут осталось смутное чувство недопонимания.
Вот, вроде, все понятно, но есть ощущение, будто что-то не понял.. Хотя, у меня вообще с ООП такая ситуация.. В любом случае спасибо за уроки)
Очень хорошо объяснил, спасибо большое за материал. Звук отличный. Побольше видео про java бы, особенно про spring
Урок понравился мне этот🎉
Мне кажется ну не закончил урок , ещё немного не договорил, надо было показать как это работает,.А вообщем супер приятно смотреть уроки))и более менее все понятно😊
только после твоего видоса понял что такое интерфейсы
До ээтого посомтрел 7-8 уроков, но твой лучший
Благодаря безграмотному мальчику, включающему игры ногой, я понял что такое интерфейсы. Спасибо!!!
спасибо за урок, приятный, вдумчивый голос
Спасибо !
Да, интересно было с этой стороны посмотреть на интерфейсы
Спасибо за видео. Очень доходчиво
Спасибо
спасибо за "..поправим масштаб текста.."))
Зря в конце не запустил весь код. Сам кое-как дописал но не факт что правильно вызываю:
Boy ivan = new Boy();
Game game = new Game();
School school = new School();
game.start(ivan);
school.start(ivan);
В Яндекс практикум не поняла, а тут поняла, спасибо!
Спасибо за видео. Очень понятно и просто изложено.
Смысл понятен, но оч загрузил))
Интерфейс - это разный метод передачи действий, которые сам же и создал.
Классное видео, спасибо, зашло, подписался+лайк
Спасибо за труд.
Очень хорошо, ждем продолжения ; )
Очень круто, спасибо
Автору: просмотри ролик и признайся честно, ты сам понял сказанное/показанное?
Я так понимаю, не зашло ?))
@@leshamarshal , не вопрос вкуса "нравится/не нравится", подача хорошая, но тема не раскрыта до степени понимания. Т.е. декларация есть, а описание не полное
Хм...я учту. Но тут конечно проблема. Тема то по сути очень простая. Может я перестарался и стало непонятно по итогу )))
@@leshamarshal да норм, на самом деле. Я понял.
@@leshamarshal все в принципе понятно, но по итогу я не поняла как это работает. т.е. после того как я создала все что было в уроке и нажала Run, то как бы ничего не получилось, хотелось бы увидеть продолжение этого урока, чтобы все работало
спасибо я учус самоучка. И ваши видео уроки очень помогает. Хочу стать програмистом план ровно через год приехать в Москву и устроиться програмистом.
хорош в Москву ехать! Ваши предки в 1991м выгнали всех русских "чемодан вокзал Россия", а теперь сами едете)) Едь в Нью-орк, Париж, Берлин и тд
@@Частныйсектор-х4я хера себе ))) что за ненависть такая , в 90 -х все всех выгоняли ))))
Ну и как уже подзабил хуек или еще учишься?
@@dimakovpak5230 я просто помню как моих друзей и не только их выгнали из Узбекистана, а потом сами поехали в Россию. Они говорили что мы им мешаем, ну вот, не мешаем, так они теперь к нам едут.
@@Частныйсектор-х4я а щас ваши понаехали к нам) вот она, карма ахахаха
Всем привет еще раз зашел сказать сапсибо
Нипонял.
Если серьезно - не совсем понял до конца прошлый урок, этот аналогично.. стоит ли переходить к следующим урокам? или пересматривать эти 2 пока не дойдет?
спасибо!
Добрый день! Есть вопрос. А почему нельзя пользоваться так же классами. То есть вызывать методы из классов Player и School. Почему именно интерфейс нужно использовать?
thanks!!
Всё понятно но скажи где это может быть использовано в сознании чего либо?
топ
Признаться, не понял. Только общий посыл(
какой сексистский урок😂
на самом деле самая удобная подача для меня
Я два часа страдал и думал почему у меня не работает код, потом меня осенило... я не объявил main() в классе Start...
все норм ,но почему ни разу прогу не запустил то
Но ведь реализация метода play() интерфейса Player или read() интерфейса Study должна где-то быть прописана, а это значит что мы должны создать классы Player и Student, объекты которых по идее и должны быть созданы в Game и School, хоть их там и 50 штук будет например, ведь каждый из них реализует метод play или study по разному. И вот спрашивается на кой нам интерфейс? Это круто что через него можно вызывать тот или иной метод помещая в него определенный объект, который был создан на основе этого интерфейса, но разве не проще вызвать метод через имя объекта? И не надо будет нагромождать код интерфейсами и их объектами! Я рил не понимаю для каких реальных целей существуют интерфейсы, разве что для решения проблем с множественным наследием
Я имею ввиду: что в классе Player, что в его интерфейсе будет один раз прописан один и тот же метод play(), но вот вопрос: зачем мне имплементироваться от интерфейса, если можно просто в классе Player написать метод play() и исключить лишние строки кода в виде интерфейса? типо еще кто-то кроме плейера может обладать таким же методом? Вроде нет. Student и Player это разные объекты содержащие разные методы и свойства. Тут все слишком зависит от контекста: если мы делаем программу для Школы, то нам не важно, что студент является Человеком или Игроком, он просто студент, который будет иметь свойства пол, возраст имя. Так же и с Игроком. А вот если мы ведем речь о Человеке, что он может быть как Игроком, так и Студентом, то да, тут интерфейс может пригодится. Все😂 я сам себе рассказал че это такое) Тебе просто надо было вместо мальчика и девочки брать понятие Человек, так как пол это свойство человека
Зашла..
Увы для меня не сильно понятно......
вроде говорил, что будет 3 урока в неделю...
а сейчас почти неделю нету новых видео(
есть такое дело. Чёт заработался
Упаси Господи трансгендер... )))))))
А ты это писал ещё 7 месяцев назад когда это было не так принято а щас все начали дич творить
@@VLAD-pi6ee Полностью поддерживаю
Очень быстро(((
Тяжеловато
увидел "интерфейс" первое впечатление "сейчас будет наконец-то что-то про формы ввода, вывода информации..." ан нет... чУдной язык джава и термины в нем ...
нехватает примеров с исполнением задач через интерфейсы, да есть разные классы которые могут на интерфейсы ссылаться но видео стоит переработать
The Sims на минималках?
Со второго раза понял, но не понял как в классе Main запустить метод у Player'a
спасибо!