У тебя просто чудо канал! Серьезно, один из самых лучших из всех которых я когда либо видел. Отличное умение подать материал. Прошу тебя, продолжай в том же духе!
Недавно начал смотреть твои уроки и пока дошёл до 36-го. Хочу стать одним из многих, кто выразит тебе свою благодарность за безвозмездную работу и напишет, что ты большой красавчик) После твоего сообщения о том, что уроки будут в течение недели, каждый день уже по привычке захожу на канал в закладках в надежде увидеть, что вот он - новый урок. И пусть этот новый урок я сразу после выхода смотреть не буду, просто хочу осознать, что автор не забрасывает и продолжает делать доброе дело. И этот текст я пишу не для того, чтобы ты воспринял мой коммент как упрёк о задержке новых уроков, а наоборот, чтобы моё сообщение стало ещё одной каплей мотивации и понимания того, насколько крутой материал ты выкладываешь в сеть, и как к нему относятся люди. На твоём месте, возможно, пора уже задуматься о чем-то более глобальном в этой теме, чем просто анонимный канал на ютубе. Здесь много людей были бы рады знать в лицо своего учителя, кто-то предлагал сам скинуть деньги, чтобы хоть как-то компенсировать твой труд, а я бы, например, с радостью прочитал твою историю успеха в IT-сфере или был бы рад увидеть какой-то форум (наподобие джавараш), где люди бы помогали друг другу в изучении java. Конечно, скорее всего, большинство из мною предложенного для тебя лишняя трата времени, но я лишь подал идею) Ещё раз спасибо за то, что ты делаешь.
Отличное объяснение! Всё по полочкам, всё структурировано. Я посмотрел с удовольствием и пришел в восторг от того, что за 10 минут весь пазл про вложенные классы у меня наконец-то сложился. Автор, большое вам человеческое спасибо!
Случайно наткнулся на данного автора. Просто прекрасно. Иногда читаешь, перечитываешь и не совсем понятно, а тут хоп, хоп и всё становится на свои места. Спасибо за столь хорошее объяснение. Единственное печалит, что уроки выходят не так часто. javaRussia, может Вам организовать какую-то платную подписку, чтоб мотивировать Ваш труд? Думаю, многие бы согласились заплатить какую-то сумму, но чтоб Вы продолжили в том же духе и объясняли не только первоначальные понятия, а перешли к более сложным вещам. И обучающее видео выходило бы почаще. У Вас очень хорошо получается и учиться Java по Вашим урокам одно удовольствие.
Ещё один вопрос. Не планируете ли Вы заняться обучением программирования по Android? Android Studio и пр. В свете Вашего умения объяснять, думаю - это бы вызвало широкий интерес.
К слову - в электрокаре коробки передач нет)) А если серьёзно - спасибо большое за видеокурс. Смотрю эти уроки параллельно с чтением книг и практическими занятиями, и всё благодаря ним усваивается в разы лучше!
За 6 лет уже пофиксили), теперь можно использовать просто локальные переменные метода(не константы), в котором есть вложеный класс со своим методом. public void start() { int x = 1; Motor motor = new Motor(); motor.startMotor(); System.out.println("Electrocar " + id + " is starting..."); class SomeClass{ /* 3-й вид вложенных классов - это вложенный класс, который находится в методе. Method-local Inner Class. Он имеет доступ к не статическим полям внешнего класса и к переменным метода. Единственное, что требуется от переменных в методе, чтобы к ним имелся доступ во вложенном классе - это чтобы они были КОНСТАНТАМИ. Это связано с ограничениями языка. - УЖЕ ЭТО НЕ ОБЯЗАТЕЛЬНО, ИМЕЕМ ДОСТУП И К КОНСТАНТАМ ЛОКАЛЬНЫМ И К ОБЫЧНЫМ.*/ public void someMethod(){ System.out.println(x);// компилятор пропускает. System.out.println(id); } } }
Спасибо. Очень грамотно даете материал. Java для начинающих буквально за 2 дня впитал. Правда уже был небольшой опыт в Си-подобных языках и в Python. А так основная моя профессия - 1С. Еще не встречал настолько продуманной и грамотной подачи на рутубе.
@@АнатолийГлушков-у4м я и не планировал свичнутся в java. Считаю эти уроки полезными для общего понимания ООП в любых языках. А так я уже давно свичнулся в python.
6:02 Ты забыл упомянуть, что вложенные статические классы также имеют доступ к статическим *методам* внешнего класса, не только доступ к статическим *полям* внешнего класса.
Думаю, принципиальное различие между Motor и Battery в том, что на Motor невозможно воздействовать извне, а Battery можно заряжать. Ты это и хотел сказать, просто чуть более расплывчато об этом сказал.
Кратко, доходчиво и только по теме. Отличное изложение материала. Так держать! Надеюсь на продолжение и присоединяюсь относительно просьбы включить уроки по GUI
Дядя, у тебя реально получается доходчиво объяснять сложные темы! Тебе нужно преподавать в вузах ) Пролистал плэй-лист и не увидел уроков по работе с GUI (поля ввода/вывода, ввод с клавиатуры, обработка событий, и т.п.). Жалко конечно, так как это и есть практическая реализация своих знаний. Та теория которая здесь выложена, без практики забудется очень быстро.
если в "вузах", то только не в российских или бывшего СНГ... Только Гарвард, Ель, Кембридж.... или на крайняк МИТ или Калтек. В "наших" вузах человек пропадет. Система не даст раскрыть потенциал и желание давать знания пропадет. Да и публика в вузах разношерстая - кто-то реально пришел за знаниями, а кто-то тупо отбывает номер. Лучше уж на курсах оффлайн или он-лайн, вебинары, семинары итд. Думаю, автор и так этим занимается периодически. Успехов и процветания автору!
Внутренние классы бывают статические и нестатические. Статические классы еще называют вложенными (static nested class), нестатические просто называют внутренними классами (inner class).
Спасибо за урок. Сейчас пытаюсь "в курить" чем отличается вложенный статический класс от не статического. за исключением того, что статический не имеет у себя ссылки на родителя. Типо для малой связанности. Вообще для меня сейчас стало открытием, что экземпляры статического (вложенного) класса можно создавать. В C# такого нельзя. Мой мир пошатнулся )). Да и по логики static как бы говорит что это один единственный, который создается со старта программы и уничтожается при её завершении.
Спасибо за урок! :) Вопросы: 1. Внутренний (нестатический класс) Motor объявлен с модификатором private, а метод этого же класса StartMotor() - public. В чем суть? Класс делается private, чтобы из-вне (через имя класса, в котором он находится) к нему не было доступа. Тогда для чего метод этого класса, к которому нет доступа, объявлены public? 2. Создание экземпляра статического (вложенного) класса. Получается, что вложенный класс - это обычный независимый класс, у которого можно создавать объекты Но он не имеет доступа к нестатическим полям класса, в который он вложен, т.к. не содержит неявную ссылку на него, а к статическим - имеет + чтобы создать экземпляр вложенного класса, нужно обратиться к имени класса, в который он вложен. Т.е. статик перед классом показывает только то, что этот класс мог бы существовать в любом месте, но для удобства (логики) был вложен в другой класс и создать его экземпляр можно через "трудность" в виде имени класса, в который он вложен? Получается: Внутренний - как орган в организме - часть внешнего класса Вложенный - самостоятельный, цельный, независимый, вложен - как протез (костыль)
1. Я заметил что независимо от модификатора доступа у startMotor, его всегда можно выполнить у объекта motor. motor.startMotor() - так выполняется и для private void startMotor(){..
Все дело в том, что при создании объекта вложенного класса внутри метода все переменные метода копируются в объект этого вложенного класса. То есть переменные в методе и переменные во вложенном в этот метод классе - это две разные переменные, которые имеют одинаковое значение. Пример: public void test() { final int a = 5; // эта переменная class SomeClass { public void someMethod() { a = 1; // отличается от этой переменной } } } Имея в виду такую особенность реализации вложенных классов в Java, разработчики языка решили, что возможность передавать во вложенные классы не константы приведет к путанице. Какого рода путаница? Если бы вы могли передавать во вложенные классы переменные-неконстанты, то вы бы могли изменять их внутри вложенных классов. Тогда, изменив переменную внутри класса, вы бы ожидали, что она изменится и в самом методе-обертке, но этого не произойдет потому, что в методе и во вложенном классе хранятся разные переменные. И наоборот, изменяя переменную в методе, вы бы ожидали, что она изменится во вложенном классе, но этого не произойдет. Поэтому, чтобы такой путаницы не возникало, во вложенные классы можно передавать только final переменные.
@@alishevN Спасибо большое! Классно. А такое вообще применяется?) Ну вот на прокшене хоть раз кто-то остался на должности после того, как написал внутренний класс в методе?
Для статических вложеных класов можно привести аналогию с заводом? Например public class Factory делает public static auto? По типу: public class Factory { // some fields private class Engine { // params // methods } public static class Auto { // params Factory.Engine v8 = new Factory.Engine(args); // methods } }
Зачем нужен вложенный статический класс ? в чем его отличие от внешнего статического класса? Какую логику преследовали разработчики языка когда вводили статический вложенный класс?
спасибо за уроки. очень интересно насчет ограничения языка в методе: public void start (){ ..... class SomeClass{ final int x = 0; >>>>> ????? } } как это называется, если нет времени объяснять я найду это сам . только знать бы что искать. супер пасиб
Здравствуйте. Есть вопрос по вложенным нестатическим. В каком практическом контексте их более выгодно использовать, в отличие от обычного независимого класса внутри пакета? Кроме примера с паттерном Снимок (Momento) в голову пока больше ничего не приходит. Можете привести жизненный пример использования? Спасибо. refactoring.guru/ru/design-patterns/memento
Нужно дополнительно прописать. Вложенный класс просто инкапсуляция логики в отдельный объект (в данном случае класс). По канонам GoF и SOLID надо создавать отдельный класс и переносить туда логику. А в потребителе объявлять поле и лучше через интерфейс. т.к. реализация мотора и батареи может быть разная.
Объясни пожалуйста с чем связано то, что переменную нужно финализировать прежде чем использовать внутри метода. Когда читал про final узнал что параметры метода можно финализировать и не мог понять для чего это может понадобится, так вот одно из объяснений что это нужно в анонимных классах, а почему не могу понять. Что за ограничение языка? Также помню что вроде и в лямбах та же ситуация.
Зачем они вообще нужны? Как я понял: больше всего внутренний класс похож на наследника - пользуется полями и методами внешнего, вт.ч. private поля / методы, (наследник через getter & setter), но! не может переопределять методы внешнего, однако ко внутреннему классу можно применить модиф доступа private, что улучш инкапс, т.к. в пакете его нет, а видимость ограничена внешним классом. Если сравнить вложенного наследника и просто наследника, то, как я понимаю, они равны, просто у наследника лучше инкапс.
Зачем рекламировать финансовые пирамиды ? ))) .... вообще каждый решает сам чем зарабатывать, но пирамиды это за рамками здравого смысла должны быть, ИМХО. За курс спасибо, за рекламу пирамид "минус".
@@alishevN реклама во время просмотра урока. Не ваша конечно, но на вашем канале. Название забыл уже, но рекламировали способ быстро разбогатеть ничего не делая ))
Регистрируйтесь на курс "Продвинутая Java": ruclips.net/video/rRe1vT0SDD8/видео.html
Практикуйтесь в написании Java кода: java-marathon.tilda.ws
У тебя просто чудо канал! Серьезно, один из самых лучших из всех которых я когда либо видел. Отличное умение подать материал. Прошу тебя, продолжай в том же духе!
Конечно!
00:00 Вступление
00:46 Нестатический класс
04:36 Статический класс
07:42 Класс вложенный в метод
Здравствуйте. Хоть и прошло много лет с момента выпуска видео, но хочу поблагодарить за объяснение!!!
Недавно начал смотреть твои уроки и пока дошёл до 36-го. Хочу стать одним из многих, кто выразит тебе свою благодарность за безвозмездную работу и напишет, что ты большой красавчик)
После твоего сообщения о том, что уроки будут в течение недели, каждый день уже по привычке захожу на канал в закладках в надежде увидеть, что вот он - новый урок. И пусть этот новый урок я сразу после выхода смотреть не буду, просто хочу осознать, что автор не забрасывает и продолжает делать доброе дело. И этот текст я пишу не для того, чтобы ты воспринял мой коммент как упрёк о задержке новых уроков, а наоборот, чтобы моё сообщение стало ещё одной каплей мотивации и понимания того, насколько крутой материал ты выкладываешь в сеть, и как к нему относятся люди.
На твоём месте, возможно, пора уже задуматься о чем-то более глобальном в этой теме, чем просто анонимный канал на ютубе. Здесь много людей были бы рады знать в лицо своего учителя, кто-то предлагал сам скинуть деньги, чтобы хоть как-то компенсировать твой труд, а я бы, например, с радостью прочитал твою историю успеха в IT-сфере или был бы рад увидеть какой-то форум (наподобие джавараш), где люди бы помогали друг другу в изучении java. Конечно, скорее всего, большинство из мною предложенного для тебя лишняя трата времени, но я лишь подал идею)
Ещё раз спасибо за то, что ты делаешь.
Спасибо за такой мотивирующий комментарий!
Запись уроков уже в процессе, а насчет расширения канала - идеи есть, хватило бы времени.
ну, что, стал программистом?
работаешь уже? программистом?
@@tobe2339 а ты?
Отличное объяснение! Всё по полочкам, всё структурировано. Я посмотрел с удовольствием и пришел в восторг от того, что за 10 минут весь пазл про вложенные классы у меня наконец-то сложился. Автор, большое вам человеческое спасибо!
Это реально лучшие уроки, просто Браво.
Стал программистом?
@@osta_vlad_sxe я тестер, мне надо было чтоб авто тесты писать а не программистом становится.
Случайно наткнулся на данного автора. Просто прекрасно. Иногда читаешь, перечитываешь и не совсем понятно, а тут хоп, хоп и всё становится на свои места. Спасибо за столь хорошее объяснение. Единственное печалит, что уроки выходят не так часто. javaRussia, может Вам организовать какую-то платную подписку, чтоб мотивировать Ваш труд? Думаю, многие бы согласились заплатить какую-то сумму, но чтоб Вы продолжили в том же духе и объясняли не только первоначальные понятия, а перешли к более сложным вещам. И обучающее видео выходило бы почаще. У Вас очень хорошо получается и учиться Java по Вашим урокам одно удовольствие.
Спасибо за комментарий! Я возобновлю уроки и увеличу их частоту в ближайшее время.
Ещё один вопрос. Не планируете ли Вы заняться обучением программирования по Android? Android Studio и пр. В свете Вашего умения объяснять, думаю - это бы вызвало широкий интерес.
Планирую. Только до этого еще есть несколько больших тем, которые надо покрыть.
Самые понятные уроки по Java на всем ютубе)
К слову - в электрокаре коробки передач нет))
А если серьёзно - спасибо большое за видеокурс. Смотрю эти уроки параллельно с чтением книг и практическими занятиями, и всё благодаря ним усваивается в разы лучше!
Здравствуйте, раз читали книжки, может посоветуете что-нибудь? Я уже в принципе более-менее понимаю все, что описывается в данном курсе.
Во многих электрокарах есть привычная КПП
реостат вас устроит вместо коробки передач? )))
@@AnnaLiuban Реостат это аналог педали газа.
очень понятно объясняешь. спасибо за ролики, все посмотрел
Пожалуйста!
За 6 лет уже пофиксили), теперь можно использовать просто локальные переменные метода(не константы), в котором есть вложеный класс со своим методом.
public void start() {
int x = 1;
Motor motor = new Motor();
motor.startMotor();
System.out.println("Electrocar " + id + " is starting...");
class SomeClass{
/* 3-й вид вложенных классов - это вложенный класс, который находится в методе. Method-local Inner Class.
Он имеет доступ к не статическим полям внешнего класса и к переменным метода. Единственное, что требуется от переменных в методе, чтобы к ним имелся доступ во вложенном классе - это чтобы они были КОНСТАНТАМИ. Это связано с ограничениями языка. - УЖЕ ЭТО НЕ ОБЯЗАТЕЛЬНО, ИМЕЕМ ДОСТУП И К КОНСТАНТАМ ЛОКАЛЬНЫМ И К ОБЫЧНЫМ.*/
public void someMethod(){
System.out.println(x);// компилятор пропускает.
System.out.println(id);
}
}
}
Супер, легко, а главное понятно. С твоими уроками грех не стать программистом) Спасибо за проделанный труд)
Привет. Ну что стал программистом?
@@antonvolodin2924 привет , java не пошла ) стал аналитиком , сейчас учу другой язык программирования)
@@ИгорьЧумиков-й5б расскажи, почему java не пошла? почему в аналитику пошел? пиши, если что в вк volant86
@@antonvolodin2924 да у каждого свой путь , он сам по себе идёт )
Спасибо! Уроки просто класс! Все очень наглядно, понятно и доступно
очень и очень классно объясняешь!!!!!! спасибо за труд
Как же ты хорошо объясняешь... каееефффф))
Спасибо. Очень грамотно даете материал. Java для начинающих буквально за 2 дня впитал. Правда уже был небольшой опыт в Си-подобных языках и в Python. А так основная моя профессия - 1С. Еще не встречал настолько продуманной и грамотной подачи на рутубе.
Получилось свичнуться в java?)
@@АнатолийГлушков-у4м я и не планировал свичнутся в java. Считаю эти уроки полезными для общего понимания ООП в любых языках. А так я уже давно свичнулся в python.
Ждем вас очень очень
Благодарю за хорошие уроки)
Спасибо, Наиль!
СПАСИБО! С нетерпением жду следующих уроков)
6:02 Ты забыл упомянуть, что вложенные статические классы также имеют доступ к статическим *методам* внешнего класса, не только доступ к статическим *полям* внешнего класса.
Думаю, принципиальное различие между Motor и Battery в том, что на Motor невозможно воздействовать извне, а Battery можно заряжать. Ты это и хотел сказать, просто чуть более расплывчато об этом сказал.
не совсем понял. можно другой пример? на мотор влияние из вне - его ремонт
хотелось бы поскорее увидеть видео уроки про многопоточность. Хочу пожелать вашему каналу процветания, отличные объяснения
Спасибо, многопоточность будет после Java Core и Java Collections.
быстрей бы))))
оо, отлично. жду Java Collections.
привет. что в итоге у тебя с джавой? работаешь прогером или нет? расскажи все как есть плз.
Кратко, доходчиво и только по теме. Отличное изложение материала. Так держать! Надеюсь на продолжение и присоединяюсь относительно просьбы включить уроки по GUI
Я уже делаю следующие уроки. Спасибо за ожидание)
Классно было бы увидеть урок по maven. Удачи автору.
Дядя, у тебя реально получается доходчиво объяснять сложные темы! Тебе нужно преподавать в вузах )
Пролистал плэй-лист и не увидел уроков по работе с GUI (поля ввода/вывода, ввод с клавиатуры, обработка событий, и т.п.). Жалко конечно, так как это и есть практическая реализация своих знаний. Та теория которая здесь выложена, без практики забудется очень быстро.
если в "вузах", то только не в российских или бывшего СНГ... Только Гарвард, Ель, Кембридж.... или на крайняк МИТ или Калтек. В "наших" вузах человек пропадет. Система не даст раскрыть потенциал и желание давать знания пропадет. Да и публика в вузах разношерстая - кто-то реально пришел за знаниями, а кто-то тупо отбывает номер. Лучше уж на курсах оффлайн или он-лайн, вебинары, семинары итд. Думаю, автор и так этим занимается периодически. Успехов и процветания автору!
Внутренние классы бывают статические и нестатические. Статические классы еще называют вложенными (static nested class), нестатические просто называют внутренними классами (inner class).
Наконец не Animal !!!!!!!!!
@@shrgful У Animal нет Battery
Если бы не котики, на изучение языков программирования уходило бы гороздо больше времени!!!!!!!!!☝️🤨
Спасибо!! За видео дошол 43 урока.❤❤❤❤❤😂
100 000 🥳 поздравляю!
спасибо!
Спасибо, сенсэй!
Спасибо!
Видимо в ходе работы будет то ещё жорево... Пока учишься, всё вообще круто!
Спасибо за урок.
Сейчас пытаюсь "в курить" чем отличается вложенный статический класс от не статического. за исключением того, что статический не имеет у себя ссылки на родителя. Типо для малой связанности.
Вообще для меня сейчас стало открытием, что экземпляры статического (вложенного) класса можно создавать. В C# такого нельзя. Мой мир пошатнулся )).
Да и по логики static как бы говорит что это один единственный, который создается со старта программы и уничтожается при её завершении.
Спасибо за урок! :)
Вопросы:
1. Внутренний (нестатический класс) Motor объявлен с модификатором private, а метод этого же класса StartMotor() - public. В чем суть? Класс делается private, чтобы из-вне (через имя класса, в котором он находится) к нему не было доступа. Тогда для чего метод этого класса, к которому нет доступа, объявлены public?
2. Создание экземпляра статического (вложенного) класса.
Получается, что вложенный класс - это обычный независимый класс, у которого можно создавать объекты Но он не имеет доступа к нестатическим полям класса, в который он вложен, т.к. не содержит неявную ссылку на него, а к статическим - имеет + чтобы создать экземпляр вложенного класса, нужно обратиться к имени класса, в который он вложен. Т.е. статик перед классом показывает только то, что этот класс мог бы существовать в любом месте, но для удобства (логики) был вложен в другой класс и создать его экземпляр можно через "трудность" в виде имени класса, в который он вложен?
Получается:
Внутренний - как орган в организме - часть внешнего класса
Вложенный - самостоятельный, цельный, независимый, вложен - как протез (костыль)
1. Я заметил что независимо от модификатора доступа у startMotor, его всегда можно выполнить у объекта motor.
motor.startMotor() - так выполняется и для private void startMotor(){..
thanks
а можно поподробнее про вложенные классы в методе и константы? Вы обещали в комментах ответить)
Все дело в том, что при создании объекта вложенного класса внутри метода все переменные метода копируются в объект этого вложенного класса. То есть переменные в методе и переменные во вложенном в этот метод классе - это две разные переменные, которые имеют одинаковое значение.
Пример:
public void test() {
final int a = 5; // эта переменная
class SomeClass {
public void someMethod() {
a = 1; // отличается от этой переменной
}
}
}
Имея в виду такую особенность реализации вложенных классов в Java, разработчики языка решили, что возможность передавать во вложенные классы не константы приведет к путанице.
Какого рода путаница?
Если бы вы могли передавать во вложенные классы переменные-неконстанты, то вы бы могли изменять их внутри вложенных классов. Тогда, изменив переменную внутри класса, вы бы ожидали, что она изменится и в самом методе-обертке, но этого не произойдет потому, что в методе и во вложенном классе хранятся разные переменные.
И наоборот, изменяя переменную в методе, вы бы ожидали, что она изменится во вложенном классе, но этого не произойдет.
Поэтому, чтобы такой путаницы не возникало, во вложенные классы можно передавать только final переменные.
@@alishevNСпасибо, все понятно!
@@alishevN Спасибо большое! Классно. А такое вообще применяется?) Ну вот на прокшене хоть раз кто-то остался на должности после того, как написал внутренний класс в методе?
Расскажи пожалуйста про композиции и коллекции!
Огонь!
спасибо
Для статических вложеных класов можно привести аналогию с заводом? Например public class Factory делает public static auto? По типу:
public class Factory {
// some fields
private class Engine {
// params
// methods
}
public static class Auto {
// params
Factory.Engine v8 = new Factory.Engine(args);
// methods
}
}
все классно, только у электомобиля нет коробки передач
Посмотрела все уроки)Все понятно, когда будут следующие?И спасибо
Уроки будут! Просто пока нет времени записать новые.
Спасибо большое за уроки, буду ждать новые очень)
8:06 Локальный класс имеет доступ к нестатическим полям.
Потестил, ввел два статических поля, локальный класс спокойно получает к ним доступ.
Возможно, с обновлениями пришёл новый функционал
Привет с 2к23!
Зачем нужен вложенный статический класс ? в чем его отличие от внешнего статического класса? Какую логику преследовали разработчики языка когда вводили статический вложенный класс?
Спасибо тебе за уроки... я повторюсь ВЕЛИКОЛЕПНО!!! все... жду с нетерпением новых уроков... к стати а когда они будут?
В течение этой недели!
Уже месяц прошёл. Когда будут следующие уроки?
В течение недели.
Спасибо за хорошие уроки! А провально ли это что класс приватный а поле публичное во вложенном классе?
Здравствуйте! Спасибо за Ваши уроки. Хочу уточнить как запустить работу во вложенных статических и во вложенных классах в методе?
Через вызов их методов не получается?
ждем продолжение)
Я уже делаю следующие уроки. Спасибо за ожидание)
Объясните пожалуйста почему в вложенном классе внутри метода используются только final переменные из данного метода.
5:34 нет доступа к переменной вышестоящего класса исключительно из-за того, что эта переменная объявлена не статик
04:36
Интересно, что выполнение этих строк даст одинаковый результат:
new Electrocar.Battery().charge()
Electrocar.Battery.charge()
Зачем использовать вложенный нестатических класс? Не проще ли создать пакет и там описать каждый класс?
Дуже корисний урок
Хорошо объясняешь, жаль нету видео на тему LinkedList...
Серия видео о Java Collections обязательно появится.
как запустить метод someMethod? он не запускается тут? и для чего создавать private void test? оно не вызывает тот метод
спасибо за уроки. очень интересно насчет ограничения языка в методе:
public void start (){
.....
class SomeClass{
final int x = 0; >>>>> ?????
}
}
как это называется, если нет времени объяснять я найду это сам . только знать бы что искать. супер пасиб
www.tutorialspoint.com/java/java_innerclasses.htm
КомплЕклсный))) 4:04
Здравствуйте. Есть вопрос по вложенным нестатическим. В каком практическом контексте их более выгодно использовать, в отличие от обычного независимого класса внутри пакета? Кроме примера с паттерном Снимок (Momento) в голову пока больше ничего не приходит. Можете привести жизненный пример использования? Спасибо. refactoring.guru/ru/design-patterns/memento
про трассировку будут уроки?
1:35 Наиль, а объявив вложенный не статический класс мы тем самым уже объявили новое поле? Или его нужно дополнительно прописать?
Нужно дополнительно прописать. Вложенный класс просто инкапсуляция логики в отдельный объект (в данном случае класс).
По канонам GoF и SOLID надо создавать отдельный класс и переносить туда логику. А в потребителе объявлять поле и лучше через интерфейс. т.к. реализация мотора и батареи может быть разная.
@@dgavrikov84 Спасибо!)
Объясни пожалуйста с чем связано то, что переменную нужно финализировать прежде чем использовать внутри метода. Когда читал про final узнал что параметры метода можно финализировать и не мог понять для чего это может понадобится, так вот одно из объяснений что это нужно в анонимных классах, а почему не могу понять. Что за ограничение языка? Также помню что вроде и в лямбах та же ситуация.
Вот здесь есть хорошее объяснение:
ru.stackoverflow.com/questions/491452/final-переменная-для-анонимного-класса
Зачем они вообще нужны? Как я понял:
больше всего внутренний класс похож на наследника - пользуется полями и методами внешнего, вт.ч. private поля / методы, (наследник через getter & setter), но! не может переопределять методы внешнего, однако ко внутреннему классу можно применить модиф доступа private, что улучш инкапс, т.к. в пакете его нет, а видимость ограничена внешним классом.
Если сравнить вложенного наследника и просто наследника, то, как я понимаю, они равны, просто у наследника лучше инкапс.
в писту
поставил 667-й лайк, спас ситуацию :)
слава богу!
@@alishevN Спасибо за ролики. Очень круто объясняешь. Всего наилучшего!
Зачем в методе , если внутренний класс создается внутри него, нужно ставить final на поля метода?
если поле не final, то оно может измениться дальше по ходу метода, а её копия в созданном объекте внутреннего класса останется с прежним значением.
когда следующий урок?
скоро, как только появится время.
Всем доброго дня! Новичкам данные уроки не подходят. Слишком быстрая подача информации...
стээррррр мотоэээрррррр
Зачем рекламировать финансовые пирамиды ? ))) .... вообще каждый решает сам чем зарабатывать, но пирамиды это за рамками здравого смысла должны быть, ИМХО. За курс спасибо, за рекламу пирамид "минус".
Какие пирамиды? вы о чем?)
@@alishevN реклама во время просмотра урока. Не ваша конечно, но на вашем канале. Название забыл уже, но рекламировали способ быстро разбогатеть ничего не делая ))
Я же не решаю какие рекламы будут показываться
@@alishevN извините, не знал. Тогда прошу прошения. Думал хозяин канала выбирает, что рекламировать )
эти 10 минут урока разбирал три часа... повторял код, тренировался...иначе не закрепить.
Что тут запоминать
опять кринжовый акцент я просто помираю, попивая чай из лондона - "Richard"
хах, у меня 40 004 просмотр