Foros del Web » Programación para mayores de 30 ;) » Java »

Ayuda con arreglos en una clase

Estas en el tema de Ayuda con arreglos en una clase en el foro de Java en Foros del Web. Hola, tengo que crear un objeto de tipo Tren a partir de los datos del usuario. Ya tengo mis clases hechas para crear un Tren, ...
  #1 (permalink)  
Antiguo 29/04/2010, 16:38
userO
Invitado
 
Mensajes: n/a
Puntos:
Ayuda con arreglos en una clase

Hola, tengo que crear un objeto de tipo Tren a partir de los datos del usuario. Ya tengo mis clases hechas para crear un Tren, Vagon, y Carga el problema es que en la clase pricipal donde todo se corre no estoy muy seguro de como construir el tren y sus elementos a partir de los datos del usuario. Agradeceria mucho su ayuda. Gracias.

Código:
public class Carga {
	
	private int peso;
	
	public Carga(int peso){
		
		this.peso=peso;
		
	}
	
	public void setPeso(int peso){
		
		this.peso=peso;
		
	}
	
	public int getPeso(){
		
		return peso;
		
	}

}

public class Vagon {
	
	private Carga[] vagon;
	
	public Vagon(int n){
		
		vagon = new Carga[n];
		
	}
	
	public void PosPeso(int pos,int peso){
		
		vagon[pos] = new Carga(peso);
		
	}
	
	public int CargaTotal(){
		
		int cTotal=0;
		
		for(int i=0;i<vagon.length;i++){
			
			cTotal+=vagon[i].getPeso();
			
		}
		
		return cTotal;
		
	}

}

public class Tren {
	
	private Vagon[] tren;
	
	public Tren(int n){
		
		tren = new Vagon[n];
		
	}
	
	public void PosValor(int pos,Vagon vagon1){
		
		tren[pos] = vagon1;
		
	}
	
	public int cTotalTren(){
		
		int cargaTotalTren=0;
		
			for(int i=0;i<tren.length;i++){
				
				cargaTotalTren=tren[i].CargaTotal();
				
			}
			
			return cargaTotalTren;
		
	}

}

//es en esta clase siguiente en donde tengo los problemas.

import javax.swing.JOptionPane;

public class Ej1 {

	public static void main(String[] args) {
		
		int i,j,k,m,pesoVagon;
		
		int numCargas=0;
		
		int numVagones=Integer.parseInt(JOptionPane.showInputDialog(null,"¿Cuantos vagones son en total?: ","CANTIDAD VAGONES",3));
		
		Tren unTren = new Tren();
		
			for(i=0;i<=numVagones;i++){
				
				 numCargas=Integer.parseInt(JOptionPane.showInputDialog(null,"¿Cuantas cargas hay en el vagon numero " + i + "?: " ,"CANTIDAD CARGAS",3));
				 
					for(j=0;j<numCargas;j++){
						
						pesoVagon=Integer.parseInt(JOptionPane.showInputDialog(null,"¿Cuanto es el peso de la carga numero " + j + " del vagon numero " + i + "?: " ,"PESO CARGA",3));
						
					}
				
			}
			

	}

}
  #2 (permalink)  
Antiguo 29/04/2010, 20:12
Avatar de FiruzzZ  
Fecha de Ingreso: diciembre-2007
Ubicación: en casa
Mensajes: 470
Antigüedad: 16 años, 4 meses
Puntos: 41
Respuesta: Ayuda con arreglos en una clase

1ro: creo q esto te va dar un resultado indeseado (un vagón de mas); debería ser i < numVagones

Tren unTren = new Tren();
for(i=0;i<=numVagones;i++){
.......

2do: están los "nombre" de los campos (objectos) que contiene tu esquema de clases
Fijate...
creas una instancia de Tren tren1 = new Tren(int CantVagones)
este tren1 TIENE UNA COLECCIONES DE VAGONES q se llama "tren", es decir tren1.tren
lo cual está mal.
Lo mismo con Vagon -> Carga

3ro: tu constructor de Tren ESTÁ MAL

public Tren(int n){
tren = new Vagon[n];
}
ya que le estás pasando el mismo parámetro "n" al contructor de Vagon .. lo cual indica q siempre vas a tener la misma cantidad de Vagones que Cargas Y ESTE A vez hace lo mismo con el contructor de Carga...

Faltan Getters y Setters para moverte entre los atributos de los objetos.. y varias cosas mas.
Te recomiendo q te re-planteés mejor tu esquema de clases, jerarquía, herencia y dependencia de classes..

Etiquetas: arreglos, clase
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:45.