public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
int a[]=new int[100];
for(int i=0;i<a.length;i++){
a[i]=(int)(Math.random()*100);
}
sort(a);//(1)
for(int j=0;j<=a.length;j++){
System.out.println("a["+j+"] = "+a[j]);
}
}
public /*static*/ void sort(int b[]){
int temp;
//for(int i=0;i<b.length;i++)
for (int i=0;i<b.length;i++)
for(int j=0;j<b.length-i-1;j++){
if (b[i]<b[i+1]){
temp=b[i];
b[i]=b[i+1];
b[i+1]=temp;
}(1)那提示我不能对非静态方法sort()进行静态引用。
不太明白,大侠们给讲讲。
// TODO 自動生成されたメソッド・スタブ
int a[]=new int[100];
for(int i=0;i<a.length;i++){
a[i]=(int)(Math.random()*100);
}
sort(a);//(1)
for(int j=0;j<=a.length;j++){
System.out.println("a["+j+"] = "+a[j]);
}
}
public /*static*/ void sort(int b[]){
int temp;
//for(int i=0;i<b.length;i++)
for (int i=0;i<b.length;i++)
for(int j=0;j<b.length-i-1;j++){
if (b[i]<b[i+1]){
temp=b[i];
b[i]=b[i+1];
b[i+1]=temp;
}(1)那提示我不能对非静态方法sort()进行静态引用。
不太明白,大侠们给讲讲。
你这样直接的调用是不行的!
你可以尝试新建立一个类,然后将该方法放入其中,在调用的时候用:CLASS.NAME()
调用!另外一个方法就是用加:STATIC或者用你现在的类.NAME()来调用!
package test;public class Test { public static void main(String[] args) { int a[] = new int[5];
for (int i = 0; i < a.length; i++) {
a[i] = (int) (Math.random() * 100);
}
sort(a);
for (int j = 0; j < a.length; j++) {
System.out.println("a[" + j + "] = " + a[j]);
} } public static void sort(int b[]) {
int temp = 0;
for (int i = 0; i < b.length; i++) {
for (int j = i + 1; j < b.length; j++) {
if (b[i] > b[j]) {
temp = b[j];
b[j] = b[i];
b[i] = temp;
}
}
}
}
}
public class sort1{public /*static*/ void sort(int b[]){
int temp;
//for(int i=0;i<b.length;i++)
for (int i=0;i<b.length;i++)
for(int j=0;j<b.length-i-1;j++){
if (b[i]<b[i+1]){
temp=b[i];
b[i]=b[i+1];
b[i+1]=temp;
}
}
但在非静态方法里可以引用静态方法与变量
main()函数是一个 静态的方法
要直接调用其他的方法的话 那个方法必须是静态的 也就是必须用 static 修饰