我正在从数组中读取数字,然后使用我的BubbleSort类对数组中的数字进行排序。我正在努力让我对BubbleSort课程的调用起作用。
//Attempted call from the main class to the BubbleSort method in the BubbleSort class
System.out.println(this.BubbleSort.BubbleSort());
// BubbleSort类
package main;
公共类BubbleSort {
private static void BubbleSort(int[] num) {
for (int i = 0; i < num.length; i++) {
for (int x = 1; x < num.length - i; x++) {
if (num[x - 1] > num[x]) {
int temp = num[x - 1];
num[x - 1] = num[x];
num[x] = temp;
答案 0 :(得分:0)
调用static
方法的语法是ClassName.methodName(args)
。尝试:
int[] numbers = new int[10]; // Could be different size
// Populate it somehow.
BubbleSort.BubbleSort(numbers);
您的代码使用this
,它是对当前对象的引用,其类可能没有BubbleSort
成员。
此外,目前,您的方法是private
,因此该类之外的任何内容都无法调用它。改为public
。
此外,命名方法的常规Java约定规定第一个字母应为小写,即类bubbleSort
的方法BubbleSort
。
答案 1 :(得分:0)
BubbleSort
的参数类型为int[]
,并且具有访问修饰符private
。您需要使用访问修饰符public
声明它并将int[]
作为参数传递给它。创建int[] array = new int[10]
,使用for
循环添加一些数据并调用BubbleSort(array)
。
在java代码约定中,类名应以大写字母开头,函数名不应该。请查看链接的页面:Code Conventions for the Java TM Programming Language
答案 2 :(得分:0)
所以,作为另外两个答案的组合加上指出你有另一个问题......
首先,调用static
方法的语法是ClassName.methodName()
,因此在这种情况下,您需要:
BubbleSort.BubbleSort(arguments);
其次,您的BubbleSort()
方法采用参数int[]
。你需要传递它。
第三,您的BubbleSort()
方法被声明为private
,这意味着它只能在BubbleSort
类中调用。如果您打算在BubbleSort
课程外部调用此方法,则需要制作方法public
。
最后,BubbleSort()
返回void
。 System.out.println(BubbleSort.BubbleSort(intArray))
真的没有多大意义。它将调用该方法(当您修复所有其他问题时)并假设方法正确,进行冒泡排序。它将打印一行......但该行将为空白。因此,如果您打算打印某些内容,则需要将返回类型更改为String
并返回要打印的字符串。否则,将它放在System.out.println()
内是更有意义的。
另外......请遵循标准命名约定。方法名称应以小写字母开头,并且可能不应与包含它们的类名称相同(特别是在Java
中,它将被混淆为构造函数。