Почему мы инициируем объект внутри основной функции

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, я начал его с сегодняшнего дня, но я знаю основы концепций ООП. мой вопрос Почему мы создаем экземпляр (ob) MergeSort в void main? main метод уже присутствует внутри класса MergeSort, он может напрямую обращаться к функции mergeSort, верно? и почему мы не используем созданный объект MergeSort для вызова printArray(обр), мы можем напрямую вызывать printArray, так почему бы не использовать метод mergeSort.

Также, пожалуйста, предложите мне несколько источников для лучшего изучения Java, если они у вас есть.

Спасибо за помощь.

Основы программирования на Java
Основы программирования на Java
Java - это высокоуровневый объектно-ориентированный язык программирования, основанный на классах.
Концепции JavaScript, которые вы должны знать как JS программист!
Концепции JavaScript, которые вы должны знать как JS программист!
JavaScript (Js) - это язык программирования, объединяющий HTML и CSS с одной из основных технологий Всемирной паутины. Более 97% веб-сайтов используют...
0
0
21
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

it can directly access the function mergeSort right ?

Нет, не может, потому что mergeSort не объявлена ​​как статическая функция, а это значит, что вам нужен экземпляр MergeSort для ее вызова. Вот почему вы можете вызывать printArray, потому что он является static, что означает, что вам не нужен экземпляр окружающего класса для его вызова.

Дополнительная информация о статических членах и методах: https://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html.

Хорошо :), Спасибо за вашу помощь и ресурс.

Hackytech 10.04.2022 07:52

Другие вопросы по теме