由于这是对我的第一个问题的再次攻击,我将首先重申我是一个java新手。我本周也在尝试通过大学级别的java作业。告诫这一点,让我说我几乎不知道自己在做什么。在得到澄清后的本周作业;就是这样:
您需要为此项目编写一个实际的ClassClient:
- 声明并初始化您的数据数组
- 创建一个SortingClass对象,
- 打印数据数组(未排序)
- 将数组发送到SortingClass的构造函数(对数组的内容进行排序)
- 打印相同的数据数组(现已排序)
醇>
截至目前,我正在逐步完成它。目前,NetBeans给我的唯一错误是,在我的第二个类中,使用array1的地方都有下划线,我认为这意味着它们没有链接到放置数组列表的第一个类。我的第一个问题是,我显然没有正确连接;我错过了什么?我也在使用选择排序方法。
我的第一堂课名为ClientClass
public class ClientClass {
public static void main( double [] array ) {
double array1[] =
{53.5, 60.3, 96.2, 53.3, 56.4, 52.7, 76.4, 77.5, 71.0, 78.2,
65.2, 59.3, 80.5, 92.1, 85.7, 78.7, 66.2, 88.8, 50.2, 73.4};
//Create a SortingClass variable with data gievn in the array
SortingClass g = new SortingClass();
// Print array unsorted
for (double number : array1)
{
System.out.println("Number = " + number);
}
String outPutString = g.toString();
System.out.println(outPutString);
}
}
我写过第二节课
public class SortingClass {
// Selection Sort
public static void ClientClass (double [] array )
{
double temp;
int max;
// Selection Sort Method
for (int i = 0; i < array1.length - 1; i ++)
{
max = indexOfLargestElement ( array1, array1.length - i );
temp = array1[max];
array1[max] = array1[array1.length - i - 1];
array1[array1.length - i - 1] = temp;
}
}
public static int indexOfLargestElement ( double[] array1, int size)
{
int index = 0;
for ( int i = 1; i < size; i++ )
{
if ( array1[i] > array1[index] )
index = i;
}
return index;
}
}
答案 0 :(得分:1)
你的第一个问题是这个
将数组发送到SortingClass的构造函数(对数组的内容进行排序)
转换为:您无法在整个地方使用静态!
你需要像
这样的东西public class SortingClass {
private final double data[];
public SortingClass(double data[]) {
this.data = data;
}
public void sort() {
... would sort on this.data
含义:您创建该类的实例,并将引用传递给该类。
作为首发,您可能希望学习this等内容。
答案 1 :(得分:0)
public static void ClientClass (double [] array ) {}
这个方法采用了一系列名为&#34; array&#34;的双精度数。作为一个论点。当你尝试并引用&#34; array1&#34;在这个方法中,它不知道你在说什么,因为在范围中没有创建这样的变量。
如果您将此public static void ClientClass (double [] array ) {}
更改为此public static void ClientClass (double [] array1 ) {}
,则该方法将了解每次引用&#34; array1&#34;时,您所说的是您传入的数组作为方法参数。
答案 2 :(得分:0)
只要SortingClass中的方法保持静态,就足以从主类中调用它。不需要通过&#34; new&#34;:
来实例化SortingClassSortingClass.ClientClass( array1);
BTW1:良好的命名可以保护您和其他人免受头痛。例如。方法(&#34; ClientClass&#34;)首先以低位字母开头,其次,名称表明它是一个类,但它是一个执行排序的(void)方法。你最好认为方法是动词,而类/实例是名词。
BTW2:您的主要方法 - 如果您想将其作为Java应用程序启动 - 应该采用String数组而不是双数组。
答案 3 :(得分:0)
谢谢大家。最初的错误问题已经解决,我的第一堂课正在运作。对于我的第二堂课(SortingClass),它不是,我相信我需要完全重做它。我现在要开始研究它了。再次感谢。