Java 我的程序告诉我,我的方法对于我的类型是未定义的,这意味着什么?
我编写了一个代码,该代码应该获取一个数组并将其从最小值排序到最大值,但我得到了一个错误。这是密码Java 我的程序告诉我,我的方法对于我的类型是未定义的,这意味着什么?,java,compiler-errors,Java,Compiler Errors,我编写了一个代码,该代码应该获取一个数组并将其从最小值排序到最大值,但我得到了一个错误。这是密码 public class minHeapify{ public static void exchange(int a[],int i,int j) { int temp = a[i]; a[i] = a[j]; a[j] = temp; } public static int parent(int i) { re
public class minHeapify{
public static void exchange(int a[],int i,int j) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
public static int parent(int i) {
return (int) Math.floor((i - 1)/2);
}
public static int left(int i) {
return 2*i + 1;
}
public static int right(int i) {
return 2*(i+1);
}
public minHeapify(int a[], int start,int end) {
int l = left(start); int r = right(start);
int smallest;
if(l >= end){
smallest = (a[l] < a[start])? l: start;
}
if(r >= end){
smallest = (a[r] < a[smallest])? r: smallest;
}
if(smallest != start) {
exchange(a,start,smallest);
minHeapify(a,smallest,end);
}
}
}
public类minHeapify{
公共静态无效交换(int a[],int i,int j){
int temp=a[i];
a[i]=a[j];
a[j]=温度;
}
公共静态int父级(int i){
返回(int)数学层((i-1)/2);
}
公共静态整数左(整数i){
返回2*i+1;
}
公共静态整数权限(整数i){
返回2*(i+1);
}
公共minHeapify(int a[],int start,int end){
int l=左(开始);int r=右(开始);
int最小;
如果(l>=结束){
最小=(a[l]=结束){
最小的=(a[r]
我得到的错误是“类型minHeapify的方法minHeapify(int[],int,int)未定义”,我不确定这意味着什么。问题是该方法与类同名,并且没有返回类型。因此,从编译器的角度来看,它是一个构造函数,而不是一个普通的方法。构造函数不能以您的方法尝试的方式调用自己
重命名该方法并添加返回类型。如果该方法需要在构造时自动调用,只需从构造函数调用即可。Java认为
public minHeapify(int a[],int start,int end)
是一个构造函数,而不是一个普通的方法。您可以通过遵守类名为大写的约定来修复它:public class MinHeapify