Dog dog1 = new Dog();
dog1.name = "Max";
1. Dog - класс обьекта
2. dog1 - объект
3. new Dog() - ссылка на объект или на класс объекта?
4. .name - что это не понимаю, параметр, переменная или может это ссылка?
5. "Max" - значение переменной?
Объясните на пальцах, пожалуйста.
Антон ФМ
8 уровень
Помогите понять.
Решен
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Антон ФМ
27 декабря 2019, 07:31
Всем спасибо за развернутый ответ!
0
JustinianJudge в Mega City OneMaster
27 декабря 2019, 06:54решение
соответствует классу, интерфейсу или примитиву
Dog, String, int это все типы переменных.
Тип переменных определяет что может содержать переменная.
Тип переменной это как "ВИД ГАРАЖА", например ГаражГРУЗОВИК, это значит что это большой гараж, и в него МОЖНО поместить грузовик. А можно и легковик. или мотоцикл.
То есть тип переменной определяет что мы можем туда поместить, ведь в тип ГаражМОТОЦИКЛ, мы никак КАМАЗ не поставим, а наоборот можно. Но это будет потом.
Пока что запомни что это тип переменной. Этот тип просто указывает на тип хранилища, и ничего не знает положим мы туда что-то или нет, и что именно. Но он нас ограничит в двух вещах:
- что мы можем положить в такую переменную,
- какие методы мы можем вызвать у объекта который будет хранить эта переменная.
Но это детали.
Это "прозвище", еще никакого объекта может и не быть но мы говорим, вот будет у нас собака, мы к ней будем обращаться dog1.
Хотя при рождении ее могли звать и по другому. Имя переменной служит для того, чтобы мы как-то могли по-человечески обращаться к объекту. Не уава345в, а что-то вменяемое.
Но это не имя объекта. Это имя переменной. Помним про Гараж. В гараже могут стоять разные машины, одновременно находится только одна конечно, но камаз выедет, Зил приедет. Имя переменной действует на объект, который в данный момент находится в переменной.
Ну например зайка, рыбка. Кто там возле тебя, Таня, Света или Маша не важно. Ты называешь рыбкой, и она откликается. Или Коля Для гендерной равности так сказать.
+4
JustinianJudge в Mega City OneMaster
27 декабря 2019, 06:54полезный
3. new Dog() - возвращает ссылку на объект. Объект создается на базе класса. Если гараж конструкция универсальная. То объект вполне конкретная машина, которая может туда заехать.
= это оператор который присваивает ссылку на такой объект переменной.
То есть связывает имя "Пылесос" с конкретной машиной. И теперь когда мы пишем к примеру у тебя dog1 то программа знает, что там содержится ссылка на конкретный объект и идет по этой ссылке.
что это не понимаю, параметр, переменная или может это ссылка?
точка . это оператор, который дает доступ к методам и переменным объекта.
У класса Dog есть поле name, значит и объект созданный на его основе будет содержать поле name.
Чтобы получить доступ к этой переменной мы используем синтаксис:
имяПеременной .(точка) имя метода /переменной
да , это строка, и это значение переменной с именем name.
Это все потом выучится, ты главное пока запомни, пишешь вот так, получается вот это, а вот так, то вот это. Перечитывай лекции. Можешь почитать Head first Java (Изучаем джава) там для новичков неплохо расписано.
Пока запомни, что объекты по сути, имен в джава не имеют.
И что переменная это не объект, переменная это просто хранилище для объектов, вернее переменная хранит в себе ссылку в памяти на конкретный объект.
Тип переменной указывает Джаве, объект какого типа МОЖЕТ хранить эта переменной. Если тип совпадать не будет, будет ошибка.
+4
Дмитрий Иванов
27 декабря 2019, 06:44
3. это команда создающая объект. Возвращает она созданный объект.
4. переменная.
5. да.
+1