我的代码有问题,因为它一直说构造函数是未定义的。我已经读过一些我需要声明没有参数的构造函数的地方。我只是不知道该怎么做。
如果有人可以提供帮助,我是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);
}
}
答案 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){ /..../}