Добрый день! В лекциях часто это упоминается. В этой лекции, к примеру, пишется "Java-машина создает некий объект, который содержит все статические переменные и методы класса. Доступ к этому «объекту» у вас есть по имени класса.". Гугл ничего не выдает по такому запросу. Может, в оригинале это как-то иначе называется? Хочется почитать доп. источники по теме
Ada
1 уровень
Что такое статический объект класса?
Обсуждается
Комментарии (9)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
ГоффMaster
10 апреля 2022, 23:11
Ну если в двух словах, то всё в джаве - объект, и класс - это тоже объект. Что такое объект? Это некий контейнер, у которого есть имя. В контейнере будет то, что ты туда сам положишь. Когда ты создаёшь класс, то создаётся объект, ему присваивается указанное тобой имя и ты можешь включить в него (положить в контейнер) то, что можно туда положить - в зависимости от класса, к которому относится объект. В объект типа "Класс" можно положить методы, статические поля и конструкторы. Это всё фишки, которые принадлежат конкретному классу. Если ты хочешь добраться до содержимого контейнера, ты можешь найти его по имени ("Доступ к этому «объекту» у вас есть по имени класса.").
Почитать про класс "Класс" можно вот здесь https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html
+1
Ada
11 апреля 2022, 06:06
то есть когда в лекции пишут "статический объект класса" имеется в виду область памяти?
0
ГоффMaster
11 апреля 2022, 12:55
Можно и так сказать. Имеется в виду, что есть объект, который принадлежит самому классу.
Пример:
0
Ada
12 апреля 2022, 05:45
А я тут наткнулась на понятие "Статический блок инициализации". Это случайно не то, что авторы подразумевают под статическим объектом класса?
0
тимур
10 апреля 2022, 23:07
Не статический объект класса, а объект, который хранит все статические переменные и методы класса. Не знаю как объяснить, представь что есть у тебя пакет с продуктами, пакет лежит в холодильнике, но тебе нужно знать какие там продукты и что готовить собственно. И у тебя есть объект этого пакета - чек. ты в нем можешь видеть наименования и вес. Может не логичный пример, загугли что то вроде "Где в Java хранятся статические методы и статические переменные?". Но ответы будут замудренные) Поправьте если пример сбил с толку
0
тимур
10 апреля 2022, 23:08
Их еще называют кучи, но я сам не углублялся так далеко.
0
тимур
10 апреля 2022, 23:13
или вот еще глупый пример) У тебя есть авто, у нее есть сигнализация. Есть метод открыть двери и закрыть. тебе не важно как они работают. Есть объект - брелок. при нажатии (то есть вызов метода Авто.открыть) он открывает, и аналогично другие. Надеюсь не сбил еще больше с толку)
0
Ada
11 апреля 2022, 06:07
спасибо! я так понимаю, под объектом подразумевается просто область памяти, а не чо-то вроде экземпляра класса?
0
ГоффMaster
11 апреля 2022, 12:57полезный
Экземпляр класса - это тоже объект. И объекты хранятся в памяти. Объект - это логическая абстрактная сущность, память - сущность физическая и конкретная. Логические абстрактные сущности хранятся в физической памяти, каждый в своей области.
Но ты в догадке прав: экземпляр класса и статический объект класса - это разные разницы.
Вот, смотри - есть класс "Блины". Для того, что бы их печь, нужна сковородка. Сковородка нужна одна на весь класс, нам не надо для каждого блина (экземпляра класса) покупать новую сковородку. Поэтому достаточно к классу "Блины" прикрутить один статический объекта класса "Сковородка", который мы и будем юзать при создании экземпляров класса и будем уверены, когда мы начнём блины печь, что сковородка у нас гарантированно в наличии, так как она прикручена к этому классу как статический объект.
+7