Уроки Java с нуля / #12 - Создание классов и объектов
HTML-код
- Опубликовано: 12 май 2024
- Начиная с этого урока мы с вами приступаем к изучению ООП на практике. В ходе урока мы научимся создавать классы и объекты при помощи языка Джава.
✅ Полезные ссылки:
- Урок на сайте itProger: itproger.com/course/java/12
⏰ Тайм коды:
00:00 - Начало
00:20 - Зачем нужен ООП?
01:15 - Создание класса «Transport»
05:20 - Модификаторы доступа
08:05 - Создание полей
09:15 - Создание объектов
16:17 - Модификатор доступа «private»
18:24 - Методы класса
26:10 - Работа с методами класса
29:00 - Заключительная часть
✔ Сообщество программистов: itproger.com/
✔ -------------
Вступай в группу Вк - prog_life 🚀
Инстаграм itProger: / itproger_official
Группа FaceBook - goo.gl/XW0aaP
Instagram: / gosha_dudar
Telegram: t.me/itProger_official
Twitter - / goshadudar
- Уроки от #itProger 👨🏼💻
- Все уроки по хештегу #itprogerLessons
Я в начале - "ага понятно"
Я спустя несколько минут- "ни хрена не понятно"
для тех, кто как и я пользуется версией 2023 и у кого нет package. правой клавишей по scr> new>Package
Спасибо добрый человек
Спасибо
Благодарю. Этот курс в несколько часов заменяет целый блок занятий в университете. Спасибо)
можете пожалуйсто помочь я когда нажимаю run у меня выводит вместо bmw выводит Transport@79b4d0fDisconnected
Весь семак нихуя не делал, зашёл на видео, всё понял 👍
Спасибо! Очень доступное объяснение!
Спасибо за уроки!
ООчень крутые уроки, как-будто пазллы постепенно становятся на свои места☺Благодарю Вас!
В 10 понял что хочу быть программистом. Искал бесплатные курсы. Но нашол эти видео все понятно.Сейчас мне 12. Спасибо!
Отличный урок, спасибо!!!
спасибо за такие крутые уроки!
понятнее объяснений я еще не встречал
Спасибо большое!!!
Спасибо большое за видео! Очень понятно!
Хотелось более подробных объяснений про сеттеры и геттеры (методы setValues и getValues)
Спасибо большое за этот полезныц ролик!! Очень помогли
Вроде бы всё понял, в целом курс очень понятный и даже не смотря на разные версии intelid у меня всё получается👍
Спасибо!
Весь плейлист - превосходное объяснение! Всё по полочкам! Я много где пытался изучать Java, но всё не то. Ты лучший! Гоша, можно ли тебя нанять в качестве репетитора? И, если да, сколько ты берешь за 1 час занятий?
У него только курсы на сколько я знаю
В class transport сразу стало выводиться usages и если наводить, то ссылка выходит на использование и сразу показывает сколько раз используется в стороннем классе, прикольно.
Очень крутой !
[26:43] Editor->Inlay Hints->Java->Parameter hints
thank you for lesson
Чувак ты просто Бог
если бы я не вник в ооп в питоне, то скорее всего сломал бы себе голову))) а так все легко и понятно. спсибо за видео!
С третьего раза врубился. Особенно озадачило что при String в цикле For координаты из массива выводились по порядку( не суммировались). А в уроке про функции в методе int в цикле for массив сумvируется! Думаю, раза 2 еще надо оба урока пересмотреть!
вот я это сейчас пытаюсь понять)) и всё пока никак не врубилась нафига мы там этот цикл написали....
Цикл перебирает значения в массиве, а вот += озадачило, не вырубаюсь как это работает. Почему не просто = ? Зачем нам текущее значение складывать с элементом массива, если на выходе мы получаем только значение из массива?...
А, бл... этож конкатинация, там стринга в 4 строки набирается
Спасибо большое за Урок, хз почему, но меня тянет смотреть их именно ночью XD
Но у меня возник следующий вопрос, могу ли я в основном файле вызвать функцию ввода числа пользователем, которое потом будет передаваться в другой файе (В тот же самый Transport), оно там будет проходить какие-то математические действия, и после этого извращения, и после этого можно ли будет вывести результат в основной файл?
а ты попробуй.
Круто
Спасибо за урок! Очень хорошо и понятно объяснили!
У меня вопрос. Может из-за новой версии, но когда я создавал фай у меня не было функции создать “package”
Поэтому когда я начал делать тоже что и автор канала, у меня вместо “package” написано “no usages”
Важно ли это? Что это значит? И как/где можно создать “package”?
Спасибо!
И еще такой вопрос. Как мне удалить новый класс? Я попытался его удалить, он выдает ошибку, а потом пишет что этот класс нельзя редактировать, он только для чтения
@@Larry.Menthol может нижнем правом углу на значок замок включил?
Помогите пожалуйста, выходит ошибка в строке: coordinate = _cooedinate, ошибка такая: incompatible types. found: 'byte', required: 'byte[]' java, что мне с этим делать
incompatible types. found: 'byte', required: 'byte[]' *
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3, что делать?
У вас в массиве нету значение 3, тк сам массив начинается с 0. Вы дали ему 3 значения которые заполнили клетки: 0,1,2. 3 нету и вы пытаетесь в эту клетку пытаетесь присвоитьь значение
1:30
Вложенные классы передают привет
2023.2.1 создаю Новый файл java class, но сверху нету надписи package com.itproger; и вообще файлы у меня лежат src, а на видео в src, com, itproger. На следующим файле над строчками надпись no usages. И затем в этом файл не перечисляются данные. Как понимаю, файлы как буд-то не связаны, имею ввиду связь, которую автор видео говорит на 2:10
Ты можешь сам пакеты создать. Нажми на папку src пкм и там будет серая папка как на видео и в эту папку создавай все файлы .java . Но я без пакетов также как на видео делал и все ок, поэтому можно и не создавать.
сделал как ты описал, ничего не получилось,. и кнопочка запуска терминала раньше была зеленая, сейчас белая. @@Voxert
Пхах, если бы он на 26:51 не сказал про подсказки, я бы и дальше сидел не понимал что я сделал не так😅
храни тебя господь
можете пожалуйсто помочь я когда нажимаю run у меня выводит вместо bmw выводит Transport@79b4d0fDisconnected
@@Panda-stroka Arrays.toString(coordinate) надеюсь помог
Во втором классе высвечивается проблема, я не могу обратиться к другому классу
как сделать бинд как у него, чтобы увеличивать масштаб в консоли?
Подскажите, а какой уровень у лектора? Сеньор?
Меня интересует почему строка: infoCoordinates += coordinate[i] + "
"; - выводит не:
Coordinates:
0
Coordinates:
0
Coordinates:
0
а выводит:
Coordinates:
0
0
0
Или в данном случае знак += на самом не деле означает не infoCoordinates = infoCoordinates + coordinate, а coordinate = следующее значение?
Цикл for идет после "Coordinates :
";.
Внутри цикла значение infoCoordinates меняется на [i] т.е. на координаты нулевую, первую и вторую {0,0,0}
@@azazsee
for(int i = 0; i < coordinate.length; i++) {
infoCoordinates += coordinate[i] + "
";
}
return info + infoCoordinates;
Так оно же в цикле уже и должно по идее выводится каждый раз Координаты
@@azazsee короче говоря - ничего не понял. Очень странная логика у языка Java
@@azazsee разобрался при помощи отладчика. Оказывается += в случае сложения строки и числом не равно тому же знаку, когда складываются только числа. Получается, что к одной и той же строке прибавляется каждый раз переменная i, пока идёт цикл и потом всё выводится вместе. А я то думал, что каждый раз новая строка прибавляется к числу и так три раза и всё это вместе слагается.
То есть:
String y += 5; String y += 5; String y += 5; в итоге равно y555
А с цифрами по другому:
Int y(5) += 4; Int y += 4; Int y += 4 в итоге равно 17
@@GorN_Rebel все верно, в стринги это просто склейка текста, в инте, шорт и т.д это результат сложения
Немного не понимаю, почему именно так просто обращаемся к полям и устанавливаем параметры в методе setValue. После C очень выглядит на глаз непривычно
Инкапсуляция сказала привет)
Никто, апсалютна никто. truck: ✈
вот я слегка не понимаю, а зачем тогда в Main создавать функции ( методы ) если можно через другой класс
Вроде Main это главный метод - который запускается, когда запускаешь программу. Что-то вроде index.html в вэбе
уже понял?
аахаха . да @@Voxert
Ненавижу ООП но ты круто объясняешь
По моему это в разы удобнее, чем писать каждый раз новые методы и заново все вводить.
Откуда индекс i ? у меня выдает ошибку
какой i? Если ты имеешь в виду в цикле for, то он просто используется как счётчик цикла
Что делать если package нет?
у меня такая же беда
если вы работаете в корневой папке src то package быть и не должно. Он должен быть только когда файлы находяться в внутрених каталогах. Например src/testCatalog
Можно создать объект не много попроще вот так:
Transport bmw = new Transport() {{
speed = 250.5f;
weight = 2500;
color = "White";
coordinate = new byte[] {0, 0, 0};
}};
Так можно не писать bmw. несколько раз, да и выглядит чище
(По крайней мере работает на версии IntelliJ IDEA 2023.1.2)
наверное автор писал чтобы нам понятнее было откуда что куда и кому, что принадлежит)
Аээээ, не пон. Как ты вызвал функцию с параметрами, не задавая их( я про setValues)
Не знаю почему, но у меня package вообще нигде не отображается. Может что в настройках? Кто подскажет?
Была у меня такая проблема. Нигде не указывается package. Решил ее так. В папке src-New-Package вводите название. Папка появляется. А уж затем в этой папке создаете Main, Transport и тд. Тогда вверху появляется package и ваше название.
@@user-jp9tx3ir5l спасибо!!!
знаю, что ответ уже дали, но всё же напишу. можно выделить текст после com. или net., затем нажать ALT+ENTER и нажать Add to package
тупо лайк и подписка за BMW
что означает буква f после значения в поле скорости, это как подтверждение float?
+
Да без ф будет ошибка
если используешь float то в конце надо писать f
При типе данных float, всегда в конце числа нужно прописывать f
f, обязательно прописывается если используется float
Все больше и больше не понимаю всего этого 😢
Каша в голове
aku sayang
kanu juga sayang
tapi sayang
kita berjauhan
кто смотрит с кайфом после js ставим палец вверх. посмотрим сколько нас с фронта))
После Python’a 🎉
Лайк за бмв 😁
БОГ ЕСТЬ ЛЮБИТЕ БОГА И СВОИХ БЛИЖНИХ!!!
код не компилируеться что-ли?
@@st.libertos наоборот, видимо спустя 1000 ошибок скомпилировался))
@@st.libertos 👍👍👍 🤣
Да здравствует Император человечества!! Повелитель империума
ИИСУС ХРИСТОС ЕСТЬ МЕССИЯ И ОН ВОСКРЕС
Где такие новости ?
Мы здесь Программирование изучаем а не твою тупуй библию и исуса. Иди в церковь и там рассказывай свои сказки. Ave Satanas!🥰
@@spraysferry9841это не касается в Библию это от Корана и религия называется Ислам !
@@spraysferry9841 кстати я тоже программист
while(true)
System.out.println("Спасибо!");
Товарищи, доброго времени суток.
Поправьте пожалуйста зеленого падавана, в классе Transport не получается (возможно я ослеп и чего-то не замечаю, в третий раз переписываю по видео) ругается на 4 значения (пометил в коде). Заранее спасибо.
package com.example.my_demo_one;
public class Transport {
public float speed;
public int weight;
public String color;
public byte[] coordinate;
public void setValues(float _speed, int _weight, String _color, byte[] _coordinate);
speed = _speed; - ВОТ ТУТ ругается java: expected
weight = _weight; - ВОТ ТУТ ругается java: expected
color = _color; - ВОТ ТУТ ругается java: expected
coordinate = _coordinate; - ВОТ ТУТ ругается java: expected
public String getValues() {
String info = "Object speed: " + speed + ". Weight: " + weight + ". Color: " + color + ".
";
String infoCoordinate = "Coordinates:
";
for(int i = 0; i < coordinate.length; i++)
infoCoordinate += coordinate[i] + "
";
return info + infoCoordinate;
}
}
Ты после метода setValues и в конце должен скобки поставить { }
А вообще с такими вопросами обращайся лучше к чату GPT он поможет