构造函数未定义

时间:2013-03-11 20:34:32

标签: java

我的代码有问题,因为它一直说构造函数是未定义的。我已经读过一些我需要声明没有参数的构造函数的地方。我只是不知道该怎么做。

如果有人可以提供帮助,我是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 个答案:

答案 0 :(得分:4)

你关闭了:

你有一个方法:

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

要使它成为构造函数,它的签名必须是

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

然后您必须删除return this;语句。

请记住,构造函数没有返回类型,并且它们的名称与类的名称相同。有了这些信息,您还可以修复Method1构造函数。


另外,请尊重Java命名约定并让变量以小写字母开头,以提高代码的可读性。

答案 1 :(得分:0)

您需要创建一个

public Method(size,startV,endingV)

public Method enter = (size, startV, endingV)

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

答案 2 :(得分: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;
}

答案 3 :(得分:0)

类Method

默认构造函数为

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){ /..../}