Möchte ein neues Objekt erzeugen mit Wert von anderem Objekt

Status
Nicht offen für weitere Antworten.
T

tomGast

Gast
Hallo leute, ich komm bei einer Java Übung nicht mehr weiter. Genau genommen weiss ich nicht wie ich ein neues Objekt erzeuge dass als Parameter den Wert von den vorherig erzeugtem Objekt übernimmt.
Bitte helft mir.

Ich hab mal die Aufgabe und meinen Quellcode angehängt.

Schönen Tag noch


Aufgabe 4

Fügen Sie der Klasse HalloObjekt einen weiteren Konstruktor hinzu, der ein HalloObjekt-Objekt als Parameter nimmt:

HalloObjekt( HalloObjekt einHalloObjekt )
{
// initialisieren Sie die Variable mitteilung des neuen Objekts
// mit der Variablen mitteilung des einHalloObjekt-Parameters
}

Der zusätzliche Konstruktor wird den Parameter (selbstverständlich) nicht ändern, er wird lediglich dessen Daten verwenden. Verwenden Sie die "Punkt-Notation", um auf den String innerhalb des Parameters zu verweisen.
Dieses Programm ist (ebenfalls) interessanter als es aussieht. Wenn Sie es in der nahe liegenden Weise schreiben, wird der zusätzliche Konstruktor die Variable mitteilung mit der Referenz desselben Stringobjekts initialisieren, auf die das Parameter-Objekt verweist. Das ist OK für dieses Programm, aber manchmal ist es nicht das, was Sie möchten.
Verändern Sie den vorhin hinzugefügten Konstruktor, so dass er für das neue HalloObjekt, das er konstruiert, ein neues Stringobjekt erstellt. Verwenden Sie dafür den Konstruktor der Klasse String der wie folgt aussieht:
public String( String str ) ;
(Weitere Informationen dazu finden Sie in der Java Dokumentation der Klasse String

HIER GEHTS LOS *G*

Code:
import java.io.*;
 
 
class HalloObjekt
{
 
   String  mitteilung;
 
  HalloObjekt(String mit)
  {
       mitteilung = mit;
  }
 
          HalloObjekt( HalloObjekt einObjekt)
          {
 
 
 
          }
 
 
 
 
  void sprich() throws IOException
  {
 
       System.out.println("\n" + mitteilung);
  }
 
}
 
class HalloTester 
{
  public static void main ( String[] args ) throws IOException
  {
 
       BufferedReader stdin = new BufferedReader(
            new InputStreamReader( System.in ) );
 
             System.out.println("Geben Sie den Text ein:")  ;
             String mit = stdin.readLine();  
 
             HalloObjekt einObjekt = new HalloObjekt(mit);
             einObjekt.sprich();
             HalloObjekt einTestObjekt = new HalloObjekt(einObjekt);
             einTestObjekt.sprich();
 
 
 
 
  }
}
 
G

Gast

Gast
Wie wär's mit

this.mitteilung = new String( einObjekt.mitteilung );

Ist doch Wort für Strich, Punkt für Genau, Detailliert und sonstwie beschrieben...
 
G

Gast

Gast
Weils in der Angabe so erwähnt wird. Strings sind zwar immutable, aber hier war direkt gefragt, nicht die Referenz einfach zuzuweisen...
 
G

Guest

Gast
Ufff WOW seit ihr schnell.

Danke. Werds nu ausprobiern.
@ Gast Verzeih mir meine unwissenheit. ;)
 
M

maki

Gast
Wie wär's mit

this.mitteilung = new String( einObjekt.mitteilung );

Ist doch Wort für Strich, Punkt für Genau, Detailliert und sonstwie beschrieben...
Den String Copy Konstruktor aufrufen sollte man immer vermeiden, Strings sind doch immutable, da kann man sich ein neues Objekt sparen!

Besser wäre:
Code:
          HalloObjekt( HalloObjekt einObjekt)
          {
               this.mitteilung= einObjekt.mitteilung;
          }
