Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Guten Abend,
ich hab mich langsam so ein bisschen reingefuchst was Klassen angeht und das Grundprinzip, glaube ich, ansich verstanden.
Ich habe nun mir eine Klasse erstellt (die auch super funktioniert) und wollte um noch mehr Code zu sparen die Abfrage der IP,Username,Password auch mit in die Klasse packen. Dazu habe ich momentan einfach die Werte einzeln übergeben ->
so funktioniert das auch super nun will ich habe irgendwie mit meiner eigenen Methode getData
alle die drei Werte direkt bekommen um mir noch mehr zeilen Code in der Hauptklasse zu sparen (Werte sollen von textFeldern ausgelsen werden aber das ist ja nicht das Problem).
nun habe ich mir die irgendwie was vorgestellt wie (reine Idee, klappt also nicht) ->
Wie genau muss ich das nur auserhalb und innerhalb der Klasse schreiben vllt hast du da nen kleines Beispiel oder so für mich. Ich habe erhlich gesagt noch nie mit Gettern gearbeitet.
Daran ist nichts geheimnisvolles dran. Ein getter ist einfach nur eine Methode, die den Wert einer privaten Eigenschaft zurück gibt.
Java:
class Foo
{
private string bar;
public Foo(string bar)
{
this.bar = bar; // private Eigenschaft per Konstruktor setzen
}
public string getBar() // getter Methode für die Eigenschaft "bar"
{
return bar;
}
// und der Vollständigkeit halber noch der passende setter
public setBar(string bar)
{
this.bar = bar;
}
}
Generell sollte eine Klasse soviel Information wie möglich nach außen verbergen (private Eingenschaften) und nur das außen geben (per getter) was zum Arbeiten mit der Klasse notwendig ist.
Ob es einen getter/setter für eine Eigenschaft gibt, hängt von der Funktion der Klasse ab. Es muss nicht zwangsweise ein getter/setter für jede Eigenschaft existieren. Genauso könnte es getter-artige Methoden geben, die als Rückgabewert mehrere private Eigenschaften kombinieren.
Außerdem sollte eine Instanz der Klasse, nachdem sie erzeugt wurde funktionstüchtig sein, also alle dazu notwendigen Parameter per Konstruktor übergeben werden.
So war leider die letzten Tage nicht am PC.
Ich habe mir nunmal diese getter/setter angeschaut und ansich hat es im simplen rahmen funktioniert.
Leider aber nicht in der "komplexeren Anwendung in meinem SQL Programm.
Leider kommt (getestet mit sysout im connect) garnichts an was in meinem TextAreas steht.
Offensichtlich habe ich irgendwo nen gedankenfehler aber trotz lauter getter/setter tutorials komm ich einfach nicht auf die lösung ^^
Hier erstellst du eine neues Objekt deiner Klasse mainframe. Kann es sein, dass es sich dabei nicht um das eigentliche Objekt handelt in der du die Eingaben machst?
Erstellst du irgendwo (in der main-Methode) schon mal so eine Instanz?
BTW:
Gewöhn' dir am Besten an Klassennamen im UpperCammelCase und Methoden/Variablennamen im lowerCammelCase zu schreiben.
Nein tue ich nicht. Ich hab um ehrlich gesagt diese Zeile nur drin weil er sonst meine drei get Methoden aus der Main klasse nicht finden konnte. Deshalb auch der komische Name
Ein recht ungewöhnliches Konstrukt.
Müsstest du deine mainframe Klasse nicht irgendwo mal instanzieren damit der Code im Konstruktor ausgeführt wird?
Der Klasse verbindung müsstest du dann die aktuelle Instanz übergeben damit du in der Klasse auf die Methoden zugreifen kannst.
Schau dir noch mal mein einfaches Beispiel mit der Klasse "Foo" an und versuche das auf deine Klasse Verbindung umzusetzen. Ziel sollte sein, dass anstatt von:
Java:
verbindung test = new verbindung();
folgende steht:
Java:
Verbindung test = new Verbindung("jdbc:mysql://localhost/test", "root", "admin");
Damit erzeugst du eine gültige Instanz von "Verbindung" mit allen notwendigen Daten.