La Web del Programador: Comunidad de Programadores
 
    Pregunta:  60672 - COMO RELACIONAR DOS METODOS QUE ESTAN EN DISTINTAS CLASES?
Autor:  carlos andres gonzalez mahecha
como relacionar un metodo que yo defino dentro de una clase con otro metodo de otra clase? tengo una clase llamada bodega y dentro de ella tengo un metodo llamado cantidad_bodega, y la otra clase se llama entrada_mercancia que tiene un metodo llamado cantidad_mercancia,
¿como hago para relacionar esos dos metodos si estan en diferentes clases? lo que pasa es necesito hacer una condicion con esos dos metodos. lo estoy haciendo en hava "netbeans 6"

  Respuesta:  alex
wenas ...
... se me ocurren varias formas de relacionar los dos métodos:

En una clase1 puedes declarar como atributo (sin definirlo) un objeto de la otra clase2, pedirlo como argumento del constructor y, dentro de éste constructor definirlo (this.objeto2=objeto2), así podrás acceder a los atributos y métodos de la clase2 que necesites desde la clase1.
O sea, algo asi:

//atributos
Clase2 objeto2; //(sólo se declara)

//constructor
Clase1( Clase2 objeto2){
this.objeto2=objeto2; //asi queda definido objeto2
//weno, en realidad todo esto es una referencia al objeto2
}

metodo1(){
objeto2.condicion = true;
}

Otra forma es que uno de los métodos pida como argumento un objeto de la otra clase o los atributos que necesites de la otra clase.

metodo1(Clase2 objeto2){
objeto2.condicion = true;
}

Otra forma es crear un objeto de cada clase en una tercera clase que tenga algún método que controle lo que pretendas hacer a través de objeto1 y objeto2.

//atributos
Clase1 objeto1; //(sólo se declara)
Clase2 objeto2;
//constructor
Clase3( Clase2 objeto2){
this.objeto1=objeto1;
this.objeto2=objeto2;
}

metodo3(){
objeto1.x = this.suma3();
objeto2.condicion = true;
}

suma3(){
...
}

Todo esto suponiendo que las clases estén en el mismo package, sino habría que importar.

Dependiendo de lo que necesites hacer tendrás que ver tú mismo cuál es la mejor opción.

Un saludo.