为什么我们在 main 函数中启动一个对象

哈克科技
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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我们不能在main函数中定义函数?

来自分类Dev

为什么我们不能在静态内部类中定义main函数?

来自分类Java

为什么我们允许在Java中拥有最终的main方法?

来自分类Dev

为什么我们不能在main()方法之外将元素添加到ArrayList中?

来自分类Dev

为什么我们将main()函数放在python中,而不是仅将代码直接放在“ name == main”子句中?

来自分类Dev

为什么我们需要一个用户提供的const对象构造函数?

来自分类Dev

为什么我们需要一个默认的构造函数来在C ++中通过引用传递对象?

来自分类Dev

为什么我们需要在堆中创建一个对象?

来自分类Dev

为什么我们需要在React Hook中返回一个函数?

来自分类Java

什么是对象发布,为什么我们需要它?

来自分类Dev

为什么我们需要C ++中的虚函数?

来自分类Dev

为什么我们在函数中传递匿名参数?

来自分类Dev

如果我们从函数构造函数创建一个名为“ a”的对象,那么为什么“ a”不是Function的实例?

来自分类Java

为什么我们需要一个Runnable来启动线程?

来自分类Dev

在OCaml中,我们为什么有'+。','-。' 但是我们仅使用“ <”而不是“ <。”?

来自分类Dev

为什么在C ++ 11中,我们从vector :: resize中的一个函数移至2个版本?

来自分类Dev

为什么我们应该创建默认构造函数

来自分类Dev

为什么我们需要visibleCells函数(UICollectionView)

来自分类Javascript

为什么我们应该使用RxJs of()函数?

来自分类Dev

为什么我们不能立即调用函数声明?

来自分类Dev

为什么我们使用通过引用返回的函数

来自分类Dev

当我们有一个红色区域时,为什么我们需要堆栈分配?

来自分类Java

为什么我们投可比在TreeMap中

来自分类Java

为什么我们到底需要Java中的StringBuffer

来自分类Java

为什么我们需要Java中的默认方法?

来自分类Java

为什么我们需要纯<?>在Java中?

来自分类Dev

为什么我们使用 try,除了在 Python 中

来自分类Dev

为什么我们在MongoDB中需要created_at

来自分类Dev

为什么我们需要python中的协程?

Related 相关文章

  1. 1

    为什么我们不能在main函数中定义函数?

  2. 2

    为什么我们不能在静态内部类中定义main函数?

  3. 3

    为什么我们允许在Java中拥有最终的main方法?

  4. 4

    为什么我们不能在main()方法之外将元素添加到ArrayList中?

  5. 5

    为什么我们将main()函数放在python中,而不是仅将代码直接放在“ name == main”子句中?

  6. 6

    为什么我们需要一个用户提供的const对象构造函数?

  7. 7

    为什么我们需要一个默认的构造函数来在C ++中通过引用传递对象?

  8. 8

    为什么我们需要在堆中创建一个对象?

  9. 9

    为什么我们需要在React Hook中返回一个函数?

  10. 10

    什么是对象发布,为什么我们需要它?

  11. 11

    为什么我们需要C ++中的虚函数?

  12. 12

    为什么我们在函数中传递匿名参数?

  13. 13

    如果我们从函数构造函数创建一个名为“ a”的对象,那么为什么“ a”不是Function的实例?

  14. 14

    为什么我们需要一个Runnable来启动线程?

  15. 15

    在OCaml中,我们为什么有'+。','-。' 但是我们仅使用“ <”而不是“ <。”?

  16. 16

    为什么在C ++ 11中,我们从vector :: resize中的一个函数移至2个版本?

  17. 17

    为什么我们应该创建默认构造函数

  18. 18

    为什么我们需要visibleCells函数(UICollectionView)

  19. 19

    为什么我们应该使用RxJs of()函数?

  20. 20

    为什么我们不能立即调用函数声明?

  21. 21

    为什么我们使用通过引用返回的函数

  22. 22

    当我们有一个红色区域时,为什么我们需要堆栈分配?

  23. 23

    为什么我们投可比在TreeMap中

  24. 24

    为什么我们到底需要Java中的StringBuffer

  25. 25

    为什么我们需要Java中的默认方法?

  26. 26

    为什么我们需要纯<?>在Java中?

  27. 27

    为什么我们使用 try,除了在 Python 中

  28. 28

    为什么我们在MongoDB中需要created_at

  29. 29

    为什么我们需要python中的协程?

热门标签

归档