静态怎么调用非静态,一个是把public改成static,另一个要怎么改啊

package Java_practice;

public class o1 {
public void sort(int[] arr) {
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}

}

public  static void main (String[] args) {
    int[] arr = {1, 56, 23, 98, 45};
    sort(arr);
    System.out.println("冒泡排序后的数组为:");
    for (int i = 0; i < arr.length; i++) {
        System.out.print(arr[i] + " ");
    }
}

}

创建一个非静态方法所在的类的对象,然后用这个对象调用这个方法就可以了。
修改如下:


public class o1 {
    
    public o1() {}
    
    public void sort(int[] arr) {
    for (int i = 0; i < arr.length; i++) {
    for (int j = 0; j < arr.length - 1; j++) {
    if (arr[j] > arr[j + 1]) {
    int temp = arr[j];
    arr[j] = arr[j + 1];
    arr[j + 1] = temp;
    }
    }
    }
    
    }
 
    public  static void main (String[] args) {
        int[] arr = {1, 56, 23, 98, 45};
        o1 o = new o1();  // 创建一个非静态方法所在的类的对象,然后用这个对象调用非静态方法就可以了
        o.sort(arr);
        System.out.println("冒泡排序后的数组为:");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
    }
}

img

改为static即可,static是在类加载时的方法,属于一个类

静态是不能调用非静态方法的,静态只能调用静态方法,有static修饰就是静态方法,所以你把上面的方法也改成static方法就可以调用了