neues Objekt erzeugen

Status
Nicht offen für weitere Antworten.
B

benj3939

Gast
NewTool.makeTool(p.getWidth(),p.getHeight(),p.getTool());

Also ich will ein neues Objekt erzeugen mit den Daten des vorigen Objekte nur, dass das neue dann noch durch etwas verändert wird. Nur mir verändert es beide obwohl ich die methoden nur auf das NewTool
kann es sein das ich mit dem Aufruf nur eine Referenz lege und kein neues Objekt erzeuge?? kann ich mir nicht vorstellen
 
S

SlaterB

Gast
ohne Code kann darüber nur spekulieren,
dein Zitat ist nur sehr wenig davon

anzunehmen ist
P newP = NewTool.makeTool(p.getWidth(),p.getHeight(),p.getTool());
newP.change()
-> p geändert

tja, niemand verbietet makeTool(), einfach kein neues Objekt anzulegen sondern p zuzurückzugeben,
Test: new == p?


bei deinem wenig gepostenen Code ist gar
NewTool.makeTool(p.getWidth(),p.getHeight(),p.getTool());
p.change()
zu vermuten..

außerdem könnte p innerhalb von newP verankert sein, automatisch mit geändert werden oder gar gleiche innere Teile referenzieren

tausende Varianten sind möglich
 
B

benj3939

Gast
Also so sieht mein makeTool funkion aus
Code:
class AsciiTool{
 void makeTool(int breite,int hoehe, char [][] Tool ) 
	 {
		this.breite=breite;
		this.hoehe=hoehe;
		this.Tool=new char [hoehe][breite];
		this.Tool=Tool.clone();
		

		
		
	 }

 // hier sind dann noch einige get und set Funktionen getHeigth, getWidth usw
}

wird einfach nur in private Variablen die Daten gespeichert und dann in der Klasse von ein paar getter Variablen zurückgegeben

wenn ich nun in einer andere Klasse und Funktion das mache
Code:
void exec(AsciiTool p){
           AsciiTool NewTool =new AsciiTool();

           NewTool.makeTool(p.getWidth(),p.getHeight(),p.getTool());

            NewTool.setPoint(x,y, zeichen) //hier verändert er aber nicht nur das Objekt newTool sondern auch das alte Objekt p, wie könnte ich das verhindern???

}
[/quote]
 
S

SlaterB

Gast
es ist also von meiner Liste
oder gar gleiche innere Teile referenzieren

clone() ist eine ungewisse Standard-Methode,
sie kopiert bei Arrays nur das Hauptarray, nicht alle weiteren enthaltenen Objekte

das char[][] Tool (Variablen klein schreiben!) ist aus gewisser Sicherweise ein eindimensonales Array von Objekten X, wobei X hier char[]-Objekte sind

clone() erstellt ein neues Array, fügt dort aber all die char[] aus dem Original-Tool ein

damit benutzen beide char[][] dieselben vielen char[], änderst du eines, änderst du auch das andere

kopiere das char[][] lieber traditionell mit einer doppelten for-Schleife
oder zumindest ist es nötig, mit einer einfachen for-Schleife alle enthaltenen char[] einzeln zu clonen()

oder schreibe dir eine allgemeine Methode deepCopy, die autmoatisch alles kopiert
(Vorsicht wenn sehr große Datenstrukturen dranhängen, vielleicht sogar Kreis-Referenzen)

oder verwende Serialisierung zum Kopieren, auch unter Deepcopy geführt:
http://www.informatik-student.de/2006/12/10/deep-copy-von-java-objekten/
 
B

benj3939

Gast
wow okay danke das war

eine frage habe ich noch ich habe Exceptions eingebaut

Code:
if(line.length() !=breite)
				{
					throw new AsciiException("FALSCHE EINGABE");
				}
Code:
class AsciiException extends Exception{

	AsciiException(String message)
	{
		System.out.println(message);
		
	}
	
}

folgendes meine Ausgabe sieht dann am Bildschirm so aus
Code:
FALSCHE EINGABE
Exception in thread "main" AsciiException
	at AsciiReader.main(AsciiReader.java:24)
Ich will aber das nur "FALSCHE EINGABE" ausgegeben wird wie kann ich den restlichen blödsinn unterdrücken
 
S

SlaterB

Gast
in der main oder an sonstiger wichtiger Stelle
try {
..
} catch (Exception oder nur AsciiException e) {
// nix tun
}

nicht zu empfehlen!!
 
B

benj3939

