2011-01-17 28 views
7

Tengo dos clases. Class A y Class B.pasando la referencia de clase a otra clase

Tengo una función en Class A que me gustaría usar en class B. Estaba pensando en pasar una referencia de Class A al constructor de Class B y luego llamar a la función después de eso.

¿Eso funcionaría? ¿Puede alguien mostrarme un ejemplo?

¡Gracias de antemano!

+0

Bueno, no se puede pasar por referencia en java. Una buena lectura aquí http://www.yoda.arachsys.com/java/passing.html. – CoolBeans

+4

@CoolBeans. No puede pasar por referencia, pero puede pasar una referencia. Y eso es, de hecho, lo que sucede naturalmente cuando crees que estás pasando un objeto. –

Respuesta

18

Sí, funcionará. Y es una forma decente de hacerlo. Usted sólo tiene que pasar un ejemplo de clase A:

public class Foo { 
    public void doFoo() {..} // that's the method you want to use 
} 

public class Bar { 
    private Foo foo; 
    public Bar(Foo foo) { 
     this.foo = foo; 
    } 

    public void doSomething() { 
     foo.doFoo(); // here you are using it. 
    } 
} 

Y entonces usted puede tener:

Foo foo = new Foo(); 
Bar bar = new Bar(foo); 
bar.doSomething(); 
+0

@ prolin007 O esto también;) Su prolly es mejor. – AedonEtLIRA

+0

gracias bozho, eso es exactamente lo que estaba buscando. – prolink007

+0

gracias Bozho esto es lo que estoy buscando ...^_ ^ – Cjames

3

hacer algo como esto

class ClassA { 
    public ClassA() { // Constructor 
    ClassB b = new ClassB(this); 
} 

class ClassB { 
    public ClassB(ClassA a) {...} 
} 

La palabra clave this se refiere esencialmente al objeto (clase) está en.

Cuestiones relacionadas