如何将一个具有不同参数的类调用到另一个类中?

时间:2019-10-02 19:31:00

标签: java arrays sorting random insertion-sort

我不确定如何调用代码,使其与我的随机数匹配。我的随机器基本上在数组中生成许多随机整数,并像这样打印它们。

编辑:如果不清楚,我想在插入排序类的两个方法中调用随机化器!

我尝试使用从geeks4geeks获取的插入排序实现。它们都具有参数int [arr]。

这是我的代码

public class randomArr {

    public void randomizer(){
        Scanner sc = new Scanner(System.in);
        Random r = new Random();

        System.out.println("Please enter the amount of integers you want in your array: ");
        int n = sc.nextInt();
        // Create array of 1000 ints
        int[] intArr = new int[n];

// Fill array with random ints
        for ( int i = 0; i < intArr.length; i++) {
            intArr[i] = r.nextInt(100);
            System.out.print(intArr[i] + ", ");
        }

    }

}

这基本上是我要发生的事情:

您可以看到即时消息使用我的“ intArr”调用了排序和打印数组。如何使用给定的方法调用我的方法?

我已经注释掉了使用方法创建的对象,但是如果我将其留在里面,我将如何使用该对象来调用sort()和printarray()?

public class insertionSort {
    public static void main(String[] args){
        //randomArr arry = new randomArr(); \\the object of my method
        //arry.randomizer());

        Scanner sc = new Scanner(System.in);
        Random r = new Random();

        System.out.println("Please enter the amount of integers you want in your array: ");
        int n = sc.nextInt();
        // Create array of 1000 ints
        int[] intArr = new int[n];

// Fill array with random ints
        for ( int i = 0; i < intArr.length; i++) {
            intArr[i] = r.nextInt(100);
            System.out.print(intArr[i] + ", ");
        }
        sort(intArr);
        printArray(intArr);
    }


        public static void sort(int arr[]){
            int n = arr.length;
            for (int i = 1; i < n; ++i) {
                int key = arr[i];
                int j = i - 1;

            /* Move elements of arr[0..i-1], that are
               greater than key, to one position ahead
               of their current position */
                while (j >= 0 && arr[j] > key) {
                    arr[j + 1] = arr[j];
                    j = j - 1;
                }
                arr[j + 1] = key;
            }
        }
        static void printArray(int arr[]){
            int n = arr.length;
            for (int i = 0; i < n; ++i)
                System.out.print(arr[i] + ", ");

            System.out.println();
        }
}

2 个答案:

答案 0 :(得分:0)

好吧,如果您想将一个类的方法调用到另一个类中,则只需在该类的对象旁边添加方法名称,并在其间添加一个句点就可以调用它(例如“ object.method()” )。因此,您将要做的是:

import java.util.*;
class randomArr {

    public int[] randomizer()
    {
        Scanner sc = new Scanner(System.in);
        Random r = new Random();

        System.out.println("Please enter the amount of integers you want in your array: ");
        int n = sc.nextInt();
        // Create array of 1000 ints
        int[] intArr = new int[n];

// Fill array with random ints
        for ( int i = 0; i < intArr.length; i++) {
            intArr[i] = r.nextInt(100);
            System.out.print(intArr[i] + ", ");
        }

        return intArr;

    }

}

class Stack
{
    public static void main(String[] args) 
    {
        randomArr rArr = new randomArr();
        int[] intArr = rArr.randomizer();
    }
}

这样,您可以在另一个类中创建该数组并在新类中使用它。

如果要调用insertSort类的方法,由于它们是静态的,因此可以在没有对象的情况下调用它们。您不能使用另一个类的对象来调用不​​属于该对象类的方法。

您可以在randomArr类中创建插入对象,然后在randomArr类中使用insertSort的方法,反之亦然。但是对象只能访问其自己类的方法。

答案 1 :(得分:0)

要在另一个类中调用方法,可以创建该类的对象,然后使用对象引用可以从该类中调用可用的方法。

insertionSort object = new insertionSort();
object.sort(intArr);
object.printArray(intArr);

由于您定义sort和printArry是静态方法,因此您可以直接在main方法中调用它们。