# Arrays erzeugen



## loese90 (15. Mai 2012)

Hallo habe folgende Aufgabe:

Schreiben Sie eine Klasse ArrayOperationen und schreiben Sie die folgenden statischen Methoden:
a) Die Methode static int[] liesZahlen(int n), die vom Benutzer nacheinander die Eingabe von n Zahlen verlangt und die eingegebenen Zahlen als Array zurückgibt.
b) Die Methode static int[] umkehren(int[] a), die ein Array zurückgibt, das die Elemente des übergegebenen Arrays a in umgekehrter Reihenfolge enthält.
c) Die Methode static boolean isPalindrom(int[] a), die entscheidet, ob die im übergebenen Array a gespeicherte Zahlenfolge ein Palindrom ist.
d) Die Methode static int[] replizieren(int[] a, int n), die das übergebene Array a n-mal hintereinander anfügt und die neue Zahlenfolge zurückgibt.
e) Die Methode static void ausgeben(int[] a), die ein Array in der Form {a0, a1, a2, …, an-1} anzeigt.
f) Schreiben Sie eine main-Methode, in der alle Methoden aufgerufen und die Ergebnisse angezeigt werden.

mein Lösungsansatz für a) ist folgender:


```
import java.util.*;
public class Aufgabe2 {
	public static void main(String[] args){
		
// Verarbeitung 
	Scanner in = new Scanner (System.in);
   
   
   // Eingabe
	int lieszahlen;
	static int[] liesZahlen(int n){
		
		int [] a= new int[n];
		
		
		for (int i=0;i<=6;i++) {
		System.out.println("Geben Sie 6 Zahlen vom Typ Integer ein");
		n= in.nextInt();
			if (i<=0) {
			System.out.println("Mindestens eine Zahl eingeben");
			}
			// Ende if-Anweisung
		} // Ende for-Schleife
   
	System.out.println(""+a[n]);
	}
	
   
    } // main
 } // class Aufgabe2
```

Im compiler sagt er mir jetz immer die folgenden 3 Errors in der Zeile static int[] liesZahlen(int n):

illegal start of expression und 2 ; fehlt.
Was muss ich da verändern?


----------



## SlaterB (15. Mai 2012)

in Zeile 11 beginnt eine neue Methode, die darf nicht innerhalb einer anderen (main) stehen


----------



## loese90 (15. Mai 2012)

also die main Zeile komplett entfernen oder wie?


----------



## SlaterB (15. Mai 2012)

das wäre hier in der Tat ein erfolgsversprechender Weg (*), allgemein klingt das aber komisch,
man fügt nicht einfach so Zeilen ein und entfernt sie, jedenfalls nicht solche

überlege dir ein Konzept, welches doch zumindest schon beinhalten sollte wie viele Methoden es gibt,
oder füge Methoden dann hinzu wenn du sie brauchst,
daraus ergeben sich korrekte Methoden von selber, nicht 'Zeile einfügen oder streichen'

(*)
edit: zusammen mit Zeile 26

@Final_Striker
im Sinne von 'geht auch ohne Unter-Methode, direkt in main'


----------



## Final_Striker (15. Mai 2012)

Nein, du musst die deine Methode außerhalb von main definieren.


```
Meine Klasse{

   main(...){
       ...
   }

   meineMethode(){
      ....
   }
}
```


----------



## Laiminator92 (15. Mai 2012)

Ich würde die Variablen immer direkt in der Klasse deklarieren und nicht erst in der Methode...


----------



## Final_Striker (15. Mai 2012)

Laiminator92 hat gesagt.:


> Ich würde die Variablen immer direkt in der Klasse deklarieren und nicht erst in der Methode...



Der Sichtbereich der Variablen sollte so kleine wie möglich gehalten werden. Variablen *immer *als Klassenvariablen zu deklarieren ist *immer *eine schlechte Idee.


----------



## ARadauer (15. Mai 2012)

"Immer" und "nie" ist meist eine schlechte Idee ;-)


----------

