Java 从没有对象的另一个类调用方法
我从数组中读取数字,然后使用BubbleSort类对数组中的数字进行排序。我正在努力让我的泡泡运动课开始工作Java 从没有对象的另一个类调用方法,java,class,object,methods,call,Java,Class,Object,Methods,Call,我从数组中读取数字,然后使用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] >
//泡泡糖类 主包装 公共类泡泡糖{
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;
private静态void BubbleSort(int[]num){
for(int i=0;inum[x]){
int temp=num[x-1];
num[x-1]=num[x];
num[x]=温度;
调用静态方法的语法是ClassName.methodName(args)
。请尝试:
int[] numbers = new int[10]; // Could be different size
// Populate it somehow.
BubbleSort.BubbleSort(numbers);
您的代码使用了this
,它是对当前对象的引用,其类可能没有BubbleSort
成员
另外,当前,您的方法是私有的
,因此该类之外的任何对象都无法调用它。请改为将其设置为公共的
此外,命名方法的常规Java约定规定第一个字母应该是小写的,即类bubbleSort
的方法bubbleSort
被声明为具有int[]类型的参数
并具有访问修饰符private
。您需要使用访问修饰符public
声明它,并将int[]
作为参数传递给它。创建一个int[]array=new int[10]
,使用for
循环添加一些数据,并调用BubbleSort(array)
在java代码约定中,类名应以大写字母开头,函数名不应以大写字母开头。请查看链接页面:因此,作为其他两个答案的组合,并指出您遇到的另一个问题
首先,调用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
中,这将被混淆为构造函数。我不断收到与以前相同的错误消息,告诉我无法从静态上下文引用非静态变量,并且无法找到变量BubbleSort。谢谢。BubbleSort方法无论如何都将是构造函数。a不管命名约定或语言定义如何,方法名与类名相同只会引起混淆。
BubbleSort.BubbleSort(arguments);