Ach ja, das nennt sich übrigens Copy-Konstructor, wenn der Konstruktor einer Klasse als einzigen Parameter ein Objekt derselben Klasse entgegennimmt.

Wenn der Parameter nicht immutable oder primitiv ist, muss ein neues Objekt erzeugt werden, sonst ist die integrität nicht mehr gewährleistet. Ein Beispiel wäre die Date Klasse.
 

tfa

Top Contributor
Hm, das steht da wirklich. Trotzdem ist das ein ziemlicher Blödsinn. Warum bringen die den Leuten das bei?
Ein sehr unglückliches Beispiel.
 
G

Gast

Gast
Angabe: "Verwenden Sie dafür den Konstruktor der Klasse String"

Also echt he. An die Angabe sollte man sich bei den meisten Professoren halten. Dass es auch ohne geht, ist klar. Aber bei einer Prüfung sollte man schon auf Angaben "eingehen"...
 
M

maki

Gast
Angabe: "Verwenden Sie dafür den Konstruktor der Klasse String"

Also echt he. An die Angabe sollte man sich bei den meisten Professoren halten. Dass es auch ohne geht, ist klar. Aber bei einer Prüfung sollte man schon auf Angaben "eingehen"...
Das Problem ist doch, das diese Vorgabe schlicht falsch ist.
Der Prof. hat anscheinend nicht genügend Ahnung von Java, trotzdem macht er die Vorgaben und verlangt das die Studenten diesen falschen Weg einschlagen...

@ tomGast, was genau studierst du? Wirtshausinformatik? Einem echten Informatik Prof dürfte so was nicht passieren.
 

Marco13

