2014-01-28 2 views
-6

В чем причина, почему статический метод конкретного класса не может ссылаться на один и тот же экземпляр класса (объекта) И экземпляр другого класса (объекта)?Почему статический метод не может ссылаться на метод экземпляра?

Я прочитал это в учебнике.

+0

Поскольку статические методы не привязаны к экземпляру объекта. Как Java знает, какой объект использовать? Статические методы можно вызвать без создания каких-либо экземпляров. – kwatford

+0

Статические методы можно вызывать без создания экземпляра объекта этого класса. Они могут ссылаться на метод экземпляра, если экземпляр объекта передан статическому методу. –

ответ

1

Потому что static может использоваться без каких-либо экземпляров класса. Например, когда вы используете Integer.parseInt(...), вы вызываете его, используя имя класса Integer, вы никогда не создавали экземпляр.

System.out.println(Integer.parseInt("123")); // Called with the name of the class 

Итак, что, если вы можете ссылаться на экземпляр внутри этого метода static? Если пользователь вызывает его с именем класса (без создания какого-либо экземпляра), метод не будет иметь никакого экземпляра для ссылки.

Примечание, что вы также можете вызвать метод static с экземпляром, но рекомендуемый способ вызвать его с именем класса, чтобы подчеркнуть, что это static метод:

Integer i = 0; 
System.out.println(i.parseInt("123")); // Can also be called with an instance, but not recommended 
0

Для какой экземпляр будет static method (который не связан с с любым экземпляром), ссылаясь?

none/unecableable; это не имеет никакого смысла, так как может быть 0..n экземпляров.

0

Методы экземпляров могут быть доступны только при создании объекта этого конкретного класса. Статические методы могут обращаться к методам экземпляров только при создании экземпляра конкретного класса.

Смежные вопросы