Java для начинающих. Урок 24: Класс Object и метод toString()

  Рет қаралды 133,651

alishev

alishev

8 жыл бұрын

МОЙ НОВЫЙ КУРС: • Мой курс "Продвинутая ...
ПРАКТИКА НА JAVA: java-marathon.tilda.ws
Реклама и сотрудничество: alishev.neil@gmail.com

Пікірлер: 117
@alishevN
@alishevN 6 жыл бұрын
Регистрируйтесь на курс "Продвинутая Java": kzfaq.info/get/bejne/qLiVZNmFlbmodGw.html Практикуйтесь в написании Java кода: java-marathon.tilda.ws
@user-ge2uo6ge1m
@user-ge2uo6ge1m 5 жыл бұрын
Так называемые ошибки, которые допустил автор, перепутав пару раз метод и объект, не введут человека в заблуждение если тот, в свою очередь, изучил и понял предыдущие уроки.
@jacktorrance8144
@jacktorrance8144 8 жыл бұрын
Отличные уроки! Большое спасибо! Не бросай это дело.
@alishevN
@alishevN 8 жыл бұрын
+Евгений Торбеев спасибо!
@jacktorrance8144
@jacktorrance8144 8 жыл бұрын
+javaRussia хотелось бы узнать, проводишь ли ты частные занятия или какие нибудь практические проекты на Java?
@jacktorrance8144
@jacktorrance8144 8 жыл бұрын
+javaRussia хотелось бы узнать, проводишь ли ты частные занятия или какие нибудь практические проекты на Java?
@alishevN
@alishevN 8 жыл бұрын
Частные занятия не провожу, я не преподаватель. А на java я пишу довольно много.
@1979Vodoley
@1979Vodoley 8 жыл бұрын
Скажи пожалуйста в уроках трёх годичной давности у некоторых с начало идут написания методов, а внизу уже исполнительный код, а в теперешних записях с начало исполнительный код, а потом методы?! Это без разницы или просто решили теперь так писать?
@JogaB0NIT0
@JogaB0NIT0 4 жыл бұрын
Дружище, спасибо тебе большое за то, что ты делаешь! От тебя эта информация усваивается легче, чем от всех остальных. Ёмко, кратко и понятно!
@nezhinHizZ
@nezhinHizZ 5 жыл бұрын
Отличный урок. 6 дизлайков, я так подозреваю, поставили те, то вообще ничего не понял. Не отчаивайтесь, всё придёт со временем, если не забросите програмирование. Просто повторите урок рано или поздно со String придётся иметь дело. Вернётесь и всё будет понятно! Автору респект!
@user-yk2iy7lh8o
@user-yk2iy7lh8o 6 жыл бұрын
Чувак люто плюсую! За 10 минут мне помог понять то что я очень долго не мог вкурить)
@Judosaper
@Judosaper 4 жыл бұрын
Ты лютый программист!)
@user-ty1iw8wv4y
@user-ty1iw8wv4y Жыл бұрын
Хочу выразить благодарность за вашу работу. Хожу на курсы для начинающих по Java,но там не могут объяснить ,как это делаете Вы. Я на ваших 10-15 минутных видео больше понимаю,чем на 2-часовых уроках.
@niklaus9
@niklaus9 4 ай бұрын
Здравствуйте , есть результаты по обучению? интересно))
@user-hr1xf3mv9o
@user-hr1xf3mv9o Жыл бұрын
Я безумно благодарна за эти уроки🥹❤️ все настолько понятно и доступно, столько уточнений, чтоб я делала в универе без вас, не знаю 😂 там все вообще непонятно объясняют, еще раз огромное вам спасибо за такой труд🥰
@tobesunset820
@tobesunset820 Жыл бұрын
можно с вами связаться как нибудь?
@ArtemNiknameName
@ArtemNiknameName 5 жыл бұрын
"Все объекты являются объектами" - гениально. Спасибо. :)
@mohawberel
@mohawberel 4 жыл бұрын
В этом мире нет ничего кроме обьектов
@user-sq5cr5uq8i
@user-sq5cr5uq8i 3 жыл бұрын
Скорее всего, автор имел ввиду, что все объекты являются объектами класса Object
@quicktime1205
@quicktime1205 Жыл бұрын
Отличные доходчивые уроки. Хотя первые минуты про Object и родительский класс было непонятно, но все встало на свои места после просмотра Урока №25. Даже подумалось, что 25-ый урок мог бы быть 24, а 24 - 25ым)
@bonefire2725
@bonefire2725 4 жыл бұрын
Лучше наверно было сказать что попытка вывести объект на экран изначально выводит ссылку на объект, которая в свою очередь состоит из названия класса, "@" и уникального имени ссылки. А уникальное имя ссылки в свою очередь представляет собой хэш-код (неповторяющееся в классе численное значение).
@dahtes2107
@dahtes2107 5 жыл бұрын
Спасибо дядька, освежил себе память по object) Дальше все интереснее и интереснее
@user-zr2uk6pv5m
@user-zr2uk6pv5m 8 жыл бұрын
Спасибо тебе за такие хорошие уроки)) Ты очень доступно объясняешь, так что продолжай в том же духе)))
@alishevN
@alishevN 8 жыл бұрын
+Vladimir Tkach Пожалуйста)
@Dermidont333
@Dermidont333 3 ай бұрын
Очень доходчиво и понятно. Спасибо.
@crashoverride9681
@crashoverride9681 6 жыл бұрын
Непонятный цифры и буквы после собачки и названия класса - это адрес ячейки памяти в стеке где хранится ссылка на экземпляр класса
@user-qi8df6gk6x
@user-qi8df6gk6x 5 жыл бұрын
Спасибо, это было очень полезно и доступно. А то, что иногда перепутаны понятия не такая уж проблема, т.к. это вполне свойственно для человека.
@schbkb8868
@schbkb8868 4 жыл бұрын
сколько смотрю твои видосы уже, всегда понятно, кратко. Спасибо!
@vitaliyk.6371
@vitaliyk.6371 6 жыл бұрын
Прекрасная подача довольно таки головоломкого материала,но прослушал несколько раз и все стало ясно.Спасибо за качественное обучение.
@lexelkovich35
@lexelkovich35 Жыл бұрын
Немного поправлю: "Сигнатура метода - это имя метода плюс параметры (причем порядок параметров имеет значение). В сигнатуру метода не входит возвращаемое значение, а также бросаемые им исключения"
@igorgogy9119
@igorgogy9119 3 жыл бұрын
не смотря на оговорки объект-метод (даже моего не джуновского пока уровня хватает чтобы их онлайн понимать и исправлять в голове), объясняешь ты классно!
@DolphinArtem
@DolphinArtem 2 жыл бұрын
Привет, скажи, пожалуйста, мы ведь в методе String, который переопределил метод родителя, должны вернуть return’ ом строку, а автор в него положил еще и переменную age типа int. Так можно делать?
@SAHEYJ
@SAHEYJ 2 жыл бұрын
@@DolphinArtem как видишь да
@user-ot7em9bp7f
@user-ot7em9bp7f 2 жыл бұрын
​@@DolphinArtem тут возвращается одно значение (строковое), а не int и String. в данном случае автор вернул строку, состоящую из name и age. name+" "+int - это одно строковое значение (имя пробел возраст). return в целом не может возвращать несколько переменных
@user-jj6il8my6z
@user-jj6il8my6z 3 жыл бұрын
Попробовал вывести int age, но не дает как преобразуется строка. Напрмер int age, String name можно. Решил добавить по такой логике ""+age, теперь у нас преобразуется один конструктор с параметрами int age. Кстати урок уже второй раз смотрю, закрепляю знания) Еще забыл добавить если мы создадим конструктор с параметра String name, int age. А второй конструктор String address, int street. Будет ошибка) нельзя создавать конструктор с одинаковыми примитивнами типами ил классами. А наоборот уже можно) Stirng name, int age ----> int street, String address) Кажется базовые ошибки, но все равно бывает допускаешь))
@yauhenizakhno8510
@yauhenizakhno8510 6 жыл бұрын
6:50 Сигнатура - это только имя метода и аргументы. И всё. public String в сигнатуру не входят
@igortarasov4482
@igortarasov4482 4 жыл бұрын
Огромное спасибо. Очень доступно.
@Devivl
@Devivl Жыл бұрын
Очень интересно. Спасибо!
@alisaholainen6334
@alisaholainen6334 4 жыл бұрын
Очень классный урок, спасибо!
@user-je7yq9vt6d
@user-je7yq9vt6d 5 жыл бұрын
Возможно этот урок стоило поместить после урока о наследовании, картинка бы лучше сложилась) имхо) Спасибо за твой работу)
@YurijRudakevych
@YurijRudakevych 6 жыл бұрын
Очень интерестно! Спасибо большое.
@korumstar9989
@korumstar9989 5 жыл бұрын
Спасибо за работу!
@vasiliyditiatkin6848
@vasiliyditiatkin6848 5 жыл бұрын
Йоу, спасибо, всё доходчиво, красавчик, спасибки спасибки!
@dmtconst3633
@dmtconst3633 Жыл бұрын
Спасибо, мне помогло решить задачу :)
@user-wh8ye3id7s
@user-wh8ye3id7s 3 жыл бұрын
По поводу практики к этому курсу, на моем компе, разница в скорости работы кода получилась почти в (22 мс против 241 мс в пользу StringBuilder'a), это верный результат?
@nurkhabib8954
@nurkhabib8954 2 жыл бұрын
Перед переопределением метода toString не нужно было прописывать аннотацию override? Не умничаю, просто частично зацепил эту тему, стало интересно, правильно ли я понял её.
@Andrzej3935
@Andrzej3935 3 жыл бұрын
Спасибо, вы лучший.
@user-pu8yy8fu9q
@user-pu8yy8fu9q 8 жыл бұрын
Спасибо за урок!
@user-dt7zc8gd8z
@user-dt7zc8gd8z 3 жыл бұрын
Добрый день. Я еще только учусь. но вот переопределение метода toString не работает в JDK 16, или я что-то не так понимаю. Но переписав код ровно так же как в уроке, у меня в консоль выводится хешккод
@wivernx9449
@wivernx9449 4 жыл бұрын
почему не используете аннотацию @Override при переопределени метода toString в классе Human?
@jamjam3337
@jamjam3337 16 күн бұрын
спасибо!
@gadjik_youtube
@gadjik_youtube Жыл бұрын
спасибо ! понятно и полезно
@nadirnazirov4707
@nadirnazirov4707 Жыл бұрын
Кстати я вставил extends Object для наглядности и всё работает как прежде: class Human extends Object{
@user-kp2dv4iz4f
@user-kp2dv4iz4f 4 жыл бұрын
Подскажите пожалуйста, где можно закрепить пройденные уроки практикой?
@Anatoli-bq1pe
@Anatoli-bq1pe 2 жыл бұрын
Благодарю
@C2H5OHH
@C2H5OHH 2 жыл бұрын
Спасибо!
@alexandrkomar4741
@alexandrkomar4741 3 жыл бұрын
вопрос следующий: как так получается, что в методе toString мы указываем тип возвращаемой переменной String, а смогли вернуть и String и int? return name+"."+age;
@notinvented7739
@notinvented7739 2 жыл бұрын
Java при конкатенации (сложении) автоматически конвертировала значение age в строку. То есть, из некоторого числа (например, 10), мы получили строку ("10").
@Daniel-mo1iy
@Daniel-mo1iy 2 жыл бұрын
hashCode можно увидеть с помощью метода hashCode(), а не просто выводя переменную на экран
@revert1551
@revert1551 8 жыл бұрын
ты нас оканчательно запутал!!!
@artempalamarchuk9440
@artempalamarchuk9440 7 жыл бұрын
Когда мы выводим обьект System.out.println(h1),- отображает не хеш код, а адрес памяти в котором находится объект. А хэш код и выводится своим методом System.out.println(h1.hashCode);
@alishevN
@alishevN 7 жыл бұрын
docs.oracle.com/javase/7/docs/api/java/lang/Object.html#toString()
@artempalamarchuk9440
@artempalamarchuk9440 7 жыл бұрын
Да точно, хеш код просто в другом представлении, меня ввели в заблуждение. А возможно ли каким-то способом посмотреть адресс памяти?
@user-bw7ov8ip5w
@user-bw7ov8ip5w 5 жыл бұрын
Как в IntelliJ IDEA посмотреть класс Object? Какие клавиши надо нажимать?
@user-bw2me9bm8d
@user-bw2me9bm8d 5 жыл бұрын
Зажать и удерживать клавишу Ctrl, подвести курсор мыши к слову "Объект" и кликнуть по этому слову. Отпустить клавишу Ctrl.
@user-cc8lu2vo4c
@user-cc8lu2vo4c Жыл бұрын
👍👍👍
@Jeugenelight
@Jeugenelight 6 жыл бұрын
У меня вопрос возник. Если мы создаем конструктор в который передаем аргументы например Имя и Возраст (String name, int age). Зачем тогда нужны сеттеры? Если в конструкторе и так присваиваются значения полям? Можно конечно в коде конструктора написать setName(name),но есть ли в этом смысл? Если просто можно все сделать через конструктор. P.S.Спасибо за видео.
@alexanderwicked8990
@alexanderwicked8990 6 жыл бұрын
Аргументы конструктора нужны в том случае, когда мы хотим инициализировать поля name и age при создании объекта. А сеттеры нужны в том случае, если мы хотим поменять их в дальнейшем, по ходу программы, и поля name и age при этом private. Представь себе создание персонажа рпг игры, где с самого начала у него должно быть имя и класс (например воин). Он обязательно должен иметь и то и другое, иначе он никто. Для этого аргументы конструктора. Но по ходу игры, персонаж вдруг решил сменить имя и перепрофилироваться, скажем в мага. Вот за этим и нужен сеттер.
@vsevolodshelaiev2866
@vsevolodshelaiev2866 5 жыл бұрын
@@alexanderwicked8990 Спасибо большое,до этого тоже не понимал
@user-bq6tx8zr4z
@user-bq6tx8zr4z 2 жыл бұрын
На всякий случай добавлю, если кому то нужно. Важно не забывать, что в сеттерах мы можем сделать проверку (напр. возраст не меньше нуля или не пустое поле имени). И если мы сделаем конструктор, где есть прямой доступ к полям (возраст и имя) то пользователь может писать всё что угодно, это нарушение инкапсуляции. Поэтому желательно в коде конструктора, использовать сеттеры, в которые передаются параметры конструктора. private int age; private String name; //Поле приватное, доступ только через сеттер, прямой доступ (this.name - age) только в родном классе. public Human(int age, String name){ setAge(age); setName(name); } //Конструктор, в котором сеттеры, соответственно есть проверки. public void setAge(int age) { if (age > 0) { this.age = age; } } //Сеттер с проверкой.
@niklaus9
@niklaus9 4 ай бұрын
начал изучать Джаву, напишите мне через год, узнать результат)
@Wdx-xyz
@Wdx-xyz 2 ай бұрын
Щас ты как
@niklaus9
@niklaus9 2 ай бұрын
@@Wdx-xyz учу, год не прошел еще))
@armatdavletalin8542
@armatdavletalin8542 6 жыл бұрын
Пересмотрите свой урок. Первое, лучше называть Object (именно обжект), а объект объектом, тогда меньше путаницы. То есть все объекты являются Object. Второе, очень часто вы называете методы объектами, что еще больше запутывает. А в целом, уроки очень познавательны, полезны и подробно изложены.
@simplechannel7859
@simplechannel7859 6 жыл бұрын
Спасибо
@DolphinArtem
@DolphinArtem 2 жыл бұрын
Мы ведь в методе String,который переопределил метод родителя должны вернуть return’ ом строку, а автор в него положил еще и переменную age типа int. Так можно делать?
@SAHEYJ
@SAHEYJ 2 жыл бұрын
Как видишь да
@DolphinArtem
@DolphinArtem 2 жыл бұрын
@@SAHEYJ а почему, потому что это всё теперь строка?
@user-jm6qk6zj5l
@user-jm6qk6zj5l 2 жыл бұрын
@@DolphinArtem Да, это преобразование типов. Чтобы лучше поразбираться, можно посмотреть результат вывода, с первого взгляда покажется странным System.out.println(1 + 1 + ""); System.out.println("" + 1 + 1 );
@tigrangegamian1509
@tigrangegamian1509 4 жыл бұрын
Есть вопрос, и он с последующи видео не стало яснее. В 03:06 ты сказал следующее: "Все классы, которые мы делаем, если мы создаем из них объекты, то все эти классы должны быть не только классы, которые мы декларируем, но они еще должны быть просто объектами" Ты мог бы ,пожалуйста, прояснить этот момент ? :)
@SAHEYJ
@SAHEYJ 2 жыл бұрын
Все классы которые ты делаешь это не только классы но ещё и объекты
@cardanonn6893
@cardanonn6893 7 жыл бұрын
а почему в методе toString для возврата не использовали переменные this.name и this.age ?
@Lexoid65
@Lexoid65 7 жыл бұрын
В смысле? Автор ссылался как раз таки на эти переменные, правда без использования ключевого слова this, которое в данном случае не нужно. Когда мы обычно используем ключевое слово this? Мы используем его тогда, когда при описании метода аргументы, которые метод будет принимать на вход, совпадают с названиями полей, к примеру, в сеттерах. Это нужно для того, чтобы мы внутри метода не присваивали значения, которые поступили в аргументы, локальным переменным. Да и вообще, если уж на то пошло, то ключевое слово this используется в контексте сеттеров, а у нас получился get-метод, который возвращает на место вызова метода значения полей name и age для каждого конкретного объекта на котором этот метод вызывается.
@cardanonn6893
@cardanonn6893 7 жыл бұрын
Да я понял, спасибо за ответ.
@Lexoid65
@Lexoid65 7 жыл бұрын
Пожалуйста!)
@user-em5rp2qs8w
@user-em5rp2qs8w 6 жыл бұрын
разве String string это обьект ? это переменная с типом String
@fixeer666
@fixeer666 6 жыл бұрын
ссылка
@georgekrovsh7326
@georgekrovsh7326 6 жыл бұрын
String - встроенный класс
@georgekrovsh7326
@georgekrovsh7326 6 жыл бұрын
Просто у него есть укороченная запись
@user-hi7kg3jd3o
@user-hi7kg3jd3o 6 жыл бұрын
все является объектом))
@bari9631
@bari9631 5 жыл бұрын
супер
@beavissooqa7585
@beavissooqa7585 7 жыл бұрын
Все классно, везде молодец, кроме того момента где сказал что функция возвращает хэш-код..
@alishevN
@alishevN 7 жыл бұрын
docs.oracle.com/javase/7/docs/api/java/lang/Object.html#toString()
@user-li8hl1vr1x
@user-li8hl1vr1x 8 жыл бұрын
Хороший урок, все понятно, но есть вопрос не много не по теме, вы тоже Intellij IDEA пользуетесь, как и я, так вот вопрос по среде, может кто знает? Проблема заключается в том, что у меня не компилируется пакет, если в любом другом пакете есть ошибка, то есть, я учу язык по книгам, там есть задание, я его начинаю делать, что-то например не получается и я решаю оставить его на потом, что бы доделать, и создаю другой покет с классами и main и делаю его правильно, и когда пытаюсь проверить что я написал, то у меня показывает, что там где-то есть покет, который не доделан и пока я его не исправлю, то новый проверить не получается, приходится комментировать, но это жутко не удобно, потому что потом сложно найти покет который надо доделать, например в Eclips такого не было, ну не могу я сделать, оставил делаю другое и все компилируется, а не доделанная программка просто в списке пакетов подчеркивается красным и я прекрасно вижу что он не доделан и его легко найти. Помогите пожалуйста.
@Chuluckan
@Chuluckan 7 жыл бұрын
Закомментируй весь код класса, который ошибку компиляции выдаёт
@user-li8hl1vr1x
@user-li8hl1vr1x 7 жыл бұрын
так и делаю, но это пипец как не удобно, про этот кривой класс можно ничайно забыть и в итоге долго искать, в эклипсе например такой проблемы нет, там ну не работает класс, оставил его - он подчеркивается красным(и видно что его надо исправить), но компиляции других отдельных классов и покетов не мешает, вот если бы так и в идее можно было, была бы вообще идеальная среда
@Chuluckan
@Chuluckan 7 жыл бұрын
Денис Коораблёв согласен
@user-bn9wc8db6s
@user-bn9wc8db6s 2 жыл бұрын
Без какой либо наглядной схемы с первого, даже второго раза понять почти не реально....... Новичкам такое со слов не заходит...
@revert1551
@revert1551 8 жыл бұрын
расскажи про многопаточность
@sergeyvoloshin1553
@sergeyvoloshin1553 4 жыл бұрын
Патоки)
@ez2387
@ez2387 8 ай бұрын
ТЕМА НЕ РАСКРЫТА ОЧЕНЬ СМУТНО ОБЪЯСНИЛ , СТАВЛЮ ОЦЕНКУ 3-
@user-ye3dv9hd6j
@user-ye3dv9hd6j 5 жыл бұрын
смотрю уроки вроде бы понятно, но как до дела доходит полнейшая каша. очень сводят с ума вызов методов и передача параметров. ну а так при большом желании разобраться во всем можно.
@sanya9740
@sanya9740 Жыл бұрын
Этот урок и правда не очень. Много путаницы и подмены понятий.
@nailtagiyev6340
@nailtagiyev6340 4 жыл бұрын
Спасибо большое. Индусы нормально объяснять не могут :(
@RedasGamesCom
@RedasGamesCom 7 жыл бұрын
Ужас, путаешь методы и обьекты, переменные и обьекты, называешь то одним словом то другим, пересмотри своё видео, это тихий ужас, как начинающий должен это понять?Я то понимаю, но ты путаешь людей.
@rawrgeek1150
@rawrgeek1150 7 жыл бұрын
Exception in thread "main" java.lang.NoSuchMethodError: Human.(Ljava/lang/String;I)V at lesson4.main(lesson4.java:5) Ошибка все написал как у тебя
@korumstar9989
@korumstar9989 5 жыл бұрын
Ваш код, будьте добры.
@gazizbakyt7190
@gazizbakyt7190 2 жыл бұрын
@@korumstar9989 спросил бы еще 2 года спустя))
@TheShamaus
@TheShamaus 4 жыл бұрын
Спасибо!
Урок 1 - Введение в Collection и List (прокачанная Java)
6:01
WHO CAN RUN FASTER?
00:23
Zhong
Рет қаралды 15 МЛН
IQ Level: 10000
00:10
Younes Zarou
Рет қаралды 13 МЛН
A teacher captured the cutest moment at the nursery #shorts
00:33
Fabiosa Stories
Рет қаралды 60 МЛН
ЯЗЫК АССЕМБЛЕРА С НУЛЯ | #1 НАЧАЛО
54:43
Java для начинающих. Урок 23: StringBuilder
15:14
Reflection. Часть 1 (прокачанная Java)
19:34
Програмания
Рет қаралды 5 М.
Stream API. Java. Максимально простым языком.
21:36
Игорь Мешалкин
Рет қаралды 29 М.
Templates in C++
17:58
The Cherno
Рет қаралды 586 М.
WHO CAN RUN FASTER?
00:23
Zhong
Рет қаралды 15 МЛН