2017-07-30 18 views
-1

私は基本的な画像操作プログラムで作業しています。現在、3つのクラス:頂点、グラフ、および操作を持っています。見てわかるように、グラフの作成時に、2次元アレイは、適切な隣接共有色でステータスが割り当てられている頂点オブジェクトを保持するクラス間に作成された配列を渡す[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  

} 

作成されます。私は今、この全体を1つの操作に取り込み、操作の中で作業したいと思いますが、適切な範囲内でどのように移動するのかは本当にわかりません。誰かが正しい方向に私を指すことができるだろうか?

+0

注意してaVerticesを得ることができます。私はあなたが2つの違いとあなたのためにどのように問題を引き起こすかを学ぶことをお勧めします。 (注1は**フィールド変数**であり、もう1つは**ローカル変数**です。これらの2つの用語は、より多くの情報を見つけるのに役立ちます) –

+0

どのように各クラスのオブジェクトを作成しますか? –

答えて

1

Object Oriented Programmingの知識が不足していると思います。

ご質問のある方は、Graphにそのようなメソッドを定義することができます。 Manipulations

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

、あなたはaVertices` `という名前の2つの変数を持って

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

はい、私はまだオブジェクト指向プログラミングにはかなり新しいです、神の答えに感謝します!私は可能な限りそれを受け入れます。 – MMMMMCK

+1

便利な[チュートリアル](https://docs.oracle.com/javase/tutorial/java/concepts/)です。 – caisil

関連する問題