# Array soll an Konstruktor übergeben werden..Hilfe!



## brodolsky (5. Jan 2013)

Hallo Leute,

ich habe ein Problem, und zwar komm ich bei folgender Aufgabe einfach nicht weiter:



> 1. Erstellen Sie eine Klasse, die als Eigenschaften zwei Arrays enthält, eins für Zahlen (beliebiger Datentyp) und eins für einzelne Buchstaben (char).
> Die Zahlen und Buchstaben werden in der nächsten Übungsaufgabe vom Benutzer am Bildschirm eingegeben, für diese Aufgabe übergeben Sie sie mit dem Konstruktor.
> 
> 2. Errechnen Sie die Summe aller Elemente der einzelnen Zahlenreihen und geben Sie das Ergebnis und alle Zwischenergebnisse am Bildschirm aus.
> ...




Mein Ansatz:


```
public class Reihungen{


			int [] zahlen = new int[10];
			char [] buchstaben = new char[10];
			
			
			public Reihungen(){
			
		}			
		
	public static void main(String args[]) {
	
		
		
	}		

	
}
```


Hat irgendjemand ewine Ahnung wie ich diese Aufgabe lösen kann ??

danke schonmal im vorraus

lg


----------



## pro2 (5. Jan 2013)

Vermutlich einfach nur:


```
public class Test
{
    int zahlen[];
    int zeichen[];

    public Test(int[] zahlen, int[] zeichen)
    {
        this.zahlen = zahlen;
        this.zeichen = zeichen;
    }
}
```


----------



## Devil0s (5. Jan 2013)

Du meinst das bestimmt so:


```
public class Test
{
    int[] zahlen;
    int[] zeichen;

    public Test(int[] zahlen, int[] zeichen)
    {
        this.zahlen = zahlen;
        this.zeichen = zeichen;
    }
}
```


----------



## brodolsky (5. Jan 2013)

super danke! aber statt int für zeichen soll ich da glaub char nehmen....und wie krieg ich das nun hin, dass die werte am bildschirm eingegeben werden können ??

danke

lg


----------



## haui95 (5. Jan 2013)

Entweder mit einer GUI oder einem Scanner bzw. InputStreamReader

Scanner (Java Platform SE 6)


----------



## Mujahiddin (5. Jan 2013)

Für Ausgaben am Bildschirm eignen sich die Methoden 
	
	
	
	





```
JOptionPane.showMessageDialog()
```
 und ähnliche Methoden der Klasse. Für Eingabe z.B. 
	
	
	
	





```
JOptionPane.showInputDialog();
```
 - liefert Eingabe als String zurück.

Falls du etwas auf die Konsole ausgeben willst, wäre 
	
	
	
	





```
System.out.println()
```
 zu empfehlen.

Ein char Array kannst du genau so übergeben, du musst 
	
	
	
	





```
int[]
```
 einfach nur mit 
	
	
	
	





```
char[]
```
 ersetzen.

Um Arrays in String umzuwandeln, empfiehlt sich die Methode 
	
	
	
	





```
Arrays.toString();
```


----------



## pro2 (5. Jan 2013)

Devil0s hat gesagt.:


> Du meinst das bestimmt so:
> 
> 
> ```
> ...



Dir ist wohl bewusst, dass das null Unterschied macht, oder?



brodolsky hat gesagt.:


> super danke! aber statt int für zeichen soll ich da glaub char nehmen....und wie krieg ich das nun hin, dass die werte am bildschirm eingegeben werden können ??
> 
> danke
> 
> lg



Jap, natürlich, einfach nicht drauf geachtet in dem Moment, aber das kannst du ja leicht anpassen. 



> und wie krieg ich das nun hin, dass die werte am bildschirm eingegeben werden können ??



Das ist bei der Aufgabenstellung doch noch gar nicht gefordert, oder?


----------



## brodolsky (5. Jan 2013)

danke für die antworten;

@pro2

in der aufgabe steht doch:


> Die Zahlen und Buchstaben werden in der nächsten Übungsaufgabe vom Benutzer am Bildschirm eingegeben, für diese Aufgabe übergeben Sie sie mit dem Konstruktor.



oder ist damit gar nicht die eingabe in der kommandozeile gemeint ? hast du vllt einen vorschlag wie ich die aufgabe weiter angehen kann ? ich versteh irgendwie nicht was da denn berechnet werden soll ohne konkrete werte :/

besten dank


----------



## pro2 (5. Jan 2013)

Ich finde die Aufgabenstellung ohnehin mehr als verwirrend gestellt. 
Ist jetzt mit der _nächsten_ Aufgabe die 2. gemeint, oder die nächste Aufgabe, die ihr bearbeiten werdet? Das war nämlich mein ursprünglicher Gedanke. Ansonsten würde ich einfach für jeden Teilabschnitt eine kleine Methode schreiben, oder habt ihr das Thema noch nicht behandelt? Und in der Main einmal über die Konsole Zahlen einlesen, dann entsprechend ein Objekt der Klasse erstellen und alle gewünschten Methoden darauf ausführen.


----------



## brodolsky (5. Jan 2013)

hmmm so sicher bin ich mir da auch nicht. aber ich müsste die aufgabe ja trotzdem irgendwie weiter bearbeiten können ? mit methoden komm ich klar. aber wie kann ich denn da jatzt irgendwas berechnen ohne konkrete werte ?

danke


----------



## brodolsky (5. Jan 2013)

macht das so einen sinn ?

```
import java.util.Scanner;