Top Contributor
Ein Prof hat i.a. auch manchaml besseres zu tun, als sich mit der (zugegeben recht diffizilen) Frage auseinanderzusetzen, ob in diesem neumodischen "Java" (was einige seiner Studenten als "Programmierpsrache" bezeichnen :lol: ) Strings nun immutable snid oder intern gepoolt werden. In seiner altbekannten C-Welt
Code:
void doit(char *c)
{
    char *d = c;
    ...
sieht das schon anders aus.

Aber darauf aufmerksam machen sollte man denjenigen, der für diese Aufgabe(nstellung) veantwortlich ist, schon. new String(otherString) ist zumindest in den ALLERmeisten Fällen kompletter Blödsinn :roll:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
DrahtEck Schleife soll wieder da anfangen wo ich es möchte ! Java Basics - Anfänger-Themen 17
_so_far_away_ Ich möchte Java lernen Java Basics - Anfänger-Themen 11
A Bei VierGewinnt vorher fragen, ob man gegen den Computer spielen möchte oder gegeneinander. Java Basics - Anfänger-Themen 1
A Bei VierGewinnt fragen, ob man gegen den Computer spielen möchte oder gegeneinander Java Basics - Anfänger-Themen 1
N Erste Schritte HelloWorld möchte einfach nicht laufen Java Basics - Anfänger-Themen 11
P Nutzer entscheiden lassen, wie viele Zahlen dieser in ein Array eingeben möchte. Java Basics - Anfänger-Themen 6
F Methoden Bitte Helft mir meinen Fehler zu finden. Möchte in diesem Bankenprogramm durch die Konsoleneingabe auswählen welches Konto reduziert und welches erhö Java Basics - Anfänger-Themen 17
L Anfängerin möchte Linie zeichnen Java Basics - Anfänger-Themen 8
I erstelle Vorschaubild mit der lib PDF-Renderer und möchte danach Dateiname ändern -> geht aber nicht Java Basics - Anfänger-Themen 0
I ZIP Archive erstellen - ich möchte aber nur den jeweiligen Ordner zippen, bekomme ganzen Pfad Java Basics - Anfänger-Themen 1
J Möchte gern den Konsolen Output auf JTextPane umleiten Java Basics - Anfänger-Themen 4
X Möchte JAVA Lernen Java Basics - Anfänger-Themen 23
A Interface Ich möchte eine Zeichenumgebung Java Basics - Anfänger-Themen 16
S Schleife möchte nicht funktionieren Java Basics - Anfänger-Themen 5
A Möchte mich vorstellen Java Basics - Anfänger-Themen 24
K Ich möchte in einem Text Editor cut, copy ,paste einfügen! Java Basics - Anfänger-Themen 2
E PopupMenu öffnet nicht so wie ich möchte Java Basics - Anfänger-Themen 2
M möchte in konstrukturaufruf eine bedingte anweisung haben. Java Basics - Anfänger-Themen 6
T Möchte Charwert 23C° mit java.util.Scanner einlesen macht Pr Java Basics - Anfänger-Themen 2
X Habe Set, möchte List Java Basics - Anfänger-Themen 3
G Möchte Java verstehen Java Basics - Anfänger-Themen 11
A Möchte Java - Chat in meine Homepage einbinden. Java Basics - Anfänger-Themen 4
R Möchte einen anderen Hintergrund, weis nicht wie? Java Basics - Anfänger-Themen 7
D Ich möchte im JFrame einen Scrollbalken. Java Basics - Anfänger-Themen 5
7 Möchte lediglich zwei Zahlen addieren. Java Basics - Anfänger-Themen 5
M hilfe :} möchte servlet daten erfasssen-> hashmap speiche Java Basics - Anfänger-Themen 3
S Möchte Jave Applet vie URL laden NOOOB Java Basics - Anfänger-Themen 7
J neues Object (JLabel) vorab zum Layout hinzufügen , Location setzen, etc? Java Basics - Anfänger-Themen 2
Lena_2611 Vergleich von Array1 Index mit Array2 Wert und erzeugen eines neues Arrays Java Basics - Anfänger-Themen 8
J Array vertauschen ohne ein neues anzulegen?! Java Basics - Anfänger-Themen 10
W Neues Lern-Projekt gesucht Java Basics - Anfänger-Themen 8
B Erste Schritte nio oder io für neues Projekt Java Basics - Anfänger-Themen 1
AnnaBauer21 org.w3c.dom.Element - Neues Element hinzufügen Java Basics - Anfänger-Themen 4
C Neues Objekt mit Beziehung zu bereits bestehendem Objekt Java Basics - Anfänger-Themen 4
T Erste Schritte Totaler Noob in Java will was neues lernen Java Basics - Anfänger-Themen 22
E Knopfdruck neues Fenster öffnen Java Basics - Anfänger-Themen 5
F Verweis oder neues Objekt? Java Basics - Anfänger-Themen 8
J Variablen Strings mit Zeilenumbrüchen in neues Array Element Java Basics - Anfänger-Themen 1
F Neues Objekt oder nur ein Verweis? Java Basics - Anfänger-Themen 5
K Erste Schritte Neues Fenster mit Textinhalt öffnen Java Basics - Anfänger-Themen 6
M Code um per jButton ein neues Fenster zu öffnen Java Basics - Anfänger-Themen 3
L OOP Neues Objekt bei jeder Eingabe erstellen (Objekte speichern?) Java Basics - Anfänger-Themen 10
I Innerhalb einer Methode suchen und hinzufügen. Neues Objekt in Suche dann? Java Basics - Anfänger-Themen 8
A altes JPanel entfernen und neues öffnen Java Basics - Anfänger-Themen 5
J char-Array rückwärts ausgeben und in neues Char-Array speichern Java Basics - Anfänger-Themen 3
P Array reversed in ein neues Array Java Basics - Anfänger-Themen 5
P Vererbung Neues Objekt aus Vorlage erzeugen Java Basics - Anfänger-Themen 1
F Neues Panel und Button unsichtbar Java Basics - Anfänger-Themen 10
M Beim Klicken auf X neues Fenster Java Basics - Anfänger-Themen 4
S Neues Fenster auf Knopfdruck Java Basics - Anfänger-Themen 12
J Button drücken neues Fenster?! Java Basics - Anfänger-Themen 5
M Neues Objekt erzeugen mit Klassennamen oder ohne Java Basics - Anfänger-Themen 5
I Neues Klassenobjekt nicht "ansprechbar" Java Basics - Anfänger-Themen 5
C Button - neues Fenster - Bestellung anzeigen Java Basics - Anfänger-Themen 10
M Neues Objekt? Java Basics - Anfänger-Themen 6
K Neues Bild bei eingabe bestätigung erscheinen Java Basics - Anfänger-Themen 21
M Timer-Thread in Swing öffnet jedes Mal ein neues Fenster Java Basics - Anfänger-Themen 6
D Design-Tipps für neues Programm (Excel-Charts-...) Java Basics - Anfänger-Themen 3
M Neues Fenster Java Basics - Anfänger-Themen 2
S Innerhalb eines Fensters ein neues erschaffen Java Basics - Anfänger-Themen 7
D aus einem einzeiligen String ein neues Objekt erstellen Java Basics - Anfänger-Themen 5
K neues Fenster mit Button öffnen Java Basics - Anfänger-Themen 17
D Neues Frame öffnen Java Basics - Anfänger-Themen 7
M Neues Objekt erstellen Java Basics - Anfänger-Themen 3
P neues Objekt Java Basics - Anfänger-Themen 4
J Neues Forum Thema erstellen mit java(httpclient) Java Basics - Anfänger-Themen 11
D Neues Objekt in Methode erstellen möglich? Java Basics - Anfänger-Themen 5
M Neues Fenster öffnen altes schützen Java Basics - Anfänger-Themen 10
S mit clickevent neues formular öffnen Java Basics - Anfänger-Themen 2
K Neues Fenster Öffnen? Java Basics - Anfänger-Themen 18
F jTable - neues Element vorher auf existenz Prüfen Java Basics - Anfänger-Themen 7
B neues Objekt erzeugen Java Basics - Anfänger-Themen 7
E Neues Java Fenster öffnen Java Basics - Anfänger-Themen 4
D Neues ContentPane öffnen Java Basics - Anfänger-Themen 3
B neues Problem! Java Basics - Anfänger-Themen 14
G JSP ohne neues Fenster aufrufen. Java Basics - Anfänger-Themen 8
S neues Objekt benennen Java Basics - Anfänger-Themen 3
I Probleme bei "Neues Spiel" Java Basics - Anfänger-Themen 3
P Neues Fenster ueber Hauptfenster Java Basics - Anfänger-Themen 4
L Wie kann ich auch in einem ActionListener ein neues java Pro Java Basics - Anfänger-Themen 8
gurgi mit button neues Frame öffnen Java Basics - Anfänger-Themen 7
G Neues File mit vorgegebenen Einstellungen erstellen? Java Basics - Anfänger-Themen 7
G neues Objekt der Klasse eines anderen Objekts Java Basics - Anfänger-Themen 3
T Panel entfernen, neues hinzufügen Java Basics - Anfänger-Themen 2
D neues Fenster in GUI Java Basics - Anfänger-Themen 2
S Methode soll ein neues Objekt vom Typ Class XYZ Java Basics - Anfänger-Themen 7
G neues String Array in super() übergeben Java Basics - Anfänger-Themen 3
S vom button ein neues fenster öffnen Java Basics - Anfänger-Themen 1
L neues Fenster und Hauptfenster sperren Java Basics - Anfänger-Themen 11
N Open Source für Anfänger, neues Projekt-> Interesse? Java Basics - Anfänger-Themen 36
I Neues Spiel starten Java Basics - Anfänger-Themen 9
K Neues Fenster per Buttonklick, Texteingabe speichern Java Basics - Anfänger-Themen 9
S Problem neues Objekt erzeugen Java Basics - Anfänger-Themen 4
M removeAll() und neues Hinzufügen Java Basics - Anfänger-Themen 2
A neues Objekt in main methode erstellen Java Basics - Anfänger-Themen 2
N Wie öffne ich ein neues Applet? Java Basics - Anfänger-Themen 4
G neues Paket importieren Java Basics - Anfänger-Themen 2
M [SOLVED]private Daten head - neues objekt? Java Basics - Anfänger-Themen 12
R Spieleprogrammierung Menüeintrag "Neues Spiel" Java Basics - Anfänger-Themen 2
G Neues Bild bei MouseOver Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben