2017-07-30 1 views
-1

Je travaille sur un programme de manipulation d'image basique, et j'ai actuellement 3 classes: Vertex, Graph et Manipulations.Passage d'un tableau créé entre classes [Java]

public class Vertex{ 
    //Vertex functions, including tracking neighbours 
} 

public class Graph{ 

    Vertex[][] aVertices; 

    public Graph(Color[][] image){ 

     int xTop = 0; 
     for (int i = 0; i < image.length; i++){ 
      if (i > xTop){ 
       xTop = i; 
      } 
     }  

     int yTop = image.length; 

     Vertex[][] aVertices = new Vertex[xTop][yTop]; 

     for(int i = 0; i < xTop; i++){ 
      for(int j = 0; j < yTop; j++){ 
       Vertex newVertex = new Vertex(i, j, image[i][j]); 
       aVertices[i][j] = newVertex; 
      } 
     }  

     for(int i = 0; i < xTop; i++){ 
      for(int j = 0; j < yTop; j++){ 
       if(aVertices[i][j] == aVertices[i-1][j]){ 
        aVertices[i][j].neighbourize(aVertices[i-1][j]); 
       } 
       if(aVertices[i][j] == aVertices[i+1][j]){ 
        aVertices[i][j].neighbourize(aVertices[i+1][j]); 
       } 
       if(aVertices[i][j] == aVertices[i][j-1]){ 
        aVertices[i][j].neighbourize(aVertices[i][j-1]);  
       } 
       if(aVertices[i][j] == aVertices[i][j+1]){ 
        aVertices[i][j].neighbourize(aVertices[i][j+1]); 
       } 
      } 
     } 

    } 

} 

public class Manipulations{ 

    //Image manipulations that access aVertices  

} 

Comme vous pouvez le constater, lors de la création du graphique, un tableau 2D est créé qui détient des objets de sommet, qui sont ensuite assignés Statuts de voisin approprié avec des couleurs partagées. Je veux maintenant prendre toutes ces évaluations et travailler dessus à l'intérieur de Manipulations, mais je ne suis pas vraiment sûr de savoir comment les déplacer dans la portée appropriée. Quelqu'un pourrait-il me pointer dans la bonne direction?

+0

Notez que vous avez deux variables nommées 'aVertices'. Je vous suggère d'apprendre la différence entre les deux et comment ils peuvent causer des problèmes pour vous. (Notez que l'une est une ** variable de champ ** et l'autre ** une variable locale ** Ces deux termes peuvent vous aider à trouver plus d'informations.) –

+0

Comment créer des objets de chaque classe? –

Répondre

1

Je pense que vous n'avez pas la connaissance de Object Oriented Programming.

Pour votre question, vous pouvez définir cette méthode dans Graph.

public Vertex[][] getVertices() { 
    return this.aVertices; 
} 

En Manipulations, vous pouvez obtenir aVertices avec

Graph g = new Graph(image); 
Vertex[][] vertices = g.getVertices(); 
+0

Oui, je suis encore assez nouveau à la programmation orientée objet, merci pour une réponse dieu! Je l'accepterai quand c'est possible. – MMMMMCK

+1

Voici un tutoriel utile (https://docs.oracle.com/javase/tutorial/java/concepts/). – caisil