Erzeugung von Arrays < Java < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 10:34 Mo 06.02.2012 | Autor: | dudu93 |
Aufgabe | Entwickeln Sie ein Hauptprogramm. Legen Sie hier das Array "verzeichnis" vom Typ "Kurs" mit mindestens zwei Plätzen an. Erzeugen Sie mindestens einen Dozenten mit Titel und Namen. Erzeugen Sie dann für jeden Platz im Kurs-Array eine Veranstaltung entweder vom Typ "Vorlesung" oder vom Typ "Seminar". Rufen Sie dann die statische Methode "Ausgabe" auf und übergeben Sie das Array. |
Hallo,
ich habe eine Frage zu der oben gestellten Aufgabe.
Meine bisherige Lösung:
public class Hauptprogramm {
public static void Ausgabe(Kurs[] array)
{
for (int i=0; i<array.length; i++)
{
if (array[i] instanceof Vorlesung)
{
Vorlesung v = (Vorlesung)array[i];
System.out.println("Die Veranstaltung "+v.getTitel()+" ("+v.getTyp()+") wird gehalten von "+v.getDozent().getTitel()+" "+v.getDozent().getName());
}
if (array[i] instanceof Seminar)
{
Seminar s = (Seminar)array[i];
System.out.println("Die Veranstaltung "+s.getTitel()+" ("+s.getTyp()+") wird gehalten von "+s.getDozent().getTitel()+" "+s.getDozent().getName()+" und ist auf "+s.getTeilnehmerzahl()+" Teilnehmer begrenzt");
}
}
}
public static void main(String[] args) {
//Hier beginnt das Hauptprogramm
Kurs verzeichnis [] = new Kurs[2];
verzeichnis [0] = veranstaltung;
Kurs Seminar [1] = veranstaltung;
Dozent einDozent = new Dozent("Prof", "Schneider");
//statische methode
public static void Ausgabe(Kurs[] array){
System.out.println(Kurs[]);
}
}
}
Wo ich nicht weiterkomme, bzw. was bei mir im Programm als falsch angezeigt wird:
Kurs verzeichnis [] = new Kurs[2];
verzeichnis [0] = veranstaltung;
Kurs Seminar [1] = veranstaltung;
Dozent einDozent = new Dozent("Prof", "Schneider");
//statische methode
public static void Ausgabe(Kurs[] array){
System.out.println(Kurs[]);
}
Wie genau erzeuge ich für jeden Array-Platz eine Veranstaltung entweder vom Typ "Vorlesung" oder vom Typ "Seminar"?
Bei der statischen Methode soll wohl auch ein Fehler sein.
Über Hilfe würde ich mich sehr freuen!
LG
|
|
|
|
moin dudu,
Dein Array füllst du genauso, wie du da drunter den Professor erzeugt hast.
Also:
verzeichnis[0] = new Vorlesung(...);
verzeichnis[1] = new Seminar(...);
Die Punkte müsstest du natürlich noch durch Namen der Veranstaltung und was sonst noch übergeben werden soll ergänzen.
Die statische Methode kriegt eine Variable namens "array" übergeben.
Diese Variable hat den Typ Kurs[].
Du musst also, wenn du sie auf diese Art ausgeben möchtest,
System.out.println(array);
verwenden.
Mal an einem anderen Beispiel:
1: | public static int quadrat(int x)
| 2: | {
| 3: | return x*x
| 4: | } |
Das sollte an sich klappen.
Was du gemacht hast (an diesem Beispiel), ist:
1: | public static int quadrat(int x)
| 2: | {
| 3: | return int*int;
| 4: | } |
Du musst hier also ganz stark zwischen dem Typ der Variablen und ihrem Namen unterscheiden.
lg
Schadow
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 11:03 Mo 06.02.2012 | Autor: | dudu93 |
Kurs verzeichnis [] = new Kurs[2];
verzeichnis [0] = new Vorlesung(t, "Vorlesung", d);
verzeichnis [1] = new Seminar (t, "Vorlesung", d);
Dozent einDozent = new Dozent("Prof", "Schneider");
//statische methode
public static void Ausgabe(Kurs[] array){
System.out.println(array);
}
Danke für die schnelle Antwort!
Ich habe jetzt folgendes stehen:
______________________
Kurs verzeichnis [] = new Kurs[2];
verzeichnis [0] = new Vorlesung();
verzeichnis [1] = new Seminar ();
Dozent einDozent = new Dozent("Prof", "Schneider");
//statische methode
public static void Ausgabe(Kurs[] array){
System.out.println(array);
}
___________________________________
Was soll denn bei der Klammer bei new Vorlesung bzw. new Seminar reinkommen?
Und bei der statischen Methode habe ich wie gesagt das array da reingeschrieben. Doch es wird immer noch ein Fehler angezeigt.
LG
|
|
|
|
|
Hallo!
Im oberen teil deines Beitrags steht ja sowas wie
new Vorlesung(t, "Vorlesung", d);
und etwa so müßte es aussehen.
Allerdings kennen wir den Konstruktor (Eine Methode, die genauso heißt, wie ihre Klasse) deiner Vorlesung nicht, und können dir daher nicht sagen, was da genau erwartet wird.
Und
System.out.println(array);
kann auch nicht funktionieren, zumindest nicht so, wie du es wünschst. Die Funktion ist in der Lage, Basisdatentypen auszugeben, also Zahlen und Zeichenketten.
array ist aber ein Pointer auf ein Array vom Typ Kurs. C/C++ würde dir dann den Wert dieses Pointers (Also die Speicheradresse, ab der das Array im Speicher steht) ausgeben. Was Java macht, weiß ich grade nicht so recht.
Jedenfalls weiß der Computer nicht, wie er dieses etwas komplexere Gebilde nun auf den Bildschrim ausgeben soll.
Dafür sollte die Klasse Kurs eine eigene Methode besitzen, sowas wie
Print(){
System.out.println("Kursname: "+name);
System.out.println("Name des Dozenten: "+dozName);
}
und deine Funktion mit einer Schleife über die Vorlesungen laufen:
for(int i=0; i<array.size();i++){
array[i].Print();
}
(Ich weiß grade nicht, ob array.size korrekt ist, ich nix Java)
|
|
|
|