gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 23:54:41 25 4
gpt4 key购买 nike

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

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

我尝试使用从 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();
}
}

最佳答案

好的,如果你想在另一个类中调用一个类的方法,你只需要将方法名称添加到该类的对象旁边,中间加一个句点,如下所示(“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();
}
}

这样您就可以在其他类中创建该数组并在新类中使用它。

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

您可以通过在 randomArr 类中创建它的对象来使用 randomArr 类中的 insertSort 方法,反之亦然。但对象只能访问它自己的类的方法。

关于java - 如何将一个类调用到另一个具有不同参数的类中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58208208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com