Duda con clases

Sloy
30 de Agosto del 2009
Hola a todos. Veréis, tengo una duda con las clases en Java que me lleva corroyendo la cabeza toda la tarde, y acudo a ustedes para ver si consigo resolverlo.

A ver si consigo explicarme.
Tengo una clase Manivela y otra Conducto, sin herencia de ninguna otra.
Ambas tienen un método Girar(). Además tengo una clase Main que será la que cree los objetos y lleve a cabo las operaciones. Y creo los siguientes objetos a partir de estas clases:

manivelaA, manivelaB, conducto1, conducto2, conducto3

El funcionamiento que quiero darles es el siguiente:
Cuando hago manivelaA.Girar() esto tiene que ejecutar conducto1.Girar() y conducto2.Girar(); y cuando hago manivelaB.Girar() debe ejecutar conducto2.Girar() y conducto2.Girar().

Pues bien, no sé qué código debo poner en el método Girar() de Manivela para que llame a los métodos de dos objetos.

¿Alguna idea?

jdiscolo
30 de Agosto del 2009
Lo que tienes más bien es una duda de diseño. Una manivela tiene que saber qué conductos dependen de ella por lo que si siempre son los mismos (por analogía al mundo real lo es) deberías decirle en el constructor qué conductos hace girar. Los argumentos dependerán de si siempre son 2 conductos o puede variar.

//main
Manivela manivelaA = new Manivela(conducto1, conducto2);
manivelaA.girar(); //el método girar invocará al método girar de sus conductos

//manivela
public Manivela (Conducto conducto1, Conducto conducto2)
....
//o bien
public Manivela(Conducto ... conductos) //java5
....
//o bien
public Manivela(Conducto[] conductos) //java1.4
....

public void girar() {
conducto1.girar();
conducto2.girar();
}

P.D. por favor los métodos empiezan en minúscula

Sloy
30 de Agosto del 2009
Gracias, me sirvió de mucho. Ya está acabado lo que quería (aunque no funciona como esperaba, pero es por otra cosa).

Y perdón por lo de los métodos. Tenía erróneamente entendido lo contrario. Gracias por el aviso.
Un saludo.