Как вызвать метод, который находится в другой класс того же пакета в java? Что я знаю, используя объект, мы можем вызвать метод из другого класса. Есть ли другой способ вызова метода другого класса?Как вызвать метод в java?
ответ
Если это статический метод, вы можете вызвать его, используя имя класса вместо объекта.
Если вы определяете метод как статический, вы можете использовать его без создания экземпляра класса сначала, но тогда у вас также нет доступных переменных объекта.
public class Foo {
public static String Bar() {
return "bla";
}
}
В этом случае вы могли бы назвать его Foo.Bar()
.
Методы Методы объекта или методы класса.
Методы объекта: применяется к объекту. Вы должны использовать экземпляр:
instance.method(args...);
методы Класс: он применяется по классу. У него нет неявного экземпляра. Вы должны использовать сам класс. Это больше похоже на процедурное программирование.
ClassWithStaticMethod.method(args...);
Отражение
С отражением Вы состоите API для программного доступа к методам, будь то объект или методы класса.
Методы экземпляра: methodRef.invoke(instance, args...);
методы Класс: methodRef.invoke(null, args...);
Вы можете создать статический метод или использовать другой класс в качестве члена вашего класса вызывающей функции в конструкторе.
public class aClass {
private SomeOtherClass oc;
public class aClass(SomeOtherClass otherClass) {
oc = otherClass;
}
public callOtherClassMethod() {
oc.otherClassMethod();
}
}
Создать экземпляр класса B:
B b=new B();
b.method();
или определить статический метод в классе B:
class B
{
static void staticMethod();
}
и назвать его так:
B.staticMethod();
Сделайте это в таком формате:
classmehodisin.methodname();
Например:
MyClass1.clearscreen();
Я надеюсь, что это helped.` Примечание: Метод должен быть статическим.
Из записок Фред Шварц (fredosaurus):
Есть два типа методов.
Методы экземпляра связаны с объектом и использовать переменные экземпляра этого объекта. Это значение по умолчанию.
Статических методы использовать не переменный экземпляр любого объекта класса они определены. Если вы определяете метод, чтобы быть статическими, вы получите грубое сообщение компилятора, если вы пытаетесь получить доступ к любому экземпляру переменные. Вы можете получить доступ к статическим переменным, но за исключением констант, это необычно. Статические методы обычно берут все данные из параметров и вычисляют что-то из этих параметров без ссылки на переменные. Это типично для методов, которые выполняют какой-то общий расчет. Хорошим примером этого являются многие методы полезности в предопределенном классе
Math
.
Отборочные статический вызов
Извне класса, определяющего, метод экземпляра вызывается предваряя его с объектом, который затем передается в качестве неявного параметра метода экземпляра, например, inputTF.setText("");
Статический метод вызывается путем префикса его именем класса, например Math.max(i,j);
. Любопытно, что он также может быть квалифицирован с помощью объекта, который будет игнорироваться, но будет использоваться класс объекта.
Пример
Вот типичный статический метод:
class MyUtils {
. . .
//================================================= mean
public static double mean(int[] p) {
int sum = 0; // sum of all the elements
for (int i=0; i<p.length; i++) {
sum += p[i];
}
return ((double)sum)/p.length;
}//endmethod mean
. . .
}
Только данные использует этот метод или изменяется от параметров (или локальных переменных, конечно).
Почему объявить метод static
выше mean()
метод будет работать так же хорошо, если он не был объявлен статическим, до тех пор, как она была вызвана из того же класса. Если вызывается извне класса и он не был объявлен статическим, он должен быть квалифицирован (бесполезно) с объектом. Даже если они используются в классе, есть веские причины для определения метода как статического, когда это возможно.
- Документация. Любой, кто видит, что метод статический, будет знать, как его вызвать (см. Ниже). Аналогично, любой программист, смотрящий на код, будет знать, что статический метод не может взаимодействовать с переменными экземпляра, что упрощает чтение и отладку.
- Эффективность. Компилятор обычно производит несколько более эффективный код, потому что не должен передаваться неявный объектный параметр.
Вызывать статические методы
Есть два случая.
Вызывается из того же класса
Просто напишите статическое имя метода. Например:
// Called from inside the MyUtils class
double avgAtt = mean(attendance);
Вызывается из вне класса
Если метод (статический или экземпляр) вызывается из другого класса, то должно быть дано перед именем метода указать класс, где этот метод определены. Например, методы, это объект, к которому будет обращаться метод. Для статических методов должно быть указано имя класса. Например:
// Called from outside the MyUtils class.
double avgAtt = MyUtils.mean(attendance);
Если объект задан перед ним, значение объекта будет игнорироваться и будет использоваться класс объекта.
Доступ статические переменные
Altho static
метод не может получить доступ к переменным экземпляра, он может получить доступ static
переменные. Обычным использованием статических переменных является определение «констант». Примеры из библиотеки Java: Math.PI
или Color.RED
. Они квалифицируются с именем класса, поэтому вы знаете, что они static
. Любой метод, static
или нет, может получить доступ к переменным static
. К переменным экземпляра можно обращаться только методом экземпляра.
Альтернативный вызов
Что немного странно, и не рекомендуется, является то, что объект класса может использоваться вместо имени класса для доступа к статическим методам. Это плохо, потому что создается впечатление, что используются некоторые переменные экземпляра в объекте, но это не так.
с помощью вызова метода
public class a
{
void sum(int i,int k)
{
System.out.println("THe sum of the number="+(i+k));
}
}
class b
{
public static void main(String[] args)
{
a vc=new a();
vc.sum(10 , 20);
}
}
Объявив экземпляр класса, в примере называется'vc 'и вызывая метод экземпляр. – bradbury9
- 1. Как вызвать метод java
- 2. [JAVA] Как вызвать метод «itemStateChanged»
- 3. Базовая Java: Как вызвать метод?
- 4. Вызвать метод в java netbeans
- 5. Как вызвать метод абстрактного класса в java
- 6. Как вызвать метод объекта в Java
- 7. Как вызвать java-метод в JSTL?
- 8. Как вызвать веб-метод в приложении Java?
- 9. Как вызвать статический метод в Java?
- 10. Как вызвать метод в веб-сервисе java?
- 11. Как вызвать метод перегрузки в java
- 12. Как вызвать метод Java в меню JavaFX
- 13. Как вызвать перегруженный метод в java?
- 14. Как вызвать параметризованный метод в Java?
- 15. Как вызвать метод анонимного класса в Java
- 16. Как вызвать метод Java в JSTL
- 17. как переопределить метод в java, а затем вызвать метод суперкласса
- 18. Не удается вызвать метод Java
- 19. Вызвать метод в определенное время в Java
- 20. Как вызвать метод Java с JavaScript
- 21. Java как вызвать Котлин метод расширения
- 22. Как вызвать метод Java из яваскрипта адаптера
- 23. Вызвать метод класса байткода, java
- 24. Как вызвать java-метод из JSP?
- 25. Как вызвать метод java с помощью EL?
- 26. Как вызвать метод Java с JRuby
- 27. Как вызвать метод из определенного потока Java
- 28. Как вызвать метод java для основного класса
- 29. Как вызвать статический метод Java из Gradle
- 30. Как вызвать метод Java со страницы jsp?
редактирования: ссылка больше не действительна - изменил ссылку на оракула Java Tutorial. [Статические методы Java] (http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html) – Yeonho