Datenklasse

Status
Nicht offen für weitere Antworten.

zilti

Bekanntes Mitglied
Was ist hier falsch:
Klasse:
Code:
public class Datacontainer {

	String username;
	String Adminrank;
	
	// Username
	public void setUsername(String usr)
	{
		username = usr;
	}
	
	public String getUsername()
	{
		return username;
	}
	
	// Adminrang
	public void setAdminrank(String adm)
	{
		Adminrank = adm;
	}
	
	public String getAdminrank()
	{
		return Adminrank;
	}
	
}
Die Daten werden per Datacontainer.setUsername() und Datacontainer.setAdminrank() gesetzt.
Wenn ich sie jedoch mit Datacontainer.getUsername() bzw getAdminrank() wieder abrufen will, kommt Null heraus.
 

Wildcard

Top Contributor
Funktional zwar richtig, aber die Member sind nicht private und Adminrank sollte adminRank heißen.
 

zilti

Bekanntes Mitglied
Wenn ich die aber so abändere, kann ich von anderen Klassen aus nicht darauf zugreifen.
 

zilti

Bekanntes Mitglied
häääh? ???:L
Und wie rufe ich das denn ab?
(Hab das Kapitel wohl irgenwie verpennt...)
 

zilti

Bekanntes Mitglied
genau DAS geht eben nicht, wenn ich die Get-Dinger auf Private stelle - und Eclipse wirds wohl wissen.
 

zilti

Bekanntes Mitglied
Ändert garnix, wenn ich die Variablen auf private stelle.
Ich frage mich, ob es überhaupt geht, von einer Klasse aus den Wert zu setzen und von einer anderen aus auszulesen.
 

JPKI

Top Contributor
Code:
public class Datacontainer {

   private String username;
   private String adminrank;

  public Datacontainer() {

   username = new String(); //damit, falls vor dem Setten abgefragt wird, keine NullPointerException geworfen wird
   adminrank = new String();
 }
   
   // Username
   public void setUsername(String username)
   {
      this.username = username;
   }
   
   public String getUsername()
   {
      return username;
   }
   
   // Adminrang
   public void setAdminrank(String adminrank)
   {
      this.adminrank = adminrank;
   }
   
   public String getAdminrank()
   {
      return Adminrank;
   }
   
}
 

zilti

Bekanntes Mitglied
Grossartig. Jetzt wird nicht mehr "null" sondern "" zurückgegeben.
Scheint nicht möglich zu sein (muss aber wohl irgendwie), die Variabeln von einer Klasse aus zu setten und von einer anderen abzurufen.
:bahnhof: ???:L
 

zilti

Bekanntes Mitglied
Tu ich ja auch:
Code:
				Datacontainer data = new Datacontainer();
				data.setAdminrank(Adminrank);
				data.setUsername(user);
				username.setText(data.getUsername() + ", " + data.getAdminrank()); // Zum prüfen, ob die Daten gespeichert sind -> Ergebnis: sie sind es.
				Mainwindow Mainwindow = new Mainwindow(); // Hier drin dasselbe, aber dort kommt nur "" (gar nichts) raus.
 

Evil-Devil

Top Contributor
Wann übergibst du deinem Mainwindow denn den Datacontainer? Mit einem leeren Objekt kann doch nur leeres zurückkommen.
 

Wildcard

Top Contributor
Ich könnte beinahe wetten das du in Mainwindow eine neue Instanz von Datencontainer anlegst :roll:
 

zilti

Bekanntes Mitglied
Logo, geht gar nicht anders. Sonst kommt bloss eine Fehlermeldung "data cannot be resolved".
 
S

SlaterB

Gast
wenn du in mainWindow ein neues Objekt anlegst,
dann sind da nicht die gleichen Daten drin,

übergib data als Parameter im Konstruktor, dann hast du das gleiche Objekt mit den gleichen Daten,

aber es klingt, als wär das alles zu hoch für dich,
fange lieber mit einem Lehrbuch ganz von vorne an
 

zilti

Bekanntes Mitglied
Was genau muss ich denn dem Konstruktor übergeben?
muss ich da "Mainwindow Mainwindow = new Mainwindow(data)" einfügen?
P.S. ich habe "Java 6 - Einstieg für Anspruchsvolle", und dort steht meines Wissens nichts darüber drin.

EDIT: funzt tatsächlich.
 
G

Gast

Gast
wenn da nichts über objektorientierung drin steht solltest du das buch wegwerfen ;)
 

zilti

Bekanntes Mitglied
Da steht sogar ne Menge über Objektorientierung drin.
Nur eben das nicht. Hat halt nicht alles platz. (Dafür gibts ja dieses Forum;-))
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben