Итак, я только начал программировать, а что нет, и этот вопрос заставил меня срывать мои волосы. Он спрашивает: «При каких обстоятельствах, может ли статический метод вызвать метод экземпляра?» Я попытался вернуться к главам, где он упоминает оба метода и не дает никаких намеков. Может кто-то поможет? Будет оценен.Может ли статический метод вызвать метод экземпляра в Java
ответ
Чтобы вызвать метод экземпляра, вам понадобится экземпляр. Таким образом, статический метод может вызывать метод экземпляра, если он ссылается на экземпляр для его вызова.
Статические методы можно вызывать свободно, но методы экземпляров можно вызвать только в том случае, если у вас есть экземпляр класса. Статический метод должен либо получить экземпляр откуда-то, либо создать его сам.
Например, статический метод может создать экземпляр класса и затем вызвать метод экземпляра на нем:
class Foo {
static void staticMethod() {
Foo foo = new Foo();
foo.instanceMethod();
}
void instanceMethod() { }
}
Или статический метод может быть передан экземпляр его вызывающей.
class Foo {
static void staticMethod(Foo foo) {
foo.instanceMethod();
}
void instanceMethod() { }
}
Это не единственные пути, но они являются общими. Требуется, чтобы статический метод так или иначе попадал в экземпляр.
Статические методы всегда могут вызывать методы экземпляра, если у них есть ссылка на экземпляр, на который нужно вызвать метод.
Например:
public static void main(String[] args) {
String foo = "hello";
System.out.println(foo.length());
}
length()
является методом экземпляра на String
, main
статический метод, но я все еще прекрасно назвать это ... потому что foo
предоставляет ссылку.
Единственная разница между статическими методами и методами экземпляра в этом отношении заключается в том, что метод экземпляра неявно ссылается на тип, в котором объявлен метод - this
.
Если объект является параметром метода -> sure Но статический метод не может работать с нестатическими переменными класса, поскольку эти переменные являются специфичными для каждого экземпляра этого класса, а статические методы не зависят от объект и только существуют ОДИН РАЗ независимо от количества объектов класса.
Объясняет ли это это?
- 1. Может ли статический метод всегда преобразовываться в метод экземпляра?
- 2. Возможность вызвать статический метод Java в Котлин
- 3. Как вызвать статический метод в Java?
- 4. Статический метод в java может вызывать нестационарный метод
- 5. Почему статический метод не может ссылаться на метод экземпляра?
- 6. Java: определить, вызывается ли статический метод из экземпляра или статически
- 7. Android onProgressUpdate может вызвать только статический метод?
- 8. статический метод vs метод экземпляра, многопоточность, производительность
- 9. Статический метод в java
- 10. Может ли статический метод получить доступ к нестатической переменной экземпляра?
- 11. Как вызвать статический метод Java из Gradle
- 12. Как вызвать этот метод экземпляра
- 13. Как вызвать статический метод java от jruby
- 14. Статический метод в Java
- 15. Как правильно вызвать статический метод
- 16. Как статический метод может изменить переменную? (Java)
- 17. Метод вызова Java-экземпляра
- 18. Метод экземпляра Синхронизация в JAVA
- 19. доступа статический метод от экземпляра контроллера переменной
- 20. Статический метод не может получить доступ к членам экземпляра класса
- 21. Можно ли вызвать статический метод другого класса из нестатического метода без экземпляра в java?
- 22. Как вызвать статический метод из класса C# без создания экземпляра
- 23. Java статический метод не может скомпилировать
- 24. Должен ли статический метод переопределить в java?
- 25. Может ли Jbutton (ActionListener) запустить статический метод?
- 26. Статический метод Java спутанность
- 27. Java статический/нестатический метод
- 28. Java - статический метод override
- 29. Статический метод экземпляра для общего использования
- 30. Почему `_isurl` метод экземпляра, а не статический метод numpy` DataSource`?
«Когда у него есть ссылка на экземпляр, на который он хочет вызвать метод»? –