Спасибо! Очень доступно! Ваша ручка просто безподобная!
@Denis2216s Жыл бұрын
Большое спасибо за крутые уроки. Очень помогает разобраться в Джаве!
@sergejchap62 Жыл бұрын
Спасибо. Было б интересно где-то представить решение задания, которое в завершении этого урока. И конечно о нем мнение.
@Benderok451 Жыл бұрын
Это уже посложнее. Надо еще раз пересмотреть.
@IFlexxx Жыл бұрын
Нужно было создать больше методов с одинаковым названием run(), разнести их по разным местам с разными модификаторами доступа. Можно еще рефлексию добавить и lombok. Потому, что начинающие должны страдать при попытке разобраться - что от чего зависит, и что откуда вызывается.
@АсяХаликова-в7б11 ай бұрын
Категорически не согласна. Показано, как ОБЫЧНО выглядит код, но подробно объясняют, что есть что. Что назвать можно одинаково, но понимание процесса дает ответ, метод какого класса вызываем; куда переходит программа, что там встречает и запускает. Спасибо большое! У меня пока получается совершить все подвиги.
@Алекс-ю8э2с2 жыл бұрын
Какое чёткое изложение, спасибо!)
@rostislavmalyshev17753 жыл бұрын
Автор молодец. Только я никогда не понимал зачем нужны вложенные классы и сейчас не понимаю... "Простое лучше сложного".
@KALMAPUK3 жыл бұрын
Тебе нужен конкретный объект конкретного класса, но его область видимости не должна распространяться на весь проект, этот объект имеет смысл только в контексте какого-то другого объект ноги "внутри" собаки. Вне собаки объект ноги не нужен, поэтому класс делается внутренним чтобы работать с ним как с классом применять принципы ООП, но "запечатанным" внутри контекста другого класса. Это сделано для удобства. Если ты вынесешь класс ноги собаки в отдельный файл и потом в классе собаки просто сделаешь поле ноги собаки, и будешь так же работать то Абсолютно ничего не испортишь. Но! Когда у тебя в проекте будет 100-150 классов хочется такая чрезмерная декомпозиция на классы начинает раздражать и мешать.
@СергейПетров-б1ф2 жыл бұрын
хорош, спасибо
@ВикторЖигурда3 жыл бұрын
Подача материала хорошая!
@zamestaimja3 жыл бұрын
А я написал в методе run класса Dog как Вы и сказали: System.out.println("foot.name"); Но никакой ошибки не выдало. Просто вывело ещё и имя локальной собачки. Какой сложный язык, у меня даже это не получается (((((( Но преподает Вы классно, спасибо!!! И с Наступающим.
@selfedu_rus3 жыл бұрын
Спасибо! Поле name должно быть приватным, тогда получить доступ из вне не получится. Это железобетонно - основы инкапсуляции ООП ))
@ИванКоновалюк-з9л Жыл бұрын
Люди!!!=) помогите плиз по первой задаче -можно ли при создании объекта сразу задать параметры вложенного класса через объект "наружнего" класса? а то я только смог через отдельное создание статического объекта вложенного класса и передачи этой ссылки в класс Properties public class Main { public static void main(String[] args) { *Properties.Color c=new Properties.Color(8,9,10);* Properties p=new Properties(1,2,c); System.out.println("сколько красного в цвете линии "+c.red); System.out.println("сколько зелёного в цвете линии "+c.green); System.out.println("толщина линии "+p.widthLine); } static class Properties{ int widthLine; int typeLine; Color color; Properties() {} Properties(int widthLine, int typeLine, Color color){ this.widthLine=widthLine; this.typeLine=typeLine; this.color=color; } public static class Color{ int red; int green; int blue; Color(){} Color(int red, int green, int blue){ this.red=red; this.green=green; this.blue=blue; } } } }
@svk91798 ай бұрын
Я сделал без статического класса, можно задать цвета через объектную переменную. class Properties { private double widthLine; private String typeLine; private Color colorLine; public double getWidthLine() { return widthLine; } public void setWidthLine(double widthLine) { this.widthLine = widthLine; } public String getTypeLine() { return typeLine; } public void setTypeLine(String typeLine) { this.typeLine = typeLine; } public Color getColorLine() { return colorLine; } public void setColorLine(int red, int green, int blue) { this.colorLine = new Color(red, green, blue); } class Color{ private int red, green, blue; { red = green = blue = 0; } private Color(){} Color(int red, int green, int blue){ this.blue = blue; this.green = green; this.red = red; } public void setRed(int red) { if (red > 0) this.red = checkingColor(red); } public void setGreen(int green) { if (green > 0) this.green = checkingColor(green); } public void setBlue(int blue) { this.blue = checkingColor(blue); } public int getRed() { return red; } public int getGreen() { return green; } public int getBlue() { return blue; } private int checkingColor(int number){ if (number >= 0 && number < 256) return number; else return 0; } } } class DemoProperties{ public static void main(String[] args) { Properties properties = new Properties(); properties.setColorLine(157,250,147); System.out.println(properties.getColorLine().getBlue()); } }
@gscdcd83022 жыл бұрын
Задачи оказались не такими легкими, как мне показалось на первый взгляд. Первую осилила с горем пополам через статический класс, не знаю правда, проходит ли такое решение. Вторую также, но вот пункт про типы, я вообще без единой идеи как реализовать🥲
@gscdcd83022 жыл бұрын
Решила. Сейчас видео пересмотрела, и думаю, ну все же так очевидно было!
@AB-ku1su3 жыл бұрын
Это конструктор в простых скобочках без названия { } ?
@mrdregor14293 жыл бұрын
Сделай уроки по Android разработке. Они намного интереснее. Или же как создать сервер с базой данных для мобильного приложения, желательно сервак на java.
@Alex_sandr19993 ай бұрын
Лайк если тоже засмеялся с "У любой стандартной собаки должны быть ноги"
@svk91798 ай бұрын
Мой пример реализации второго подвига import java.util.HashMap; import java.util.Map; class MusicalInstrument { private String title; private int type; private Dimensions dimensions; private double price; private int yearProduction; private MusicalInstrument(){} MusicalInstrument(String title,int type, int yearProduction, double price, double width, double height, double depth){ this.title = title; this.type = type; this.yearProduction = yearProduction; this.price = price; this.dimensions = new Dimensions(width,height,depth); Static.setMap(type); } MusicalInstrument(String title, int type, int yearProduction, double price){ this.title = title; this.type = type; this.yearProduction = yearProduction; this.price = price; Static.setMap(type); } public void setTitle(String title) { this.title = title; } public void setYearProduction(int yearProduction) { this.yearProduction = yearProduction; } public void setType(int type) { this.type = type; Static.setMap(type); } public void setDimensions(double width, double height, double depth) { this.dimensions = new Dimensions(width,height,depth); } public void setPrice(double price) { this.price = price; } public int getType() { return type; } public String getTitle() { return title; } public Dimensions getDimensions() { return dimensions; } public double getPrice() { return price; } public int getYearProduction() { return yearProduction; } class Dimensions{ private double width, height, depth; private Dimensions(){} Dimensions(double width, double height, double depth){ this.width = width; this.height = height; this.depth = depth; } public double getWidth() { return width; } public double getHeight() { return height; } public double getDepth() { return depth; } public void setWidth(double width) { this.width = checkingParametrDimensions(width); } public void setHeight(double height) { this.height = checkingParametrDimensions(height); } public void setDepth(double depth) { this.depth = checkingParametrDimensions(depth); } private double checkingParametrDimensions(double number){ return number < 0? 0: number; } } static class Static{ static Map map = new HashMap(); private static int num; static { num = 0; } private Static(){} static void setMap(int type){ map.put(type,++num); } } } class DemoMultiInstrument{ public static void main(String[] args) { MusicalInstrument musicalInstrument = new MusicalInstrument("Guitar",1,2020,10500,1.25,20,15); MusicalInstrument musicalInstrument1 = new MusicalInstrument("Phono", 4, 1990,2500.36); System.out.println(MusicalInstrument.Static.map.get(4)); } }
@orangeapple54153 жыл бұрын
Сделайте пожалуйста урок по Django python
@selfedu_rus3 жыл бұрын
Буду делать, только при наличии интереса к этой теме. Если просмотров будет столько же, что и по Java ООП, то руки опустятся )
@ВикторЖигурда3 жыл бұрын
@@selfedu_rus продолжай в том же духе
@oleh51703 жыл бұрын
@@selfedu_rus очень жаль, что у ваших уроков по java мало просмотров, вы лично для меня находка. У меня есть мнение, что это связано с тем, что в ваших уроках мало прикладного, т.к. в основном людям нужно видео с решением их конкретной проблемы, а не видео с фундаментальными основами, но в этом их заблуждение. Не бывает волшебной пилюли, решение любой задачи должно идти через осознание основ языка и подходов к разработке. Также думаю вы имели бы успех, если бы выпустили серию обучающих видео по популярным направлениям, таким как автоматизированное тестирование или создание клиент серверного приложения, т.к. если коротко то я пришел к вам на канал из интереса к автоматизированному тестированию веб приложений. Но из-за того, что большинство уроков на эту тему не раскрывают особенности языка java, то я был вынужден искать более фундаментальное знания, чтобы не быть обезьянкой, которая только и знает как вызвать метод сторонней библиотеки, а быть в состоянии создать, что то свое. UPD: не заметил, что у вас есть уже серия по DjanGo фреймворку для веба. Хотел бы пожелать вам не отчаиваться, а продолжать творить, пускай даже и для узкой аудитории. Уверен, что успех к вам еще прийдет. Ну и конечно, контент о программировании не имеет такого успеха как видео про выживание в лесу в домике из стрейч пленки. Поэтому возможно надо искать выход к аудитории через онлайн менторство или еще как то. Всеравно большая благодарность Вам за ваш труд!
@АйбекЕрмекбаев-ч2и3 жыл бұрын
@@selfedu_rus Учу джаву уже пол года, но такого четкого и внятного объяснения я не встретил. После ваших роликов у меня сложилось впечатление , что у меня только поверхностные знания. Вы закладывайте хороший фундамент и очевидно , Вы знаете о чем вы говорите. Спасибо Вам за проделанную работу и предоставляете все это в свободный доступ!
@Частныйсектор-х4я Жыл бұрын
вторая задача решена так: мейн: MusicItems musicItems = new MusicItems(5,2000,2020); musicItems.setSize(100,200,300); musicItems.show(); в консоле: Type: 5 Price: 2000 Years: 2020 Dimension:100, 200, 300 Total item: 1 класс: public class MusicItems { private int type,price, years; Size size = new Size(); public MusicItems(int type, int price, int years) { this.type = type; this.price = price; this.years = years; } void setSize(int a, int b, int c){ size.setWidth(a); size.setDepth(b); size.setHight(c); Counter.counters++; } void show(){ System.out.println("Type: " + type+ " Price: "+price+" Years: "+years); System.out.println("Dimension:"+size.width+", "+size.depth+", "+ size.hight); System.out.println("Total item: " + Counter.counters); } class Size{ int width = 0; int hight = 0; int depth = 0; public void setWidth(int width) { this.width = width; } public void setHight(int hight) { this.hight = hight; } public void setDepth(int depth) { this.depth = depth; } } static class Counter{ public static int counters = 0; } }
@mouserailway2 жыл бұрын
а зачем нам конструктор Dog, который ничего не делает?
@selfedu_rus2 жыл бұрын
мы определяем несколько конструкторов, поэтому, если не прописать конструктор без параметров, то потом не сможем создать объект, не передавая никаких аргументов. Для этого он и определен.
@mouserailway2 жыл бұрын
@@selfedu_rus спасибо
@clannajebyan Жыл бұрын
За полгода, что я пытаюсь выучить ООП и понять, хоть что-то в этом, извините, свинарнике, потому что логики очередности я тут не наблюдаю совсем, я успел выучить испанский. Наверное, не стоит пытаться дальше, претензий к коду у меня больше, чем удовольствия, более нелогичного, чем программирование я в жизни не встречал. 11:42 и что? А d2.run(); мы спокойно вызываем, хотя это класс Foot. Кроме того, d у нас это и есть Dog. Короче, нафиг.
@mrdregor14293 жыл бұрын
Зачем говорить экземпляр класса, можно же по простому - объект такого-то класса
@selfedu_rus3 жыл бұрын
это синоним, я говорю и так и так
@xzebitionfive665310 ай бұрын
Пример реализации задачи 2 import java.util.ArrayList; public class MusicInstrument { public static void main(String[] args) { Instrument i1 = new Instrument("Гитара", 1, 10000, 2005, 4, 5, 6); Instrument i2 = new Instrument("Скрипка", 2, 10000, 2005, 4, 5, 6); Instrument i3 = new Instrument("Гитара", 1, 10000, 2006, 4, 5, 6); Instrument.info(); } } class Instrument { String name; int type, price, year; Gabarits gabarits; Instrument(String name, int type, int price, int year, int width, int height, int depth) { this.name = name; this.type = type; this.price = price; this.year = year; this.gabarits = new Gabarits(width, height, depth); Statistics.add_info(type); } class Gabarits { int width, height, depth; Gabarits(int width, int height, int depth) { this.width = width; this.height = height; this.depth = depth; } } static void info() { Statistics.info(); } static class Statistics { public static ArrayList types = new ArrayList(); public static ArrayList counts = new ArrayList(); public static void add_info(int type) { boolean flag = true; int id = -1; for (Integer el: types) { id += 1; if (el == type) { flag = false; break; } } if (flag) { types.add(type); counts.add(1); } else { int var = counts.get(id) + 1; counts.remove(id); counts.add(id, var); } } static void info() { System.out.println(types); System.out.println(counts); } } }