Java中静态方法和非静态方法的调用是有区别的。
①静态方法可以直接调用,如下冒泡排序,只需将冒泡方法设为static方法即可直接调用。
1 public class BubbleSort { 2 public static void main(String[] args) { 3 int[] a = {6,5,4,3,2,1,23,14,747}; 4 /* 调用bubbleSort方法:直接调用需将bubbleSort设为静态方法 */ 5 bubbleSort(a); 6 System.out.println(Arrays.toString(a)); 7 } 8 public static void bubbleSort(int[] a) { 9 int temp; 10 for (int i = a.length - 1; i > 0; i--) { 11 for(int j = 0; j < i; j++) { 12 if(a[j] >= a[j+1]) { 13 temp = a[j+1]; 14 a[j+1] = a[j]; 15 a[j] = temp; 16 } 17 } 18 } 19 } 20 }
② 非静态方法的调用,需要使用对象来调用。还是冒泡排序示例,如下
1 public class BubbleSort { 2 public static void main(String[] args) { 3 int[] a = {6,5,4,3,2,1,23,14,747}; 4 /* 使用对象调用非静态方法时bubbleSort方法就不需要设为static */ 5 BubbleSort bs = new BubbleSort(); 6 bs.bubbleSort(a); 7 System.out.println(Arrays.toString(a)); 8 9 } 10 public void bubbleSort(int[] a) { 11 int temp; 12 for (int i = a.length - 1; i > 0; i--) { 13 for(int j = 0; j < i; j++) { 14 if(a[j] >= a[j+1]) { 15 temp = a[j+1]; 16 a[j+1] = a[j]; 17 a[j] = temp; 18 } 19 } 20 } 21 } 22 }