0 / 0 / 0
Регистрация: 06.06.2021
Сообщений: 8

объявление ссылочной переменной

06.06.2021, 15:43. Показов 770. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Почему так компилируется

Java
1
2
3
4
5
6
7
public class Main {
   //Cat cat = new Cat();
   public static void main(String args[]) {
       Cat cat = new Cat();
       cat.setName("Васька");
       System.out.println("Кота зовут " + cat.getName());
   }
а так ошибка

Java
1
2
3
4
5
6
7
8
public class Main {
   Cat cat = new Cat();
   public static void main(String args[]) {
       //Cat cat = new Cat();
       cat.setName("Васька");
       System.out.println("Кота зовут " + cat.getName());
   }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.06.2021, 15:43
Ответы с готовыми решениями:

Чем отличается объявление переменной без и с оператором new?
Только начал изучать java и сразу не понял, чем отличаются такие объявления переменных и их дальнейшее использование public static...

Тип ссылочной переменной
у меня совершенно наивный вопрос, человека топчущегося в начале пути! Влияет ли как то "тип"ссылочной переменной суперкласса,...

Присвоение примитивного типа ссылочной переменной
В одном из курсов по Java утверждается: "примитивные значения нельзя присваивать объектным переменным". Действительно, такой код ...

14
Модератор
Эксперт Java
 Аватар для alecss131
2881 / 1387 / 411
Регистрация: 11.08.2017
Сообщений: 4,434
Записей в блоге: 2
06.06.2021, 15:48
Потому что нельзя вызывать нестатичное поле из статичного метода
0
0 / 0 / 0
Регистрация: 06.06.2021
Сообщений: 8
06.06.2021, 15:58  [ТС]
а когда вы объявили сылочную переменную в методе то в чём разница?
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
06.06.2021, 15:59
Цитата Сообщение от petr2021 Посмотреть сообщение
то в чём разница?
В области видимости.
0
0 / 0 / 0
Регистрация: 06.06.2021
Сообщений: 8
06.06.2021, 16:11  [ТС]
ведь переменная объявленная в классе распространяется и на метод и она по сути статическая для этого метода?

Добавлено через 1 минуту
причем тут видимость в этом случае?

Добавлено через 2 минуты
если вы объявили в методе то она статическая, а если в классе то нет?

Добавлено через 3 минуты
или просто нельзя объявлять в классе ссылочные переменные за пределами методов и конструкторов?

Добавлено через 3 минуты
но ведь можно объявлять ссылочную String....
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,780
06.06.2021, 17:03
Цитата Сообщение от petr2021 Посмотреть сообщение
ведь переменная объявленная в классе распространяется и на метод
на нестатический метод, а у тебя main --- статический.
0
0 / 0 / 0
Регистрация: 06.06.2021
Сообщений: 8
06.06.2021, 17:17  [ТС]
а где вы такое правило взяли? Может правильный ответ следующий - объект созданный в методе принадлежит методу и потому есть статический, а объект созданный в классе принадлежит объекту класса и потому нестатический.

Добавлено через 8 минут
хотя понятие статический относится только к понятию класса.... Вот как объект в методе может быть статическим для всего класса??? Я могу к этому объекту тогда обратится по имени класса, если он тогда статический?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
06.06.2021, 17:40
Цитата Сообщение от petr2021 Посмотреть сообщение
объект созданный в методе принадлежит методу и потому есть статический, а объект созданный в классе принадлежит объекту класса и потому нестатический
Что за ахинея?

Добавлено через 2 минуты
petr2021, ты вообще понимаешь разницу между классом и экземпляром этого класса?
0
0 / 0 / 0
Регистрация: 06.06.2021
Сообщений: 8
06.06.2021, 17:42  [ТС]
а с другой стороны время жизни объекта внутри метода равно времени выполнения метода - то тогда какой он статический?

Добавлено через 1 минуту
я то да, а вот ты объяснить не можешь ...
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
06.06.2021, 17:43
Цитата Сообщение от petr2021 Посмотреть сообщение
я то да
А вот похоже что нет

Добавлено через 38 секунд
Статическое поле принадлежит классу, а не экземпляру этого класса.
0
0 / 0 / 0
Регистрация: 06.06.2021
Сообщений: 8
06.06.2021, 17:48  [ТС]
объявление ссылочной переменной в статическом методе создаёт статическую переменную чего? Когда понятие "статическое" относится только к понятию класса.

Добавлено через 41 секунду
это элементарно понятно ....
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
06.06.2021, 17:48
Цитата Сообщение от petr2021 Посмотреть сообщение
объявление ссылочной переменной в статическом методе создаёт...
локальную для этого метода переменную.
0
0 / 0 / 0
Регистрация: 06.06.2021
Сообщений: 8
06.06.2021, 18:10  [ТС]
и ещё статическая переменная должна жить всё время работы программы. А как же объект внутри метода, он сколько живёт?

Добавлено через 1 минуту
а какая она статическая или не статическая?
0
 Аватар для Coffeini
753 / 370 / 133
Регистрация: 01.02.2020
Сообщений: 1,096
Записей в блоге: 1
06.06.2021, 18:11
Цитата Сообщение от petr2021 Посмотреть сообщение
он сколько живёт?
До тех пор, пока сборщик мусора не обратит на него внимание?
А вообще тут бы критерии "жизни" объекта неплохо написать.
0
0 / 0 / 0
Регистрация: 06.06.2021
Сообщений: 8
06.06.2021, 18:20  [ТС]
а.... на локальные переменные это не распостраняется...... понятно это просто локальная переменная))

Добавлено через 6 минут
ну вот и правильный ответ - объект внутри метода это просто локальная переменная не имеющая понятия "статическая", а если ее объявить в классе то это "нестатическое поле". Всем спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.06.2021, 18:20
Помогаю со студенческими работами здесь

Объявление переменной
public class Test { public static void main (String args) { int i1 = 01234; System.out.println(i1 ); }} вывод:668 как...

Объявление переменной. В чем ошибка?
Есть задание: " Какие варианты объявления дробной переменной верны (никакие переменные предварительно не объявлены)? 1. float a; ...

Объявление переменной внутри цикла
Смотрю курсы, и там приводиться следующий метод для инвертирования массива: public static void invert(int data) { for(int k =...

Объявление переменной для хранения безразмерного массива
Добрый день!.Работаю в среде Eclipse на java. Подскажите пожалуйста, можно ли указать переменную для хранения длины или элементов...

Изменение ссылочной переменной
Может задам глупый вопрос, но возможно ли в данном коде изменить ссылочную переменную b, не вызывая конструкторов? Используя именно ссылку,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru