Ver Mensaje Individual
  #3 (permalink)  
Antiguo 19/03/2015, 15:39
Avatar de maiksix
maiksix
 
Fecha de Ingreso: noviembre-2014
Ubicación: Sabadell
Mensajes: 124
Antigüedad: 10 años
Puntos: 1
Respuesta: No acabo de entender las referencias a objetos

Hola!

Gracias por tu respuesta, entiendo lo que quieres decir y ya lo he aplicado.
Lo que no acabo de tener muy claro es lo siguiente
Código:
 // 2. CREATE THE INPUTS OBJECT WITH nNodes
        inputs = new Input(nNodes);
        
     // 3. CREATE ALL NODES AND FILL THE NODES LIST
        FileReader fr = new FileReader(archivo_airports_A320);
        BufferedReader br = new BufferedReader(fr);
        int k = 0;
        String linea;
while( (linea = br.readLine()) != null ){   
      	  
      	  String name=linea;
      	  		float x=0; 
                float y=0;
                Node node = new Node(name,k, x, y); Aquí crea un nodo nuevo y les pasa los valores del primer fichero. Crea tantos nodos como lineas haya.
                k++;
            }
Lo que no pasa es la relación con:

Código:
public class Input {
	/* INSTANCE FIELDS & CONSTRUCTOR */
    public Node[] nodes; // List of all nodes in the problem/sub-problem
    public Input(int n)
    {   nodes = new Node[n]; // n nodes
    }
    /* GET METHODS */
    public Node[] getNodes(){return nodes;}
    }
}
Código:
public class Node {
	/* INSTANCE FIELDS & CONSTRUCTOR */
    public int id; //id of the airport
    public String name; //name of the airport
    public float x; // node x coordinate
    public float y; // node y coordinate

    public Node(String nodeName ,int nodeID, float nodeX, float nodeY)
    {   name=nodeName;
    	id = nodeID;
        x = nodeX;
        y = nodeY;
    }
    /* GET METHODS */
    public String getname(){return name;}
    public int getid(){return id;}
    public float getX(){return x;}
    public float getY(){return y;}
}
Es decir en el primer código se llama al segundo para que inicialize un objeto con un string de tantas posiciones como lineas cuentas.
Luego mientras vuelve a recorrer el fichero guarda el valor en un objeto nodo (3r código) que se crea cada vez que hacemos un salto de linea.

No se debería decir de alguna manera que cada objeto tipo nodo lo guarde en una posición del string del tipo Input? algo como:
Código:
Node node = new Node(name,k, x, y);
Inputs.nodes[k] = node
Como sino puedes leer la información de cada nodo recuperando solamente el string de input?

Gracias! :) Un saludo!
__________________
Going hard for too long... Can't get enough