Gast
kann ich nicht machen muss ne eigene Exception klasse verwenden. Is so Vorgabe
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Vererbung Neues Objekt aus Vorlage erzeugen Java Basics - Anfänger-Themen 1
M Neues Objekt erzeugen mit Klassennamen oder ohne Java Basics - Anfänger-Themen 5
T Möchte ein neues Objekt erzeugen mit Wert von anderem Objekt Java Basics - Anfänger-Themen 9
S Problem neues Objekt erzeugen Java Basics - Anfänger-Themen 4
C Neues Objekt mit Beziehung zu bereits bestehendem Objekt Java Basics - Anfänger-Themen 4
F Verweis oder neues Objekt? Java Basics - Anfänger-Themen 8
F Neues Objekt oder nur ein Verweis? Java Basics - Anfänger-Themen 5
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
M Neues Objekt? Java Basics - Anfänger-Themen 6
D aus einem einzeiligen String ein neues Objekt erstellen Java Basics - Anfänger-Themen 5
M Neues Objekt erstellen Java Basics - Anfänger-Themen 3
P neues Objekt Java Basics - Anfänger-Themen 4
D Neues Objekt in Methode erstellen möglich? Java Basics - Anfänger-Themen 5
S neues Objekt benennen Java Basics - Anfänger-Themen 3
G neues Objekt der Klasse eines anderen Objekts Java Basics - Anfänger-Themen 3
S Methode soll ein neues Objekt vom Typ Class XYZ Java Basics - Anfänger-Themen 7
A neues Objekt in main methode erstellen Java Basics - Anfänger-Themen 2
M [SOLVED]private Daten head - neues objekt? Java Basics - Anfänger-Themen 12
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
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
J Variablen Strings mit Zeilenumbrüchen in neues Array Element Java Basics - Anfänger-Themen 1
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
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
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
I Neues Klassenobjekt nicht "ansprechbar" Java Basics - Anfänger-Themen 5
C Button - neues Fenster - Bestellung anzeigen Java Basics - Anfänger-Themen 10
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
K neues Fenster mit Button öffnen Java Basics - Anfänger-Themen 17
D Neues Frame öffnen Java Basics - Anfänger-Themen 7
J Neues Forum Thema erstellen mit java(httpclient) Java Basics - Anfänger-Themen 11
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
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
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
T Panel entfernen, neues hinzufügen Java Basics - Anfänger-Themen 2
D neues Fenster in GUI Java Basics - Anfänger-Themen 2
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
M removeAll() und neues Hinzufügen 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
R Spieleprogrammierung Menüeintrag "Neues Spiel" Java Basics - Anfänger-Themen 2
G Neues Bild bei MouseOver Java Basics - Anfänger-Themen 2
X GUI: neues Panel in einer Applikation anzeigen lassen Java Basics - Anfänger-Themen 2
R Gui + neues Fenster Java Basics - Anfänger-Themen 8
bernd Neues JFrame erzeugen? Java Basics - Anfänger-Themen 8
S Neues Fenster/Panel nach Knopfdruck Java Basics - Anfänger-Themen 2
M Kann neues Servlet nicht hinzufügen Java Basics - Anfänger-Themen 5
S in einem PopUp ein neues Popup erzeugen? Java Basics - Anfänger-Themen 5
J neues gui hinzugefügt .... jetzt gehts nicht mehr Java Basics - Anfänger-Themen 10
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
Rxiiz Objekt aus ComboBox entfernen Java Basics - Anfänger-Themen 4
I JSON in Objekt umwandeln Java Basics - Anfänger-Themen 3
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
B Objekt aus generalisierter Liste entfernen Java Basics - Anfänger-Themen 11
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
Say Objekt Java Basics - Anfänger-Themen 4
Say abstract class und Objekt erzeugen - Dringend Hilfe Java Basics - Anfänger-Themen 10
T Wie kann man es machen das ein Objekt nicht übermalt wird Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
I Entity Objekt nicht gefunden -> Webhook empfangen in der gleichen Methode (Transaktion) Java Basics - Anfänger-Themen 37
K warum kann ich das Objekt nicht erstellen ? Java Basics - Anfänger-Themen 2
K wie kann ich alle Attribute von dem Objekt(pagode) ausgeben lassen ? Java Basics - Anfänger-Themen 3
H Ein übergegebenes Objekt auf null setzen Java Basics - Anfänger-Themen 9
M BlueJ Objekt in Objektliste Java Basics - Anfänger-Themen 2
B Objekt in Klassendiagramm an fremdes Objekt weiterreichen? Java Basics - Anfänger-Themen 6
Fodoboo131 RegEx- Umwandlung von String in ausführbares Objekt/ Befehl Java Basics - Anfänger-Themen 9
frager2345 Aufgabe Hash Objekt Elemente ausgeben Java Basics - Anfänger-Themen 2
amelie123456 Objekt Farbe Quellcode Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben