Cómo llamar a un método, que está en otra clase del mismo paquete en java? Lo que sé es que, usando un objeto, podemos llamar a un método de una clase diferente. ¿Hay alguna otra manera de llamar a un método de diferente clase?¿Cómo llamar a un método en Java?
Respuesta
Si se trata de un método estático, puede llamarlo utilizando el nombre de clase en lugar de un objeto.
Si define el método como estático, puede usarlo sin crear primero la clase, pero tampoco tiene las variables de objeto disponibles para su uso.
public class Foo {
public static String Bar() {
return "bla";
}
}
En ese caso, podría llamarlo con Foo.Bar()
.
Los métodos son métodos de objeto o métodos de clase.
Métodos del objeto: se aplica sobre un objeto. Usted tiene que utilizar una instancia:
instance.method(args...);
Los métodos de clase: se aplica sobre una clase. No tiene una instancia implícita. Tienes que usar la clase en sí. Es más como programación de procedimientos.
ClassWithStaticMethod.method(args...);
Reflexión
Con la reflexión que tiene una API para acceder mediante programación métodos, ya sean objeto o métodos de clase.
Los métodos de instancia: methodRef.invoke(instance, args...);
métodos de clase: methodRef.invoke(null, args...);
puede crear un método estático o utilizar la otra clase como miembro de la clase llamada a la función en el constructor.
public class aClass {
private SomeOtherClass oc;
public class aClass(SomeOtherClass otherClass) {
oc = otherClass;
}
public callOtherClassMethod() {
oc.otherClassMethod();
}
}
Crear una instancia de la clase B:
B b=new B();
b.method();
o definir un método estático de la clase B:
class B
{
static void staticMethod();
}
y llamar así:
B.staticMethod();
Hazlo en este formato:
classmehodisin.methodname();
Por ejemplo:
MyClass1.clearscreen();
espero que este helped.` Nota: El método debe ser estática.
De las Notas de Fred Swartz (fredosaurus):
Hay dos tipos de métodos.
métodos de instancia están asociadas con un objeto y el uso de las variables de instancia de ese objeto. Este es el predeterminado.
métodos
estáticas no utilizan las variables de instancia de un objeto de la clase que se definen en. Si se define un método para ser estática, se le dará un mensaje grosero por el compilador si intenta acceder a cualquier instancia variables. Puede acceder a variables estáticas, pero a excepción de las constantes, esto es inusual. Los métodos estáticos típicamente toman todos los datos de los parámetros y calculan algo de esos parámetros, sin referencia a las variables. Esto es típico de los métodos que hacen algún tipo de cálculo genérico. Un buen ejemplo de esto son los muchos métodos de utilidad en la clase predefinida
Math
.
de clasificación una llamada estática
Desde fuera de la clase que define, un método de instancia se llama prefijándolo con un objeto, que se hace pasar entonces como un parámetro implícito para el método de instancia, por ejemplo, inputTF.setText("");
Se llama a un método estático prefijándolo con un nombre de clase, por ejemplo, Math.max(i,j);
. Curiosamente, también se puede calificar con un objeto, que se ignorará, pero se usará la clase del objeto.
Ejemplo
Aquí es un método estático típico:
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
. . .
}
Los únicos datos este método utiliza o cambios es a partir de parámetros (o variables locales, por supuesto).
Por qué declarar un método static
El mean()
método anterior funcionaría igual de bien si no estaba declarado estática, siempre y cuando se llama desde dentro de la misma clase. Si se llama desde fuera de la clase y no se declaró estático, debería estar calificado (inútilmente) con un objeto. Incluso cuando se usa dentro de la clase, hay buenas razones para definir un método como estático cuando podría serlo.
- Documentación. Cualquiera que vea que un método es estático sabrá cómo llamarlo (ver a continuación). De forma similar, cualquier programador que observe el código sabrá que un método estático no puede interactuar con las variables de instancia, lo que facilita la lectura y la depuración.
- Eficiencia. Un compilador generalmente producirá código ligeramente más eficiente porque no se debe pasar ningún parámetro de objeto implícito al método.
llamar a métodos estáticos
Hay dos casos.
Llamado desde dentro de la misma clase
Sólo tiene que escribir el nombre del método estático. Por ejemplo:
// Called from inside the MyUtils class
double avgAtt = mean(attendance);
Llamado desde fuera de la clase
Si un método (estática o instancia) se llama de otra clase, algo que se debe dar antes de que el nombre del método para especificar la clase en la que el método es definido. Por ejemplo, métodos, este es el objeto al que accederá el método. Para los métodos estáticos, se debe especificar el nombre de la clase. Por ejemplo:
// Called from outside the MyUtils class.
double avgAtt = MyUtils.mean(attendance);
Si se especifica un objeto antes de que el valor del objeto será ignorado y se utilizará la clase del objeto.
Acceso a las variables estáticas
Altho un método static
no pueden acceder a las variables de instancia, se puede acceder static
variables. Un uso común de variables estáticas es definir "constantes". Los ejemplos de la biblioteca de Java son Math.PI
o Color.RED
. Están calificados con el nombre de clase, para que sepa que son static
. Cualquier método, static
o no, puede acceder a las variables static
. A las variables de instancia solo se puede acceder mediante métodos de instancia.
llamada alternativo
¿Qué es un poco peculiar, y no se recomienda, es que un objeto de una clase puede ser utilizado en lugar del nombre de la clase para tener acceso a los métodos estáticos. Esto es malo porque crea la impresión de que se usan algunas variables de instancia en el objeto, pero este no es el caso.
Llamando al método
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);
}
}
Al declarar una instancia de la clase, en el ejemplo se denomina'vc' y se invoca el método de la instancia. – bradbury9
- 1. llamar a otro método en el principal método en Java
- 2. Llamar a un método genérico por reflejo en java
- 3. Llamar a un método de subclase en Java
- 4. ¿Cómo puedo llamar a un método en un objeto nulo?
- 5. ¿Puede un método nativo llamar a un método privado?
- 6. Llamar a cualquier método Java desde C#
- 7. Llamar a un método NSTimer
- 8. Llamar a un Método Java desde Visual Basic 6
- 9. Cómo prohibir llamar a un método C#
- 10. Llamar a un método Java estática protegido de Scala
- 11. Llamar a un método estático en C#
- 12. Android/Java: ¿Llamar a un método usando la reflexión?
- 13. Llamar a un método genérico java sobrecargada de Scala
- 14. Cómo llamar a un método en un objeto de javascript
- 15. Llamar a un método súper en PHP
- 16. Llamar a un método en Constructor
- 17. Llamar a un método anulado, superclase a llamadas reemplazadas método
- 18. Llamando a un método java en jsp
- 19. ¿Cómo puedo llamar a un método en Objective-C?
- 20. cómo llamar a un método carriles de en jQuery
- 21. Meteor cómo llamar a un método definido en Meteor.methods()?
- 22. ¿Cómo llamar a un método en una hora específica en Java?
- 23. Llamar a un método asíncrono de un método no asíncrono
- 24. Java:. Cómo llamar a super() super() en el método reemplazado (método abuelos)
- 25. Llamar a un método genérico con un método genérico
- 26. Llamar a un método de otro controlador
- 27. ¿Cómo llamar a C++ desde Java?
- 28. Cómo llamar al método de clase abstracta en java
- 29. ¿Cómo puedo llamar a un método estático de Java en clojure?
- 30. JasperReports: ¿Cómo llamar a un método de Java Bean en la plantilla de informe?
edición: enlace ya no es válida - Se ha modificado el enlace al tutorial de Java de Oracle. [Java Static Methods] (http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html) – Yeonho