Спасибо! помог чайнику( даже самовару)! всегда знал, что у JavaRush такое классное комьюнити!
@alexandersmirnov42748 жыл бұрын
А можно по подробнее про хакерский способ которым можно откомпилировать код кот IDEA не пропускает????
@05Bess10 жыл бұрын
Если действительно для JVM тип ссылки не имеет значения, то почему прямой доступ к полям объекта осуществляется именно по типу ссылки?
@antonnikolski260210 жыл бұрын
Тип ссылки проверяет только компилятор. Джава-машине все равно, какой тип у ссылки. Тем более, что у нее и типа нет, тип есть только у переменной, которой мы обозначили эту ссылку в программе. Точнее сказать, что компилятор преобразует переменную (с каким-то типом) в ссылку (без типа), и Джава-машина работает уже с этой ссылкой.
@05Bess10 жыл бұрын
Anton Nikolski То есть получается, что доступ к полям объекта определяется на этапе компиляции. Тогда тип ссылки все же используется не чисто для формальных проверок. Ведь если бы у кота и тигра были поля, то прямой доступ я бы получил именно к полю кота, а не тигра.
@antonnikolski260210 жыл бұрын
05Bess Мне кажется, вы смешиваете ссылку и объект, на который она указывает. Тип ссылки используется для формальных проверок компилятором и после компиляции никакой информации о типе ссылки не сохраняется. Тип объекта указан в самом объекте и поэтому Джава-машина всегда знает тип объекта. По-любому ссылка указывает на конкретный объект, поэтому доступ к полям другого объекта там возникнет.
@antonnikolski260210 жыл бұрын
05Bess Опечатка в конце: доступ к полям другого объекта там НЕ возникнет*
@05Bess10 жыл бұрын
Anton Nikolski так а на какие поля Джава машина будет ссылаться после компиляции, по типу объекта или по типу ссылки, то есть на поля тигра или кота из примера?