2016-03-27 7 views
1
package Exercises; 
import java.util.Scanner; 


public class ArrayPlusN { 

public static void createArray(int indeces){ 
    Scanner in = new Scanner(System.in); 
    int valueAdded, y = 0; 
    int[] arraySet = new int[indeces]; 
    for(int i = 0; i < arraySet.length; i++){ 
     System.out.printf("Enter element #%s: ",i+1); 
     arraySet[i] = in.nextInt(); 
    } 
    System.out.println("These are the elements in your array: "); 
    for(int i:arraySet){ 
     System.out.printf("%s ", i); 
    } 
    System.out.println(""); 

    System.out.print("Enter a number to add in each of your Array's element: "); 
    valueAdded = in.nextInt(); 
    System.out.println("These are the elements in your array when we added "+ valueAdded + " to each: "); 
    for(int i:arraySet){ 
     arraySet[y]=i+valueAdded; 
     System.out.printf("%s ", i+valueAdded); 
     y++; 
    } 

} 

public static void main(String[] args){ 
    Scanner in = new Scanner(System.in); 
    int indeces; 
    System.out.print("Enter how many array index/indeces you want: "); 
    indeces = in.nextInt(); 
    createArray(indeces); 

} 
} 

よく始めるには、配列内の各要素に値を追加するプログラムを作成しようとしています。ユーザーが入力したいインデックスの数を入力すると、配列と前記配列に追加される値とを含む。このコードにはエラーはありませんが、貼り付けることはできますが、私がOOPとして行うことができるかどうかを確認しています。私はこれがOOPだとは思わない、誰も助けることができる?私は、それぞれのメソッドでこれらの関数をすべて分離したいと思ったのですが、それは可能ですか?私はそれを試みたが、別のメソッドから別の変数を呼び出す方法を知ることができない。私はcreateArray、fillArrayおよびaddElementメソッドを作成して、その中のすべての関数を使って1つのcreateArrayを作成するのではなく、より多くのOOPを表示したいと考えました。配列操作のこのJavaプログラムで異なる必要なメソッドを定義する方法は?

+2

私はここでより良いサポートを得ると思います:http://codereview.stackexchange.com/ – imoteb

+0

OOP - [懸念の分離](https://en.wikipedia.org/wiki/Separation_of_concerns)。あなたはどこにでもその「スキャナー」を振ってきました。 1つの場所で計算を移動します。ユーザー入力をotherに移動します。 – Bakudan

+0

@Bakudanここにサンプルを投稿していただけますか?より多くのタイプのコーディングoopプログラムを学びたいと思っています – Kynx021

答えて

0

ここメイン()createArray()fillArray()はaddElementを定義するコード()方法です。メソッドを必要な順序で呼び出し、必要な方法でタスクを実行します。

package Exercises; 
import java.util.Scanner; 

public class ArrayPlusN { 
static int arraySet[]; 

    public void createArray(int indeces){ 
     Scanner in = new Scanner(System.in); 
     int valueAdded, y = 0; 
     arraySet = new int[indeces]; 
    } 

    public static void main(String[] args){ 
     Scanner in = new Scanner(System.in); 
     ArrayPlusN object=new ArrayPlusN(); 
     int indeces; 
     System.out.print("Enter how many array index/indeces you want: "); 
     indeces = in.nextInt(); 
     object.createArray(indeces); 
     object.fillArray(); 
     object.addElement(); 
    } 

    public void fillArray(){ 
     Scanner in=new Scanner(System.in); 
     for(int i=0;i<arraySet.length;i++){ 
      System.out.println("Enter element number "+(i+1)); 
      arraySet[i]=in.nextInt(); 
     } 
     System.out.println("The elements of your array are"); 
     for(int i:arraySet) 
     System.out.print(i+" "); 
     System.out.println(); 
    } 

    public void addElement(){ 
     Scanner in=new Scanner(System.in); 
     System.out.println("Enter value to be added to each element"); 
     int valueAdded = in.nextInt(); 
     int y=0; 
     System.out.println("These are the elements in your array when we added "+ valueAdded + " to each: "); 
     for(int i:arraySet){ 
      arraySet[y]=i+valueAdded; 
      System.out.printf("%s ", i+valueAdded); 
      y++; 
     } 
    } 
} 

arraySetアレイは、グローバル静的なものとして宣言されます。すべてのメソッドはpublic voidと宣言されています。配列はmain()メソッドで呼び出され、オブジェクトオブジェクトArrayPlusNの順に呼び出され、ジョブが完了します。それがあなたを助けることを願ってください。

+0

この男に感謝します! – Kynx021

+0

お手伝いします:) –

関連する問題