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)

可以是您的类中的两种方法。

您的两个构造函数也可以是-

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)

第一个是构造函数,第二个是方法

于 2013-03-11T20:37:05.063 回答