stimmts Geschrieben 29. Mai 2012 Teilen Geschrieben 29. Mai 2012 (bearbeitet) ich habe die aufgabe: Erstelle ein neues projekt mit 3 Klassen a. Person (Name, Vorname) b. Nachricht (Betreff, Inhalt) c. Versand Beim Aufruf der main()-methode aus Versand soll ein zu bestimmendes Memo von Person (Absender) an Person (Empfänger) versandt werden (Datenfelder: siehe oben). Beim Versand sollen auf dem Bildschirm angezeigt werden: -Vorname und Name von Absender und Empfänger -Betreff und Inhalt der Nachricht Mögliche Erweiterung der Aufgabe: Fasse bereits versandte Nachrichten in einer Liste zusammen. Wäre mein Ergebnis soweit richtig? Klasse 1 (Person) public class Person { // Alle Variablen (Datenfelder) public String vorname; public String name; // Konstruktur mit den beiden Parametern vorname und name public Person(String dieser_vorname, String dieser_name) { // Variablen werden initialisiert vorname = dieser_vorname; name = dieser_name; } //Methode gibPerson mit Rückgabewert String public String gibPerson() { return vorname + " " + name + "\n"; } } Klasse 2 (Memo) public class Memo { // Alle Variablen (Datenfelder) public String betreff; public String inhalt; // Konstruktur mit den beiden Parametern betreff und inhalt public Memo(String dieser_betreff, String dieser_inhalt) { // Variablen werden initialisiert betreff = dieser_betreff; inhalt = dieser_inhalt; } /** * Methode gibMemo mit Rückgabewert String */ public String gibMemo() { return "\nSUBJECT: " + betreff + "\n" + "BODY: " + "\n" + inhalt + "\n"; } } Klasse 3 (Versand) public class Versand { // Ale Variablen (Datenfelder) // absender ist eine Instanz der Klasse Person public Person absender; // empfaenger ist auch eine Instanz der Klasse Person public Person empfaenger; // Nachricht ist eine Instanz der Klasse memo public Memo nachricht; // Textausgabe ist vom Typ String (Instanz der vorgegebenen Klasse String) public String textausgabe; // Konstruktur mit sechs Parametern public Versand(String absender_vorname, String absender_name, String empfaenger_vorname, String empfaenger_name, String betreff, String inhalt) { absender = new Person(absender_vorname, absender_name); empfaenger = new Person(empfaenger_vorname, empfaenger_name); nachricht = new Memo(betreff, inhalt); // Ausgabe auf dem Bildschirm in Variable textausgabe zusammenbauen textausgabe = "\nNEUES MEMO:\n"; textausgabe += "Absender: "; textausgabe += absender.gibPerson(); textausgabe += "\nEmpfänger: "; textausgabe += empfaenger.gibPerson(); textausgabe += "\n" + nachricht.gibMemo() + "\n"; } // Methode gibtextausgabe mit Rückgabewert String -> Nur für die MemoListe! public String gibtextausgabe() { return textausgabe; } // Methode Ausgabe: // Dies ist die 'normale Ausgabe' public void Ausgabe() { System.out.println(textausgabe); } } Vielen Dank im Voraus Bearbeitet 30. Mai 2012 von flashpixx Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 30. Mai 2012 Teilen Geschrieben 30. Mai 2012 Ist das eine Frage zum Board? Verschoben -> Java Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Aliter Geschrieben 30. Mai 2012 Teilen Geschrieben 30. Mai 2012 Naja, was passiert wenn du das Programm ausführst? (Wahrscheinlich nichts, weil keine main-Methode vorhanden ist...) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
stimmts Geschrieben 30. Mai 2012 Autor Teilen Geschrieben 30. Mai 2012 (bearbeitet) @klotzkopp... wo soll ich fragen? ich versteh das forum nicht so hundertprozentig @Aliter erstmal danke ja also wenn ich das programm ausführe klappt das eigentlich aber manchmal ist ja etwas förmlich in der falschen reihenfolge oder so ich hab außerdem vergessen diese liste zu machen ich hätte da einmal eine Klasse : MemoListe : package Memo; import java.util.*; public class MemoListe { // Alle Variablen (Datenfelder) public ArrayList NachrichtenListe; public Versand nachricht; // Konstruktor public MemoListe() { // Variablen werden initialisiert NachrichtenListe = new ArrayList(); } public void fuegeNachrichthinzu(String absender_vorname, String absender_name, String empfaenger_vorname, String empfaenger_name, String betreff, String inhalt) { nachricht = new Versand(absender_vorname, absender_name, empfaenger_vorname, empfaenger_name, betreff, inhalt); NachrichtenListe.add(nachricht.gibtextausgabe()); } public void AusgabeListe() { System.out.println("\n**********************************************************\n"); System.out.println("\n" + NachrichtenListe.size() + " Nachrichten\n"); System.out.println("\n**********************************************************\n"); for (int zahl = 0; zahl < NachrichtenListe.size(); zahl++) { System.out.println(NachrichtenListe.get(zahl)); } System.out.println("\n**********************************************************\n"); } } und einmal eine Klasse wo das ganze automatisch gemacht wird.. AutoMemoListe package Memo; import java.util.*; public class AutoMemoListe { // Alle Variablen (Datenfelder) // NachrichtenListe ist vom Typ ArrayList (Instanz der improtierten Klasse ArrayList) public ArrayList NachrichtenListe; // nachricht ist eine Instanz der Klasse Versand public Versand nachricht; // Lauter Strings generieren der automatischen Nachrichten String absender_vorname, absender_name, empfaenger_vorname, empfaenger_name, betreff, inhalt; // index zum generieren der automatischen Nachrichten int index; // Konstruktor public AutoMemoListe() { // Variablen werden initialisiert NachrichtenListe = new ArrayList(); index = 1; } public void fuegeNachrichthinzu() { absender_vorname = "vornameA" + index; absender_name = "nameA" + index; empfaenger_vorname = "vornameE" + index; empfaenger_name = "nameE" + index; betreff = "betreff" + index; inhalt = "inhalt" + index; nachricht = new Versand(absender_vorname, absender_name, empfaenger_vorname, empfaenger_name, betreff, inhalt); NachrichtenListe.add(nachricht.gibtextausgabe()); index++; } public void AusgabeListe() { System.out.println("\n**********************************************************\n"); System.out.println("\n" + NachrichtenListe.size() + " Nachrichten\n"); System.out.println("\n**********************************************************\n"); for (int zahl = 0; zahl < NachrichtenListe.size(); zahl++) { System.out.println(NachrichtenListe.get(zahl)); } System.out.println("\n**********************************************************\n"); } } Bearbeitet 30. Mai 2012 von flashpixx Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 30. Mai 2012 Teilen Geschrieben 30. Mai 2012 Verwende bitte die Code Tags, die ich nachträglich eingefügt habe ! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Carl Geschrieben 30. Mai 2012 Teilen Geschrieben 30. Mai 2012 Vielleicht hier mal ein anderer Ansatz: class Person { protected String name; protected String vorname; public Person(String name, String vorname) { this.name=name;this.vorname=vorname; } @Override public String toString() { //Hat den Vorteil, dass du direkt System.out.println(myperson) machen kannst da standardmäßig die toString Methode benutzt wird return this.vorname + " " + this.nachname; //Die Klasse Nachrichst sollte Empfänger von Absender kennen class Nachricht { Person absender; Person empfaenger; String nachricht; public Nachricht(Person absender, Person empfaenger, String nachricht) {....} @Override public String toString() { return "Absender: " + absender.toString()+ "\nEmpfänger: " + empfaenger.toString+"\nNachricht:\n" + nachricht; } } //Versand Klasse public class Versand { private LinkedList<Nachricht> nachrichten = new LinkedList<Nachricht>(); private void printAll() { for( Object o : nachrichten.toArray()) { Nachricht n = (Nachricht) o; System.out.println(n); } } public static void main(String args[]) { Versand versand = new Versand(); Person p1 = new Person("Hans","Wurst"); Person p2 = new Person("Maria",Wurst"); Nachricht n1 = new Nachricht(p1,p2,"Hallo wie gehts es dir?"); Nachricht n2 = new Nachricht(p2,p1,"Danke der Nachfrage. Mir geht es gut"); versand.nachrichten.add(n1); versand.nachrichten.add(n2); versand.printAll(); } } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.