class MergeSort {
// Merge two subarrays L and M into arr
void merge(int arr[], int p, int q, int r) {
}
// Divide the array into two subarrays, sort them and merge them
void mergeSort(int arr[], int l, int r) {
}
// Print the array
static void printArray(int arr[]) {
}
// Driver program
public static void main(String args[]) {
int arr[] = { 6, 5, 12, 10, 9, 1 };
MergeSort ob = new MergeSort();
ob.mergeSort(arr, 0, arr.length - 1);
System.out.println("Sorted array:");
printArray(arr);
}
}
我对 java 完全陌生,我从今天开始,但我确实了解 OOP 的基本概念。我的问题是为什么我们要在 void main 中创建 MergeSort 的实例(ob)?main 方法已经存在于 MergeSort 类中,它可以直接访问函数 mergeSort 吗?为什么我们不使用 MergeSort 的实例化对象来调用printArray(arr),我们可以直接调用 printArray 那么为什么不使用 mergeSort 方法。
如果你有的话,也请给我一些更好地学习java的资源。
感谢您的帮助。
它可以直接访问函数mergeSort吗?
不,它不能,因为mergeSort
没有声明为静态函数,这意味着您需要一个实例MergeSort
才能调用它。这就是你可以调用的原因printArray
,因为它是静态的,这意味着你不需要封闭类的实例来调用它。
有关静态成员和方法的更多信息:https ://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句