public class Reihungen{


    int zahlen[];
    char zeichen[];
 
    public Reihungen(int[] zahlen, char[] zeichen)
    {
        this.zahlen = zahlen;
        this.zeichen = zeichen;
	
 
	/*for( int index = 0; index < zahlen.length; index++){

				zahlen[index] = index*3;
				}
	
	
			for( int index = 0; index < zahlen.length; index++){
					System.out.println(zahlen[index])
	}				
					
					
	public static void main(String args[int[] zahlen, char[] zeichen]) {
	
		Scanner tastatur = new Scanner(System.in);*/
	
			

 
}
```


----------



## Kevin94 (5. Jan 2013)

Ich hoffe mal das ist dir beim Kopieren durcheinander gekommen, wenn es ursprünglich so gedacht war, dann macht es Sinn. Mal davon abgesehen, dass die letzte Klammer gefehlt hat:

```
public static void main(String args[int[] zahlen, char[] zeichen]) {
        Scanner tastatur = new Scanner(System.in);

        for( int index = 0; index < zahlen.length; index++){
                zahlen[index] = index*3;
         }
         for( int index = 0; index < zahlen.length; index++){
                    System.out.println(zahlen[index])
        }
    }
```

Dir ist aber hoffentlich klar, das du die beiden Schleifen auch genausgut in einer schreiben könntest? Das du dabei noch nichts von der Tastatur einliest, versteht sich ja von selbst.

```
public static void main(String args[int[] zahlen, char[] zeichen]) {
        Scanner tastatur = new Scanner(System.in);

        for( int index = 0; index < zahlen.length; index++){
                zahlen[index] = index*3;
                System.out.println(zahlen[index])
        }
    }
```

[EDIT]Moment mal, wie du das auskommentiert hast ist etwas verwirrend. Gehörte die for-Schleife in den Konstruktor? Da macht Sie eigentlich keinen Sinn, zumindest dier erste (Die sollte in die main, da muss man dann allerdings das Array noch anlegen, was mir gerade erst auffällt, genauso wie die fehlende schließend Klammer des Konstruktors). Die zweite macht so dagegen schon Sinn, um sich mal den Inhalt zu debugging-Zwecken auszugeben.[/EDIT]


----------



## brodolsky (5. Jan 2013)

okay danke dir und wie krieg ich das nun hin, dass ich was von der tastatur einlesen kann ??
achja dass ich den index hier mit 3 multipliziere hab ich nur mal gemacht um was auszuprobieren aber beim kompilieren zeigt es mir jede menge errors an:/


----------



## brodolsky (5. Jan 2013)

wo liegt da der fehler ?


```
import java.util.Scanner;


public class Reihungen{


    int zahlen[];
    char zeichen[];
 
    public Reihungen(int[] zahlen, char[] zeichen)
    {
        this.zahlen = zahlen;
        this.zeichen = zeichen;
}
 
	 public static void main(String args[int[] zahlen, char[] zeichen]) {
		
        Scanner tastatur = new Scanner(System.in);
 
        for( int index = 0; index < zahlen.length; index++){
                zahlen[index] = index;
         }
         for( int index = 0; index < zahlen.length; index++){
                    System.out.println(zahlen[index])
        }
    }

 
}
```


----------



## Kevin94 (5. Jan 2013)

Das Beispiel, so wie du es dir vermutlich gedacht hast mal kompilierbar und gleich mit dem einlesen eines Worts:

```
import java.util.Scanner;
public class Reihungen{
 
    int zahlen[];
    char zeichen[];
 
    public Reihungen(int[] zahlen, char[] zeichen)
    {
        this.zahlen = zahlen;
        this.zeichen = zeichen;
            for( int index = 0; index < zahlen.length; index++){
                    System.out.println(zahlen[index]);
        }
    }
    
 
    public static void main(String args[int[] zahlen, char[] zeichen]) {
        int[] zahlen =new int[5];
        for( int index = 0; index < zahlen.length; index++){ 
                zahlen[index] = index*3;
        }
        Scanner tastatur = new Scanner(System.in);
        String word=tastur.next(); //liest ein Wort, alternativ auch nextLine für eine Zeile
        
        new Reihungen(zahlen,word.toCharArray()); //wandelt einen String in ein char Array um
    }               
}
```


----------



## brodolsky (5. Jan 2013)

danke dir! aber das lässt sich auch nicht kompilieren:/ hmm


----------



## TimoNeon (6. Jan 2013)

Das

```
public static void main(String args[int[] zahlen, char[] zeichen]) {
```
Sollte einfach nur

```
public static void main(String[] args) {
```
Heißen


----------

