Уроки 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

Комментарии • 113

  • @kydrish
    @kydrish Год назад +22

    Я в начале - "ага понятно"
    Я спустя несколько минут- "ни хрена не понятно"

  • @OJlEHEHOK
    @OJlEHEHOK 7 месяцев назад +22

    для тех, кто как и я пользуется версией 2023 и у кого нет package. правой клавишей по scr> new>Package

    • @valan7192
      @valan7192 5 месяцев назад

      Спасибо добрый человек

    • @horrorsans3476
      @horrorsans3476 5 месяцев назад

      Спасибо

  • @jacj_cambal
    @jacj_cambal Год назад +65

    Благодарю. Этот курс в несколько часов заменяет целый блок занятий в университете. Спасибо)

    • @Panda-stroka
      @Panda-stroka 9 месяцев назад

      можете пожалуйсто помочь я когда нажимаю run у меня выводит вместо bmw выводит Transport@79b4d0fDisconnected

    • @saint6737
      @saint6737 4 месяца назад +2

      Весь семак нихуя не делал, зашёл на видео, всё понял 👍

  • @anjahalenko875
    @anjahalenko875 Год назад +1

    Спасибо! Очень доступное объяснение!

  • @Silver-Parallaxis
    @Silver-Parallaxis 2 года назад +3

    Спасибо за уроки!

  • @barabashhYana
    @barabashhYana 2 месяца назад +1

    ООчень крутые уроки, как-будто пазллы постепенно становятся на свои места☺Благодарю Вас!

  • @Mattifications0
    @Mattifications0 2 месяца назад +2

    В 10 понял что хочу быть программистом. Искал бесплатные курсы. Но нашол эти видео все понятно.Сейчас мне 12. Спасибо!

  • @kosray7282
    @kosray7282 Год назад +3

    Отличный урок, спасибо!!!

  • @DankiCat
    @DankiCat Год назад +5

    спасибо за такие крутые уроки!

  • @user-hz3fg1sg3g
    @user-hz3fg1sg3g 2 года назад +8

    понятнее объяснений я еще не встречал

  • @rimmas2020
    @rimmas2020 2 года назад +2

    Спасибо большое!!!

  • @aireye
    @aireye 5 месяцев назад

    Спасибо большое за видео! Очень понятно!
    Хотелось более подробных объяснений про сеттеры и геттеры (методы setValues и getValues)

  • @darkmafia_
    @darkmafia_ 7 месяцев назад +2

    Спасибо большое за этот полезныц ролик!! Очень помогли

  • @BatyrBatc09
    @BatyrBatc09 Год назад +6

    Вроде бы всё понял, в целом курс очень понятный и даже не смотря на разные версии intelid у меня всё получается👍

  • @SpySnakeEye
    @SpySnakeEye 2 года назад +2

    Спасибо!

  • @user-Pravdarub586
    @user-Pravdarub586 2 года назад +30

    Весь плейлист - превосходное объяснение! Всё по полочкам! Я много где пытался изучать Java, но всё не то. Ты лучший! Гоша, можно ли тебя нанять в качестве репетитора? И, если да, сколько ты берешь за 1 час занятий?

    • @stalker88
      @stalker88 Год назад +1

      У него только курсы на сколько я знаю

  • @forsidekhan5405
    @forsidekhan5405 Месяц назад +1

    В class transport сразу стало выводиться usages и если наводить, то ссылка выходит на использование и сразу показывает сколько раз используется в стороннем классе, прикольно.

  • @ovannessb7697
    @ovannessb7697 Год назад +1

    Очень крутой !

  • @QAEngineer_Evseev
    @QAEngineer_Evseev Год назад

    [26:43] Editor->Inlay Hints->Java->Parameter hints

  • @yersinbizak3592
    @yersinbizak3592 4 месяца назад

    thank you for lesson

  • @DeadLazy34
    @DeadLazy34 Год назад +9

    Чувак ты просто Бог

  • @virus8727
    @virus8727 Месяц назад

    если бы я не вник в ооп в питоне, то скорее всего сломал бы себе голову))) а так все легко и понятно. спсибо за видео!

  • @user-it5tg9tm5p
    @user-it5tg9tm5p Год назад +1

    С третьего раза врубился. Особенно озадачило что при String в цикле For координаты из массива выводились по порядку( не суммировались). А в уроке про функции в методе int в цикле for массив сумvируется! Думаю, раза 2 еще надо оба урока пересмотреть!

    • @fi_sh_ka
      @fi_sh_ka 3 месяца назад

      вот я это сейчас пытаюсь понять)) и всё пока никак не врубилась нафига мы там этот цикл написали....

    • @user-fx4qy2yc1l
      @user-fx4qy2yc1l Месяц назад

      Цикл перебирает значения в массиве, а вот += озадачило, не вырубаюсь как это работает. Почему не просто = ? Зачем нам текущее значение складывать с элементом массива, если на выходе мы получаем только значение из массива?...

    • @user-fx4qy2yc1l
      @user-fx4qy2yc1l Месяц назад

      А, бл... этож конкатинация, там стринга в 4 строки набирается

  • @prosto_rA9
    @prosto_rA9 Год назад +2

    Спасибо большое за Урок, хз почему, но меня тянет смотреть их именно ночью XD
    Но у меня возник следующий вопрос, могу ли я в основном файле вызвать функцию ввода числа пользователем, которое потом будет передаваться в другой файе (В тот же самый Transport), оно там будет проходить какие-то математические действия, и после этого извращения, и после этого можно ли будет вывести результат в основной файл?

    • @PirateFoxy3
      @PirateFoxy3 8 месяцев назад +2

      а ты попробуй.

  • @4ebure4eklalkovich57
    @4ebure4eklalkovich57 11 месяцев назад

    Круто

  • @Larry.Menthol
    @Larry.Menthol Год назад +2

    Спасибо за урок! Очень хорошо и понятно объяснили!
    У меня вопрос. Может из-за новой версии, но когда я создавал фай у меня не было функции создать “package”
    Поэтому когда я начал делать тоже что и автор канала, у меня вместо “package” написано “no usages”
    Важно ли это? Что это значит? И как/где можно создать “package”?
    Спасибо!

    • @Larry.Menthol
      @Larry.Menthol Год назад

      И еще такой вопрос. Как мне удалить новый класс? Я попытался его удалить, он выдает ошибку, а потом пишет что этот класс нельзя редактировать, он только для чтения

    • @ayxanvelizade3976
      @ayxanvelizade3976 Год назад

      @@Larry.Menthol может нижнем правом углу на значок замок включил?

  • @user-kr9rr4ho8d
    @user-kr9rr4ho8d 7 месяцев назад

    Помогите пожалуйста, выходит ошибка в строке: coordinate = _cooedinate, ошибка такая: incompatible types. found: 'byte', required: 'byte[]' java, что мне с этим делать

    • @user-kr9rr4ho8d
      @user-kr9rr4ho8d 7 месяцев назад

      incompatible types. found: 'byte', required: 'byte[]' *

  • @engineergamingsavetf2111
    @engineergamingsavetf2111 8 месяцев назад

    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3, что делать?

    • @codylamer
      @codylamer 2 месяца назад

      У вас в массиве нету значение 3, тк сам массив начинается с 0. Вы дали ему 3 значения которые заполнили клетки: 0,1,2. 3 нету и вы пытаетесь в эту клетку пытаетесь присвоитьь значение

  • @MilkMeny
    @MilkMeny 5 месяцев назад

    1:30
    Вложенные классы передают привет

  • @user-gy5bc5kl2s
    @user-gy5bc5kl2s 8 месяцев назад +1

    2023.2.1 создаю Новый файл java class, но сверху нету надписи package com.itproger; и вообще файлы у меня лежат src, а на видео в src, com, itproger. На следующим файле над строчками надпись no usages. И затем в этом файл не перечисляются данные. Как понимаю, файлы как буд-то не связаны, имею ввиду связь, которую автор видео говорит на 2:10

    • @Voxert
      @Voxert 7 месяцев назад +1

      Ты можешь сам пакеты создать. Нажми на папку src пкм и там будет серая папка как на видео и в эту папку создавай все файлы .java . Но я без пакетов также как на видео делал и все ок, поэтому можно и не создавать.

    • @Eremin-Maks
      @Eremin-Maks 3 месяца назад

      сделал как ты описал, ничего не получилось,. и кнопочка запуска терминала раньше была зеленая, сейчас белая. @@Voxert

  • @cmepth1k663
    @cmepth1k663 2 месяца назад

    Пхах, если бы он на 26:51 не сказал про подсказки, я бы и дальше сидел не понимал что я сделал не так😅

  • @user-ji2tv5vq9s
    @user-ji2tv5vq9s 9 месяцев назад

    храни тебя господь

    • @Panda-stroka
      @Panda-stroka 9 месяцев назад

      можете пожалуйсто помочь я когда нажимаю run у меня выводит вместо bmw выводит Transport@79b4d0fDisconnected

    • @IbragimIDadaev
      @IbragimIDadaev 11 дней назад

      @@Panda-stroka Arrays.toString(coordinate) надеюсь помог

  • @XXX24225
    @XXX24225 Год назад +2

    Во втором классе высвечивается проблема, я не могу обратиться к другому классу

  • @dialectios
    @dialectios 11 месяцев назад

    как сделать бинд как у него, чтобы увеличивать масштаб в консоли?

  • @eastmordor
    @eastmordor 3 месяца назад

    Подскажите, а какой уровень у лектора? Сеньор?

  • @GorN_Rebel
    @GorN_Rebel Год назад +3

    Меня интересует почему строка: infoCoordinates += coordinate[i] + "
    "; - выводит не:
    Coordinates:
    0
    Coordinates:
    0
    Coordinates:
    0
    а выводит:
    Coordinates:
    0
    0
    0
    Или в данном случае знак += на самом не деле означает не infoCoordinates = infoCoordinates + coordinate, а coordinate = следующее значение?

    • @azazsee
      @azazsee Год назад

      Цикл for идет после "Coordinates :
      ";.
      Внутри цикла значение infoCoordinates меняется на [i] т.е. на координаты нулевую, первую и вторую {0,0,0}

    • @GorN_Rebel
      @GorN_Rebel Год назад

      ​@@azazsee
      for(int i = 0; i < coordinate.length; i++) {
      infoCoordinates += coordinate[i] + "
      ";
      }
      return info + infoCoordinates;
      Так оно же в цикле уже и должно по идее выводится каждый раз Координаты

    • @GorN_Rebel
      @GorN_Rebel Год назад

      @@azazsee короче говоря - ничего не понял. Очень странная логика у языка Java

    • @GorN_Rebel
      @GorN_Rebel Год назад +3

      ​@@azazsee разобрался при помощи отладчика. Оказывается += в случае сложения строки и числом не равно тому же знаку, когда складываются только числа. Получается, что к одной и той же строке прибавляется каждый раз переменная i, пока идёт цикл и потом всё выводится вместе. А я то думал, что каждый раз новая строка прибавляется к числу и так три раза и всё это вместе слагается.
      То есть:
      String y += 5; String y += 5; String y += 5; в итоге равно y555
      А с цифрами по другому:
      Int y(5) += 4; Int y += 4; Int y += 4 в итоге равно 17

    • @bakvit1412
      @bakvit1412 Год назад

      @@GorN_Rebel все верно, в стринги это просто склейка текста, в инте, шорт и т.д это результат сложения

  • @Hitomi_Mint
    @Hitomi_Mint 2 года назад +4

    Немного не понимаю, почему именно так просто обращаемся к полям и устанавливаем параметры в методе setValue. После C очень выглядит на глаз непривычно

    • @laytergames2756
      @laytergames2756 Год назад

      Инкапсуляция сказала привет)

  • @Ivan-zr3tf
    @Ivan-zr3tf 2 года назад +14

    Никто, апсалютна никто. truck: ✈

  • @annkLOL
    @annkLOL Год назад

    вот я слегка не понимаю, а зачем тогда в Main создавать функции ( методы ) если можно через другой класс

    • @timuratavaliev2566
      @timuratavaliev2566 Год назад

      Вроде Main это главный метод - который запускается, когда запускаешь программу. Что-то вроде index.html в вэбе

    • @Voxert
      @Voxert 7 месяцев назад

      уже понял?

    • @annkLOL
      @annkLOL 7 месяцев назад

      аахаха . да @@Voxert

  • @newbie-in-python
    @newbie-in-python Год назад

    Ненавижу ООП но ты круто объясняешь

    • @eterline
      @eterline Год назад

      По моему это в разы удобнее, чем писать каждый раз новые методы и заново все вводить.

  • @iulianaburakova8317
    @iulianaburakova8317 Год назад +1

    Откуда индекс i ? у меня выдает ошибку

    • @GorN_Rebel
      @GorN_Rebel Год назад +1

      какой i? Если ты имеешь в виду в цикле for, то он просто используется как счётчик цикла

  • @faunus2470
    @faunus2470 7 месяцев назад +1

    Что делать если package нет?

    • @Eremin-Maks
      @Eremin-Maks 3 месяца назад

      у меня такая же беда

    • @kostya-zl9zf
      @kostya-zl9zf Месяц назад

      если вы работаете в корневой папке src то package быть и не должно. Он должен быть только когда файлы находяться в внутрених каталогах. Например src/testCatalog

  • @v.Zombaka
    @v.Zombaka 10 месяцев назад +2

    Можно создать объект не много попроще вот так:
    Transport bmw = new Transport() {{
    speed = 250.5f;
    weight = 2500;
    color = "White";
    coordinate = new byte[] {0, 0, 0};
    }};
    Так можно не писать bmw. несколько раз, да и выглядит чище
    (По крайней мере работает на версии IntelliJ IDEA 2023.1.2)

    • @fi_sh_ka
      @fi_sh_ka 3 месяца назад

      наверное автор писал чтобы нам понятнее было откуда что куда и кому, что принадлежит)

  • @_dikiy_omlet_102
    @_dikiy_omlet_102 9 месяцев назад

    Аээээ, не пон. Как ты вызвал функцию с параметрами, не задавая их( я про setValues)

  • @user-it5tg9tm5p
    @user-it5tg9tm5p Год назад

    Не знаю почему, но у меня package вообще нигде не отображается. Может что в настройках? Кто подскажет?

    • @user-jp9tx3ir5l
      @user-jp9tx3ir5l Год назад +2

      Была у меня такая проблема. Нигде не указывается package. Решил ее так. В папке src-New-Package вводите название. Папка появляется. А уж затем в этой папке создаете Main, Transport и тд. Тогда вверху появляется package и ваше название.

    • @user-it5tg9tm5p
      @user-it5tg9tm5p Год назад

      @@user-jp9tx3ir5l спасибо!!!

    • @dialectios
      @dialectios 11 месяцев назад +1

      знаю, что ответ уже дали, но всё же напишу. можно выделить текст после com. или net., затем нажать ALT+ENTER и нажать Add to package

  • @sempai-kefteme
    @sempai-kefteme 6 месяцев назад

    тупо лайк и подписка за BMW

  • @slavas4813
    @slavas4813 2 года назад +5

    что означает буква f после значения в поле скорости, это как подтверждение float?

    • @supportreport7232
      @supportreport7232 2 года назад +1

      +

    • @DakarofArmenia
      @DakarofArmenia 2 года назад

      Да без ф будет ошибка

    • @vanek4284
      @vanek4284 2 года назад +4

      если используешь float то в конце надо писать f

    • @Sinnth
      @Sinnth Год назад

      При типе данных float, всегда в конце числа нужно прописывать f

    • @kydrish
      @kydrish Год назад

      f, обязательно прописывается если используется float

  • @user-eb3ow7wn4r
    @user-eb3ow7wn4r Год назад +1

    Все больше и больше не понимаю всего этого 😢

  • @IgorDevi
    @IgorDevi 5 месяцев назад

    Каша в голове

  • @user-iy4pq2wx6h
    @user-iy4pq2wx6h 6 месяцев назад

    aku sayang
    kanu juga sayang
    tapi sayang
    kita berjauhan

  • @apostol7957
    @apostol7957 7 месяцев назад

    кто смотрит с кайфом после js ставим палец вверх. посмотрим сколько нас с фронта))

    • @Bobrovsky13
      @Bobrovsky13 6 месяцев назад

      После Python’a 🎉

  • @user-qx3jt8fw1v
    @user-qx3jt8fw1v 2 года назад +3

    Лайк за бмв 😁

  • @xeither289
    @xeither289 2 года назад +5

    БОГ ЕСТЬ ЛЮБИТЕ БОГА И СВОИХ БЛИЖНИХ!!!

    • @st.libertos
      @st.libertos 2 года назад +10

      код не компилируеться что-ли?

    • @huggydugy6369
      @huggydugy6369 2 года назад +10

      @@st.libertos наоборот, видимо спустя 1000 ошибок скомпилировался))

    • @crazylemmy
      @crazylemmy 2 года назад +2

      @@st.libertos 👍👍👍 🤣

    • @user-zw9wg5gv2s
      @user-zw9wg5gv2s 9 месяцев назад

      Да здравствует Император человечества!! Повелитель империума

  • @xeither289
    @xeither289 2 года назад +3

    ИИСУС ХРИСТОС ЕСТЬ МЕССИЯ И ОН ВОСКРЕС

    • @thelax547
      @thelax547 Год назад +1

      Где такие новости ?

    • @spraysferry9841
      @spraysferry9841 Год назад

      Мы здесь Программирование изучаем а не твою тупуй библию и исуса. Иди в церковь и там рассказывай свои сказки. Ave Satanas!🥰

    • @thelax547
      @thelax547 Год назад +1

      @@spraysferry9841это не касается в Библию это от Корана и религия называется Ислам !

    • @thelax547
      @thelax547 Год назад +1

      @@spraysferry9841 кстати я тоже программист

  • @anatoliuyanouski3213
    @anatoliuyanouski3213 7 месяцев назад +1

    while(true)
    System.out.println("Спасибо!");

  • @stkotov7536
    @stkotov7536 6 месяцев назад

    Товарищи, доброго времени суток.
    Поправьте пожалуйста зеленого падавана, в классе 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;
    }
    }

    • @user-wz3jk8rd5m
      @user-wz3jk8rd5m 5 месяцев назад

      Ты после метода setValues и в конце должен скобки поставить { }
      А вообще с такими вопросами обращайся лучше к чату GPT он поможет