Da dies ein erneuter Angriff auf meine erste Frage ist, werde ich damit beginnen, dass ich ein Java-Neuling bin. Ich versuche auch, diese Woche eine College-Level-Java-Aufgabe zu absolvieren. Um das zu vertuschen, lass mich sagen, dass ich kaum weiß, was ich tue. Die Aufgabe in dieser Woche nach Klärung; dies ist einfach:Zugriff Array-Liste in einer anderen Klasse
Sie benötigen eine aktuelle ClassClient für dieses Projekt zu schreiben, dass:
- deklariert und initialisiert Ihre Datenarray
- erstellt ein SortingClass Objekt,
- druckt die Anordnung von Daten (unsortiert)
- sendet das Array in den Konstruktor der SortingClass (der den Inhalt des Arrays sortiert)
- druckt dasselbe Array von Daten (jetzt sortiert)
Ab jetzt arbeite ich durch sie Schritt für Schritt eingestellt. Momentan ist der einzige Fehler, den NetBeans mir gibt, dass in meiner zweiten Klasse, überall, wo Array1 verwendet wird, unterstrichen ist, und ich nehme an, es bedeutet, dass sie nicht mit der ersten Klasse verlinken, in der die Array-Liste steht. Meine erste Frage ist, ich verbinde offensichtlich nicht richtig; Was vermisse ich? Ich benutze auch die Auswahl Sortiermethode.
Meine erste Klasse namens 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);
}
}
und ich habe die zweite Klasse geschrieben
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;
}
}
Ehrfürchtig, unter Ihrem Vorschlag hat alle Unterstreichungen gelöscht. Jetzt, wenn ich versuche, NetBeans erscheint, ist dies ein Fehlerfenster: Wenn ich das Fehlerfenster schließe, finde ich, dass diese Zeile in meiner ersten Klasse blau hervorgehoben ist: public static void main (double [] Array) {. Was ich glaube, ist, dass, weil ich das double [] Array sage, dass die Klasse versucht, das zu schaffen, aber nichts benutzt es. Ich habe versucht, double [] -Array in double [] array1 zu ändern und erhalte einen Unterstreichungsfehler, der besagt, dass das variable Array 1 bereits in der Methode main definiert ist. –
Das Param der Hauptmethode muss String-Array sein. Wird normalerweise als "String [] args" deklariert. – Heri
@Joseph B Howle Ändern Sie Ihre Hauptmethode, wie Heri beschrieben hat. Fwiw die meisten IDEs generieren ein psvm für Sie mit Code-Generierung. –