1

コンストラクターが未定義であると言い続けるという点で、コードに問題があります。引数なしでコンストラクターを宣言する必要があることをすでにどこかで読んでいます。私はそれを行う方法がわかりません。

誰かが助けてくれれば、私はJavaとプログラミングが初めてです。私のコードは以下の通りです:

import java.util.*;//import library



class Input
{

    public Input (int size,int startV,int endingV)
      {

         //declarations of variables
        double difference;
        double[] array= new double[size];

        array[0]=startV;

     //calculating the difference to add on each number in the array
     difference=(endingV-startV)/size;

    for (int counter=1;counter<size;counter++) //for loop to fill the array
              {
        array[counter]=array[counter-1] + difference;           
          }


      }

    public Input enter(int size,int startV,int endingV)
      {

        //declarations of variables
        double difference;
        double[] array= new double[size];

        array[0]=startV;

             //calculating the difference to add on each number in the array
        difference=(endingV-startV)/size; 

            for (int counter=1;counter<size;counter++) //for loop to fill the array
        {
            array[counter]=array[counter-1] + difference;           
        }

            return this;
    }
}

class Show
{
    public Show (int size,double[] array)
    {

        for (int i=0;i<size;i++) //for loop to print the array
            System.out.println("This is the array " + i+ ": " + array[i]);

    }

    public Show print(int size,double[] array)
    {

        for (int i=0;i<size;i++) //for loop to print the array
        System.out.println("This is the array " + i+ ": " + array[i]);

        return this;
    }
}

public class Assignment2 
{

    public static void  main(String[] args)
    {
        //declaring variables
        int startV,endingV;
        int size=0;



        System.out.print("Give the size of the array:");//Print message on screen
        size = new Scanner(System.in).nextInt();//asking for the size of array

            double[] array= new double[size]; //creation of array

    System.out.print("Give the starting value of the array:");
    startV = new Scanner(System.in).nextInt();//asking for the starting value of array

    System.out.print("Give the ending value of the array:");
    endingV = new Scanner(System.in).nextInt();//asking for the last value of array

    //calling the functions from the other classes 

        Input enter= new Input(size,startV,endingV);
        Show print= new Show(size,array);

    }



}
4

4 に答える 4

4

あなたは近いです:

メソッドがあります:

public Method enter(int size,int startV,int endingV) {

それをコンストラクターにするためには、その署名がなければなりません

public Method (int size,int startV,int endingV) {

return this;その後、ステートメントを削除する必要があります。

コンストラクターには戻り値の型がなく、その名前はクラスの名前と同じであることを思い出してください。Method1この情報を使用して、コンストラクターを修正することもできます。


また、コードの読みやすさを向上させるために、Java の命名規則を尊重し、変数を小文字で開始してください。

于 2013-03-11T20:37:45.410 に答える
0

コンストラクターはクラスと同じ名前である必要があり、戻り型はありません。したがって、クラスMethodの場合、コンストラクターは単純に次のようになります。

public Method(int size, int startV, int endingV)
{
    // code...
}

オブジェクトのインスタンスを初期化するためのコンストラクターが存在することにも注意してください。特定の計算を行うメソッドを作成する場合は、そうする必要があります。

public int enter(int size, int startV, int endingV)
{
     int result = 0;
     // code to calculate, for example result = size + startV + endingV ...
     return result;
}
于 2013-03-11T20:38:51.270 に答える
0

クラスメソッドの場合

デフォルトのコンストラクタは次のようになります

public Method(){}

クラスMethod1の場合

デフォルトのコンストラクタは次のようになります

public Method1(){}

あなたのクラスにはコンストラクターはありません

コンストラクター名はクラス名と同じである必要があります。

enter(int size,int startV,int endingV)

print(int size,double[] array)

クラスでは2つのメソッドにすることができます。

また、2つのコンストラクターは-

public Method(int size,int startV,int endingV){ /..../}

public Method1(int size,double[] array){ /..../}
于 2013-03-11T20:40:21.330 に答える
0

を作成する必要があります。

public Method(size,startV,endingV)

いいえ

public Method enter = (size, startV, endingV)

最初はコンストラクタで、2番目はメソッドです

于 2013-03-11T20:37:05.063 に答える