Verständnisfrage Objekt Getter Setter

T

Trjavnamen

Bekanntes Mitglied
Gegeben ist folgende Testkonstruktion:
Java:
package meintest4;

public class test4 {
    public Double w1= new Double(0.1d);
    public Double w2 = new Double(0.1d);
    public Double w3= new Double(0.1d);
    public Double w4= new Double(0.1d);
    public Double w5= new Double(0.1d);
    public Double w6= new Double(0.1d);



public Double getw1() {return  w1;     }
public Double getw2() {return  w2;     }
public Double getw3() {return  w3;     }
public Double getw4() {return  w4;     }
public Double getw5() {return  w5;     }
public Double getw6() {return  w6;     }


public void setw1(Double  w1   )               {this. w1=w1;     }
public void setw2(Double  w2   )               {this.  w2=w2;     }
public void setw3(Double  w3   )               {this.  w3=w3;     }
public void setw4(Double  w4   )               {this.  w4=w4;     }
public void setw5(Double  w5   )               {this.  w5=w5;     }
public void setw6 (Double  w6   )               {this.  w6=w6;     }




}
Java:
package meintest4;
 import meintest4.test4;
public class Main {

    public static void main(String[] args) {
        rub1();
        rub2();


    }
    private static void rub1(){test4 m2 =new test4();
        m2.setw1(10000.00);
        }

private static  void rub2(){test4 m2 =new test4();
m2.getw1();
    System.out.print(m2.w1);
            }
}
Was mache ich falsch .Es sollte doch 10000.00 ausgegeben werden aber ausgegeben wird 0.1
in rub1 setze ich doch den Wert und inrub2 frage ich ihn doch wieder ab oder? Oder wie rufe ich den wert den wieder ab?
 
kneitzel

kneitzel

Top Contributor
Du erstellst in rub1 eine neue Instanz von test4. Dort weist du dann w1 den neuen Wert zu. Danach interessiert Dich die Instanz nicht mehr ...

In rub2 erstellst Du wieder eine neue Instanz von test4. Und da bekommst du dann den Wert von w1, der halt bei der Initialisierung der neuen Instanz zugewiesen wurde.

Das ist also wie:
Du kaufst Dir ein neues Auto, tankst voll und dann verschrottest Du das Auto.
Dann kaufst Du dir wieder ein neues Auto und wunderst Dich, dass der Tank nicht voll ist - dabei hast Du doch ein neues Auto vollgetankt....
 
T

Trjavnamen

Bekanntes Mitglied
Also wie gekomme ich aus der 1.Instanz der wert 10000.00 wieder zurück?
 
T

Trjavnamen

Bekanntes Mitglied
Also habe ich kein Objekt erzeugt was ich ändern und wiedcer abrufen kann?
 
kneitzel

kneitzel

Top Contributor
Wenn Du die Instanz noch brauchst, dann musst Du eine Referenz irgendwo sichern. Du könntest also eine statische Variable in der Klasse erstellen und dort die Referenz sichern. Und statt eine neue Instanz zu erzeugen greifst Du dann auf die gespeicherte Instanz zu.

Oder um beim Beispiel zu bleiben: Merk Dir einfach, wo Du das erste, geparkte Auto abgestellt hast und statt dir erneut ein neues Auto zu besorgen, nutzt Du das abgestellte. Das ist dann auch noch vollgetankt.
 
kneitzel

kneitzel

Top Contributor
Die Variable m2 ist eine lokale Variable, die Du jeweils in der Methode deklariert hast. Damit hat diese einen Geltungsbereich von der Methode, in der die Variable deklariert ist. Und obwohl die Variablen beide gleich heißen, sind es zwei unterschiedliche Variablen.
 
T

Trjavnamen

Bekanntes Mitglied
also ist das Objektgequatsche nur dünnschiss und setter getter eine Luftnummer?
 
T

Trjavnamen

Bekanntes Mitglied
Oder wie kann ich eine Klasse aus der Instanz m2 aus rub1 generieren das sie abrufbar wird?
 
Zuletzt bearbeitet:
kneitzel

kneitzel

Top Contributor
Dann einfach einmal kurz skizziert, was ich mit der statischen Variable meine...

Java:
package meintest4;
import meintest4.test4; // Hinweis: der Import wird nicht benötigt, da es das eigene Package ist.

public class Main {

    static test4 staticM2; // Static variable ...
    
    public static void main(String[] args) {
        rub1();
        rub2();
    }

    private static void rub1(){
        test4 m2 = new test4(); // Lokale Variable ... diese m2 Variable existiert nur von hier ...
        System.out.println(m2);
        m2.setw1(10000.00);
        staticM2 = m2;
        System.out.println(staticM2);
        // .... bis hier ...
    }

    private static  void rub2(){
        test4 m2 =new test4(); // Die erzeugt eine neue Variable m2, die nichts mit der anderen m2 Variable zu tun hat.
        System.out.println(m2); // Wir geben es mal aus - es kommt eine andere Zahl!
        // m2.getw1(); // Auskommentiert - der Aufruf macht nichts und kann weg!
        System.out.print(m2.w1); // Der Wert von der neuen Instanz ...

        m2 = staticM2;
        System.out.println(m2); // Yeah, wir haben unsere Instanz wieder!
        System.out.print(m2.w1); // Wir haben den gesetzten Wert wieder!
    }
}

Die Ausgabe der Instanzen wird immer den Klassennamen mit dem Hashcode ausgeben so Du toString nicht überschrieben hast. Und der Hashcode gibt die Speicheradresse an so ist die JVM halt entwickelt worden. Unterschiedliche Zahlen = unterschiedliche Instanzen. Das nur, damit Du erkennst, welche Instanzen Du da jeweils hast ...
 
T

Trjavnamen

Bekanntes Mitglied
Danke das hilft mir weiter. Das war die Anwort die ich brauchte um es zu verstehen.
 
temi

temi

Top Contributor
in rub1 setze ich doch den Wert und inrub2 frage ich ihn doch wieder ab oder?
Nein. Du setzt den Wert einer Variablen in rub1 und in rub2 rufst du den Wert einer anderen Variablen wieder ab.

Hier eine andere Variante ohne statische Variable:
Java:
public class Main {

    public static void main(String[] args) {
        test4 m1 = rub1(); // merkt sich den zurückgegebenen Wert in der Variablen m1
        rub2(m1); // übergibt die Variable an die zweite Methode.
    }

    private static test4 rub1(){
        test4 m2 = new test4();
        m2.setw1(10000.00);
        return m2; // gibt die hier erzeugte Variable als Rückgabewert der Methode an den Aufrufer zurück
    }

    private static void rub2(test4 m) { // übernimmt eine Variable als Parameter
        System.out.print(m.getw1());
    }
}
 
Zuletzt bearbeitet:
T

Trjavnamen

Bekanntes Mitglied
Leider sind beide Lösungen einzelnd prima aber wie man sieht habe ich ja viele werte und wenn ich die Vorschläge auf weitere Methoden anwende dann bin ich wieder am Anfang. Ich gehe jetzt mal einen Schritt weiter und habe folgendes Beispiel
Objektklasse?:
public class test4 {
    public Double w1= new Double(0.1d);
    public Double w2 = new Double(0.1d);
    public Double w3= new Double(0.1d);
    public Double w4= new Double(0.1d);
    public Double w5= new Double(0.1d);
    public Double w6= new Double(0.1d);
    public Double w7= new Double(0.1d);
    public Double w8= new Double(0.1d);
    public Double w9= new Double(0.1d);
    public Double w10= new Double(0.1d);
    public Double w11= new Double(0.1d);



public Double getw1() {return  w1;     }
public Double getw2() {return  w2;     }
public Double getw3() {return  w3;     }
public Double getw4() {return  w4;     }
public Double getw5() {return  w5;     }
public Double getw6() {return  w6;     }
public Double getw7() {return  w7;     }
public Double getw8() {return  w8;     }
public Double getw9() {return  w9;     }
public Double getw10() {return  w10;     }
public Double getw11() {return  w11;     }



public void setw1(Double  w1   )               {this. w1=w1;     }
public void setw2(Double  w2   )               {this.  w2=w2;     }
public void setw3(Double  w3   )               {this.  w3=w3;     }
public void setw4(Double  w4   )               {this.  w4=w4;     }
public void setw5(Double  w5   )               {this.  w5=w5;     }
public void setw6 (Double  w6   )               {this.  w6=w6;     }
public void setw7(Double  w7   )               {this. w7=w7;     }
public void setw8(Double  w8   )               {this.  w8=w8;     }
public void setw9(Double  w9   )               {this.  w9=w9;     }
public void setw10(Double  w10   )               {this.  w10=w10;     }
public void setw11(Double  w11   )               {this.  w11=w11;     }

controller:
package application8;



import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.TextField;

public class SampleController {
   
    static test4 staticM2;
   
    ;// Static variable ...
@FXML  private TextField Lohn;
    @FXML  private TextField Lohnsteuer;
    @FXML private TextField SolidaritätsBeitrag;
    @FXML private TextField Rentenversicherung;
    @FXML private TextField Krankenversicherung;
    @FXML private TextField Pflegeversicherung;
    @FXML private TextField VBLEigenanteil;
    @FXML private TextField Nettolohn;
@FXML private TextField Aufrolldifferenz;
@FXML  private TextField Gutschrift;
@FXML  private TextField Bankeingang;

//Lohn
@FXML void ONAK1(ActionEvent event) {
    test4 m2 = new test4(); // muß ich ja jedesmal schreiben um m2.setxx zu schreiben
System.out.println(m2);
m2.setw1(Double.valueOf(Lohn.getText()));
staticM2 = m2; //wenn ich das hier schreibe mache ich diese Methode statisch und return hat eine Wirkung.
System.out.println(staticM2);


}
@FXML void ONAK2(ActionEvent event) {
    test4 m2 = new test4(); // /hier schreibe ich es wieder aber ich zerstöre das vorherige return
    System.out.println(m2);
    m2.setw2(Double.valueOf(Lohn.getText()));
    staticM2 = m2;//mit diesem statisch machen.
    System.out.println(staticM2);


}
@FXML void ONAK3(ActionEvent event) {test4 m2 = new test4(); // Lokale Variable ... diese m2 Variable existiert nur von hier ...
System.out.println(m2);
m2.setw3(Double.valueOf(Lohn.getText()));
staticM2 = m2;
System.out.println(staticM2);



}
@FXML void ONAK4(ActionEvent event) {test4 m2 = new test4(); // Lokale Variable ... diese m2 Variable existiert nur von hier ...
System.out.println(m2);
m2.setw4(Double.valueOf(Lohn.getText()));
staticM2 = m2;
System.out.println(staticM2);





}
@FXML void ONAK5(ActionEvent event) {
test4 m2 = new test4(); // Lokale Variable ... diese m2 Variable existiert nur von hier ...
System.out.println(m2);
m2.setw5(Double.valueOf(Lohnsteuer.getText()));
staticM2 = m2;
System.out.println(staticM2);

}
@FXML void ONAK6(ActionEvent event) {
test4 m2 = new test4(); // Lokale Variable ... diese m2 Variable existiert nur von hier ...
System.out.println(m2);
m2.setw6(Double.valueOf (SolidaritätsBeitrag.getText()));
staticM2 = m2;
System.out.println(staticM2);

}
@FXML void ONAK7(ActionEvent event) {
    test4 m2 = new test4(); // Lokale Variable ... diese m2 Variable existiert nur von hier ...
    System.out.println(m2);
    m2.setw7(Double.valueOf(Krankenversicherung.getText()));
    staticM2 = m2;
    System.out.println(staticM2);

}
@FXML void ONAK8(ActionEvent event) {
    test4 m2 = new test4(); // Lokale Variable ... diese m2 Variable existiert nur von hier ...
    System.out.println(m2);
    m2.setw8(Double.valueOf(Pflegeversicherung.getText()));
    staticM2 = m2;
    System.out.println(staticM2);

}
@FXML void ONAK9(ActionEvent event) {
    test4 m2 = new test4(); // Lokale Variable ... diese m2 Variable existiert nur von hier ...
    System.out.println(m2);
    m2.setw9(Double.valueOf(VBLEigenanteil.getText()));
    staticM2 = m2;
    System.out.println(staticM2);

}
@FXML void ONAK10(ActionEvent event) {
   

    }
@FXML void ONAK11(ActionEvent event) {
   


}
}
FXML dokument:
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.BorderPane?>


<BorderPane xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8" fx:controller="application8.SampleController">
   <center>
      <ScrollPane prefHeight="2893.0" prefWidth="1469.0" BorderPane.alignment="CENTER">
        <content>
          <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="898.0" prefWidth="1155.0">
               <children>
                  <HBox prefHeight="100.0" prefWidth="1155.0" />
                  <HBox layoutX="85.0" layoutY="128.0" prefHeight="732.0" prefWidth="943.0">
                     <children>
                        <VBox prefHeight="200.0" prefWidth="100.0">
                           <children>
                              <TextField fx:id="Lohn" onAction="#ONAK1" />
                              <TextField fx:id="Lohnsteuer" onAction="#ONAK2" />
                              <TextField fx:id="SolidaritätsBeitrag" onAction="#ONAK3" />
                              <TextField fx:id="Rentenversicherung" onAction="#ONAK4" />
                              <TextField fx:id="Krankenversicherung" onAction="#ONAK5" />
                              <TextField fx:id="Pflegeversicherung" onAction="#ONAK6" />
                              <TextField fx:id="Aufrolldifferenz" onAction="#ONAK7" />
                               <TextField fx:id="VBLEigenanteil" onAction="#ONAK8" />
                              <TextField fx:id="Gutschrift" onAction="#ONAK9" />
                              <TextField fx:id="Nettolohn" onAction="#ONAK10" />
                              <TextField fx:id="Bankeingang" onAction="#ONAK11" />
                           </children>
                        </VBox>
                     </children>
                  </HBox>
               </children>
            </AnchorPane>
        </content>
      </ScrollPane>
   </center>
</BorderPane>
da habe ich auch das selbe Problem . Alle voids haben ihre Gültigkeit bis zum Ende der Methode. Meine Uhrsprüngliche Ojektklasse haben 80 Werte und das Furmular ebenfalls 80 Felder. Ich muß spähtestens nach 12 Feldern lesen ein Zwischenergebnis in ein Feld schreiben umd dann bei dem nächsten Schritt das letzte Egebnis wieder einlesen um dann weiter arbeiten zu können.





Main für FXML Fenster:
package application8;
   
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.fxml.FXMLLoader;


public class Main extends Application {
    @Override
    public void start(Stage primaryStage) {
        try {
            BorderPane root = (BorderPane)FXMLLoader.load(getClass().getResource("Sample.fxml"));
            Scene scene = new Scene(root,400,400);
            scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
            primaryStage.setScene(scene);
            primaryStage.show();
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
   
    public static void main(String[] args) {
        launch(args);
    }
}
 
kneitzel

kneitzel

Top Contributor
Du kaufst dir jedes Mal, wenn du einen Geldschein in deine Geldbörse stecken willst, eine neue? Die steckst du dann ein und wenn in der Tasche bereits eine Geldbörse war, dann wirfst du die weg?

Objektorientierte Entwicklung ist wie im realen Leben. Nur heißt es da dann nicht Geldbörse sondern test4.

Also erstell ein einziges test4 Objekt und nutze dieses. Das muss nicht einmal statisch sein.
Wenn das Formular erstellt wird, erzeugst du auch eine Instanz und merkst dir diese in der Instanzvariablen!

Und so wie du die eine Geldbörse, die du nutzen willst, nicht ständig durch eine neue ersetzt, lässt du das auch mit den test4 Instanzen!
 
T

Trjavnamen

Bekanntes Mitglied
Also muß der Inhalt Klasse test4 in den Controller gepackt werden? Und füge dann bei den setter was ein damit es statisch wird?
 
T

Trjavnamen

Bekanntes Mitglied
Ich habe Test4 Klasse und dachte mit setter setze ich die Werte neu. Und getter gibt die neuen daten statisch zurück?
 
T

Trjavnamen

Bekanntes Mitglied
Also muß der Inhalt Klasse test4 in den Controller gepackt werden? Und füge dann bei den setter was ein damit es statisch wird?
Und rufe dann aus den Voids Aktion Event die setter auf um den wert zu übergeben und wenn ich ein neues ERgebnis generieren will rufe ich die Getter wider auf um die Daten in die voids zu bekommen?
 
kneitzel

kneitzel

Top Contributor
Nein, Du musst Objektorientiert denken. Und da sind die Objekte ähnlich wie im echten Leben.

Den Inhalt von test4 könntest Du auch in de Controller packen - das wäre dann wie: Statt eine Geldbörse zu verwenden steckst Du alles aus der Geldbörse direkt in Deine Tasche.

Das ist aber doch nicht Sinn davon.

Du willst nur eben genau eine Instanz haben. So wie Du Dir nicht immer, wenn Du eine Geldbörse benötigst, eine neue erstellst/kaufst sondern die bisherige verwendest (die dann auch den Inhalt hat, den Du erwartest und nicht leer ist wie eine neue!),

Ebenso ist es auch mit den Instanzen in der Programmierung.

Und auch das statisch machen will man in der Regel nicht. Statische Geldbörse wäre etwas, wo jeder Zugriff drauf hat. Das wirst Du so nicht wollen vermute ich.

Daher immer überlegen, was Du genau hast / brauchst:

Du hast einen Controller und der hat eine Instanz von test4. So eine "hat" oder "besitzt" Beziehung ist eine einfaches Attribut. In Deinem Fall brauchst Du im Controller also nur eine Instanzvariable vom Typ test4. Damit kann dann der Controller immer auf diese eine Instanz zugreifen.
 
Held21

Held21

Mitglied
Hey Leute,
Ich kann mich kneitzel nur anschließen. Ich hatte dasselbe Problem und war damit lange beschäftigt etwas neu zu strukturieren.

Mir gefällt das Beispiel mit der Geldbörse sehr gut.

Liebe Grüße
 
T

Trjavnamen

Bekanntes Mitglied
Ja das Beispiel ist toll. Und lässt mich ja auch erkennen das ich deswegen ja auch nicht weiter komme.Laut Herrn Ackermann sollte das eigendlich so funktionieren. Und es sollte so gemacht werden damit die Struktur nicht überschrieben werden kann? Und es sollte sogar auf privat gestellt werden. Aber irgendwie bekomme ich in Eclipse nur noch Fehler angezeigt. Und wenn es in publik nicht funtioniert wie soll es überhaupt funktionieren? Es gibt ja diese@XXX Adressse wo der Wert drinsteht die wird ja beim ersten mal festgesetzt. In Klassse test4 habe ich ja den wert auf 0,1 gesetzt. Der dann auch wiedergegeben wird. Die Adresse kann ich ja durch system.out.print() bekommen. Wenn man alle Werte in einer Methode druckt auch alle anderen. Den Wert könnte man doch intern als Abfrageadresse generieren . Und dann wie? ändern? bzw wie Abfragen?
 
T

Trjavnamen

Bekanntes Mitglied
Wie müsste es denn Aussehen wenn KLasse test4 die Werte über Import applikation8.SampleController; und SampleController sam =new SampleController abruft und die Methode jedesmal durch die AktionEvents getartet werden?
 
kneitzel

kneitzel

Top Contributor
Also so ganz kann ich Dir im Augenblick nicht folgen, was Du machen willst und wo Du irgendwas gelesen oder gehört hast (Ackermann?)...

Und da Deine Klassen auch scheinbar fast alle keine Sinnvollen Namen haben, kann man auch nur raten.

Ich gehe mal davon aus, dass test4 einfach nur dein Model ist. Also nennen wir es doch auch einfach einmal so: Model.

Dein Controller ist der SampleController. Nun kannst Du in dem Controller einfach eine Referenz auf das Model haben. Woher das Model kommt, kannst Du Dir relativ frei überlegen. Wenn es da nichts gibt, das von Außen kommt, dann kannst Du einfach eine neue Instanz erzeugen, also etwas wie:
Java:
public class SampleController() {
    private Model model; // Deine alte test4 Klasse!
    
    public SampleController() {
        model = new Model();
    }
}


Damit hat Dein Controller ein Model - und du erzeugst an keiner anderen Stelle ein neues Model! Zumindest nicht, bis Du genau weisst, was Du machst!

Und im Controller kannst Du dann auch auf das Model zugreifen, also sowas:
Java:
@FXML void ONAK1(ActionEvent event) {
    model.setw1(Double.valueOf(Lohn.getText()));
}
 
mrBrown

mrBrown

Super-Moderator
Mitarbeiter
@Trjavnamen Ich würde dir den Tipp geben, noch mal ein paar Schritte zurück zu gehen und bei den absoluten Grundlagen anzufangen. Und Grundlagen meint dabei wirklich die Grundlagen, alles was mehr als nur eine ganz simple main-Methode umfasst.
 
T

Trjavnamen

Bekanntes Mitglied
Hallo Nochmal Es scheint so das ich wohl firefox doppelt aufgerufen habe und die Reihenfolge durcheinander geraten ist.
Ojektklasse?:
public class test4 {
    public Double w1= new Double(0.1d);
    public Double w2 = new Double(0.1d);
    public Double w3= new Double(0.1d);
    public Double w4= new Double(0.1d);
    public Double w5= new Double(0.1d);
    public Double w6= new Double(0.1d);
    public Double w7= new Double(0.1d);
    public Double w8= new Double(0.1d);
    public Double w9= new Double(0.1d);
    public Double w10= new Double(0.1d);
    public Double w11= new Double(0.1d);



public Double getw1() {return  w1;     }
public Double getw2() {return  w2;     }
public Double getw3() {return  w3;     }
public Double getw4() {return  w4;     }
public Double getw5() {return  w5;     }
public Double getw6() {return  w6;     }
public Double getw7() {return  w7;     }
public Double getw8() {return  w8;     }
public Double getw9() {return  w9;     }
public Double getw10() {return  w10;     }
public Double getw11() {return  w11;     }



public void setw1(Double  w1   )               {this. w1=w1;     }
public void setw2(Double  w2   )               {this.  w2=w2;     }
public void setw3(Double  w3   )               {this.  w3=w3;     }
public void setw4(Double  w4   )               {this.  w4=w4;     }
public void setw5(Double  w5   )               {this.  w5=w5;     }
public void setw6 (Double  w6   )               {this.  w6=w6;     }
public void setw7(Double  w7   )               {this. w7=w7;     }
public void setw8(Double  w8   )               {this.  w8=w8;     }
public void setw9(Double  w9   )               {this.  w9=w9;     }
public void setw10(Double  w10   )               {this.  w10=w10;     }
public void setw11(Double  w11   )               {this.  w11=w11;     }
dieses ist eine angelegte Klasse in einer seperaten Datei test4.java Diese Klasse mache ich doch zum Objekt wenn ich sie in meinem Controller durch den Befehl Import applikation.test4 einbinde ?
 
mihe7

mihe7

Top Contributor
Diese Klasse mache ich doch zum Objekt wenn ich sie in meinem Controller durch den Befehl Import applikation.test4 einbinde ?
Nein. Die import-Anweisungen dienen nur dazu, dass Du weniger tippen musst (ohne die import-Anweisung musst Du den vollen Klassennamen inkl. der Pakete angeben). Ein Objekt erzeugst Du mit new.
 
mrBrown

mrBrown

Super-Moderator
Mitarbeiter
Um es noch mal deutlich zu sagen:
@Trjavnamen Ich würde dir den Tipp geben, noch mal ein paar Schritte zurück zu gehen und bei den absoluten Grundlagen anzufangen. Und Grundlagen meint dabei wirklich die Grundlagen, alles was mehr als nur eine ganz simple main-Methode umfasst.


Da scheint wirklich nahezu jedes Grundverständnis zu fehlen.
 
T

Trjavnamen

Bekanntes Mitglied
Danke mBrown Wenn das nicht fragen zur Grundlage ist was dann?? public Double w1= new Double(0.1d);// das ist ein Ojekt? wenn ich das in den Controller schreibe habe ich das Ojekt auf das ich zugreife aber nicht wenn ich es in eine seperaten Klasse schreibe? Ich verstecke das Objekt wenn ich anstatt public dann private schreibe weil man es in der compilierten Klasse nicht mehr sieht? Man kann Grunsätzlich nicht aus verschiedenen Methoden auf dasselbe Ojekt in einer seperaten KLasse zugreifen.weil man dann auf Instanzen zugreift? Setter und Getter sind nur innerhalb der KLasse eindeutig.
 
kneitzel

kneitzel

Top Contributor
mrBrown meint, dass es Sinn machen würde, sich die Grundlagen von Grund auf anzusehen. Wir können zwar auf Fragen antworten, aber wenn die Grundlagen fehlen um die Antworten zu verstehen, dann wird es schwer. Der Umfang von Antworten in einem Forum ist nun einmal begrenzt und kann ein gutes Lehrbuch nicht ersetzen.
 
temi

temi

Top Contributor
public Double w1= new Double(0.1d);// das ist ein Ojekt?
Ja, du erzeugst eine Instanz der Klasse Double und die Referenz darauf ist in der Variablen w1 gespeichert.

Der Rest von deinem Geschriebenen ist für mich völlig unverständlich. Versuch die Fragen genauer zu formulieren und/oder mit kurzen Beispielen zu erläutern.
 
kneitzel

kneitzel

Top Contributor
Ja, du erzeugst eine Instanz der Klasse Double und die Referenz darauf ist in der Variablen w1 gespeichert.
Aber diese Instanz bekommt er nur, wenn eine Instanz der Klasse, in der sich diese Instanzvariable befindet, erzeugt...

Das scheint etwas das Problem beim TE zu sein. Daher ja auch die Versuche, es anschaulich zu erläutern. Aber das scheint alles nichts gebracht zu haben ...
 
temi

temi

Top Contributor
Hier mal ein Beispiel mit Zugriff auf Instanzvariablen über Getter. Keine Ahnung, ob die Frage in diese Richtung ging...

Java:
// Klasse mit einem Integerwert als Instanzvariable
class Foo {

    private int value = 42;

    public int getValue() {
        return value;
    }
}
Java:
// Klasse mit einem Foo als Instanzvariable
class Bar {

    private Foo foo = new Foo();

    public foo getFoo() {
        return foo;
    }
}
Java:
// Zugriff auf die Instanzvariablen
class Main {

    public static void main(String[] args) {
   
        Bar bar = new Bar();
   
        Foo foo = bar.getFoo();
   
        System.out.println(foo.getValue()); // 42
    }
}
 
T

Trjavnamen

Bekanntes Mitglied
Mir wird es langsam peinlich überhaupt zu fragen. Aber die angeigneten Grundlagen scheitern an meinen oder euren Formulierungen. Die Abfragen und das Setzen in einem JavaFX Fenster geschiet im SampelController. java Mit seinen Methoden Die Objektklasse ist unter Test4.jave geschrieben. Stände alles in SampleController ohne public class test4 kann man den neuen Wert setzen mit this.w1=10.0 oder w1 =10. Schreibe ich aber public class test4 drüber oder schreibe alles in eine andere Datei dann geht das nicht und alles wird zu Fehlern. Bei einer Instanz müsste das this doch auch funktionieren oder?
 
temi

temi

Top Contributor
Mir wird es langsam peinlich überhaupt zu fragen. Aber die angeigneten Grundlagen scheitern an meinen oder euren Formulierungen. Die Abfragen und das Setzen in einem JavaFX Fenster geschiet im SampelController. java Mit seinen Methoden Die Objektklasse ist unter Test4.jave geschrieben. Stände alles in SampleController ohne public class test4 kann man den neuen Wert setzen mit this.w1=10.0 oder w1 =10. Schreibe ich aber public class test4 drüber oder schreibe alles in eine andere Datei dann geht das nicht und alles wird zu Fehlern. Bei einer Instanz müsste das this doch auch funktionieren oder?
Mach doch einfach mal ein minimales Beispiel, ungefähr im Umfang von meinem Beispiel in #34.
 
T

Trjavnamen

Bekanntes Mitglied
Um meiner Frage nochmals mit einem eifacherem Beispiel darzulegen habe ich das mit einem Getter Setter geschrieben.
Main
Java:
package applicationZ;
    
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.fxml.FXMLLoader;


public class Main extends Application {
    @Override
    public void start(Stage primaryStage) {
        try {
            BorderPane root = (BorderPane)FXMLLoader.load(getClass().getResource("Sample.fxml"));
            Scene scene = new Scene(root,400,400);
            scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
            primaryStage.setScene(scene);
            primaryStage.show();
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
    
    public static void main(String[] args) {
        launch(args);
    }
}
SampleController
Java:
package applicationZ;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Slider;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField;
import javafx.scene.input.MouseEvent;
public class SampleController {
    private Double BvollesGlas= new Double(0.1);//
    private Double getBvollesGlas () {return BvollesGlas;      }
    private void setBvollesGlas(Double  BvollesGlas   )          {this.BvollesGlas=BvollesGlas;      }
    @FXML
        private TextArea Kommentar;

        @FXML
        private Slider SliFüllstand;

        @FXML
        private TextField textfieldFüllst;

        @FXML
        void andrag(ActionEvent event) {

        }

        @FXML
        void onMoClifüllstand(MouseEvent event) {
            SliFüllstand.setMajorTickUnit(10.00);
            SliFüllstand.setMinorTickCount(4);
            SliFüllstand.setShowTickMarks(true);
            SliFüllstand.setPickOnBounds(true);
            SliFüllstand.setSnapToTicks(true);
               this.BvollesGlas =  SliFüllstand.getValue();System.out.println(BvollesGlas);textfieldFüllst.setText(String.valueOf(BvollesGlas));
               Glasbeschreibung();

        }

        @FXML
        void onMoDragFüllstand(MouseEvent event) {
            SliFüllstand.setMajorTickUnit(10.00);
            SliFüllstand.setMinorTickCount(1);
            SliFüllstand.setShowTickMarks(true);
            SliFüllstand.setPickOnBounds(true);
            SliFüllstand.setSnapToTicks(true);
            this.BvollesGlas =  SliFüllstand.getValue();System.out.println(BvollesGlas+"sli");textfieldFüllst.setText(String.valueOf(BvollesGlas));
              Glasbeschreibung();
        }

        @FXML void onActiontextfieldFüllst(ActionEvent event) {


       this.BvollesGlas=Double.valueOf(textfieldFüllst.getText());
      System.out.println("txt"+BvollesGlas); SliFüllstand.setValue(BvollesGlas);
      Glasbeschreibung();
        }
        @FXML void Glasbeschreibung(){
            if (this.BvollesGlas==250){
                Kommentar.setText("Hey das ist teurer Wisky! Nichts verschütten!!");}
                else if(this.BvollesGlas>=125){Kommentar.setText("da kann noch was rein!!");}
                else if(this.BvollesGlas<125) {Kommentar.setText("du willst mich wohl abzocken!!");}
            }
        }
Sample.fxml
Java:
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.BorderPane?>

<BorderPane prefHeight="665.0" prefWidth="571.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="applicationZ.SampleController">
   <center>
      <Slider fx:id="SliFüllstand" majorTickUnit="10.0" max="250.0" onMouseClicked="#onMoClifüllstand" onMouseDragOver="#onMoDragFüllstand" orientation="VERTICAL" prefHeight="665.0" prefWidth="89.0" showTickLabels="true" showTickMarks="true" snapToTicks="true" BorderPane.alignment="CENTER" />
   </center>
   <top>
      <TextArea fx:id="Kommentar" prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER" />
   </top>
   <left>
      <TextField fx:id="textfieldFüllst" onAction="#onActiontextfieldFüllst" BorderPane.alignment="CENTER" />
   </left>
</BorderPane>
so funktioniert es.
In meinem Verständnis sollten die Getter und Setter in einer weiteren Datei also einer
Vierten" MyGlas.java" datei stehen . Das habe ich mit meinem Beispiel auch gemacht indem ich alles mit einer anderen Package geklont habe
Java:
package applicationY;

public class MyGlas {

    public Double vollesGlas= new Double(0.1);//
    public Double getvollesGlas () {return vollesGlas;      }
    public void setvollesGlas(Double  vollesGlas   )          {this.vollesGlas=vollesGlas;      }
}
jetzt ist es wie vorher ich kann kein this.vollesGlas benutzen sondern nur glas.setvollesGlas und glas.getvollesGlas wenn ich als erstes in der Methode "MyGlas glas=new MyGlas ();" geschrieben habe bzw jetzt in einer Methode
die SampleControll. java sieht dann so aus.
Java:
package applicationY;

import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Slider;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField;
import javafx.scene.input.MouseEvent;
import applicationY.MyGlas;
public class SampleController {
    MyGlas glas = new MyGlas();

    @FXML
    private TextArea Kommentar;

    @FXML
    private Slider SliFüllstand;

    @FXML
    private TextField textfieldFüllst;

    @FXML
    void andrag(ActionEvent event) {

    }

    @FXML
    void onMoClifüllstand(MouseEvent event) {MyGlas glas =new MyGlas();

        SliFüllstand.setMajorTickUnit(10.00);
        SliFüllstand.setMinorTickCount(4);
        SliFüllstand.setShowTickMarks(true);
        SliFüllstand.setPickOnBounds(true);
        SliFüllstand.setSnapToTicks(true);
        glas.vollesGlas =  SliFüllstand.getValue();System.out.println(glas.vollesGlas);textfieldFüllst.setText(String.valueOf(glas.vollesGlas));
           Glasbeschreibung();

    }

    @FXML
    void onMoDragFüllstand(MouseEvent event) {MyGlas glas =new MyGlas();
        SliFüllstand.setMajorTickUnit(10.00);
        SliFüllstand.setMinorTickCount(1);
        SliFüllstand.setShowTickMarks(true);
        SliFüllstand.setPickOnBounds(true);
        SliFüllstand.setSnapToTicks(true);
        glas.vollesGlas =  SliFüllstand.getValue();System.out.println(glas.vollesGlas+"sli");textfieldFüllst.setText(String.valueOf(glas.vollesGlas));
          Glasbeschreibung();
    }

    @FXML void onActiontextfieldFüllst(ActionEvent event) {MyGlas glas =new MyGlas();


   glas.vollesGlas=Double.valueOf(textfieldFüllst.getText());
  System.out.println("txt"+glas.vollesGlas); SliFüllstand.setValue(glas.vollesGlas);
  Glasbeschreibung();
    }
    @FXML void Glasbeschreibung(){MyGlas glas =new MyGlas();
        if (glas.vollesGlas==250){
            Kommentar.setText("Hey das ist teurer Wisky! Nichts verschütten!!");}
            else if(glas.vollesGlas>=125){Kommentar.setText("da kann noch was rein!!");}
            else if(glas.vollesGlas<125) {Kommentar.setText("du willst mich wohl abzocken!!");}
        }
    }
Ich habe ja jetzt sozusagen in zwei Projekten das selbe geschrieben. Kann es sein das sich jetzt;obwohl ich es ja jeweils in einer anderen Package habe; die beiden sich austauschen obwohl eines als public und das andere in privat deklariert ist?
 
T

Trjavnamen

Bekanntes Mitglied
Witziger weise wird mir jetzt natürlich auch im SamplerController meines ersten Versuchs(alle Setter Getter in SampleController kopiert) alle Felder (variablenNamen) bei this. angezeigt. Und ich kann sie mit this.XXX=(neuerwert) verändern und in jeder Methode mit this.xxx rechnen und in Textfelder und controlls ausgeben
 
Zuletzt bearbeitet:
kneitzel

kneitzel

Top Contributor
Mir wird es langsam peinlich überhaupt zu fragen.
Generell muss es Dir nicht peinlich sein. Und falls wir irgendwie ungeduldig werden, dann nimm das bloss nicht persönlich. Wenn wir Deine Fragen nicht beantworten wollten oder so, dann würden wir das sein lassen. Wir (oder zumindest ich) habe nur gewisse Probleme, zu verstehen, an welcher Stelle genau man bei Deinen Verständnis Problemen ansetzen muss.

Daher einfach weiter fragen und vielleicht schafft ja jemand, die richtigen Worte zu finden.

Java:
public class SampleController {
    MyGlas glas = new MyGlas();

Das sieht schon sehr gut aus. Damit hat Dein Controller eine Instanzvariable, in der eine MyGlas Instanz referenziert wird und es ist sicher gestellt, dass dein Controller direkt eine Instanz von MyGlas bekommt.

Damit hast Du Zugriff auf die Methoden von MyGlass, also in Deinem Beispiel z.b. das getvollesGlas().

Java:
    @FXML void onActiontextfieldFüllst(ActionEvent event) {
        MyGlas glas =new MyGlas();
        glas.vollesGlas=Double.valueOf(textfieldFüllst.getText());
        System.out.println("txt"+glas.vollesGlas); SliFüllstand.setValue(glas.vollesGlas);
        Glasbeschreibung();
    }

Erst einmal habe ich die Formatierung angepasst. Du solltest immer nur ein Befehl pro Zeile haben und das richtig einrücken. Entwicklungsumgebungen sollten dies auch automatisch so anbieten. Aber das nur am Rande. Zum Code selbst einmal:

Dies sieht so erst einmal nicht ganz richtig aus. In der ersten Zeile erzeugst Du eine lokale Variable glas. Diese "versteckt" nun die Instanzvariable, die Du in der Instanz hast. Dadurch greifst Du in den folgenden Zeilen auf die lokale Variable zu.

(Das Problem hast Du natürlich bei anderen Methoden auch - ich habe nur eben die zwei Methoden einmal heraus gegriffen.)

Das ist etwas, das Du vermutlich nicht willst.

Java:
    @FXML void Glasbeschreibung(){
        MyGlas glas =new MyGlas();
        if (glas.vollesGlas==250){
            Kommentar.setText("Hey das ist teurer Wisky! Nichts verschütten!!");}
            else if(glas.vollesGlas>=125){Kommentar.setText("da kann noch was rein!!");}
            else if(glas.vollesGlas<125) {Kommentar.setText("du willst mich wohl abzocken!!");}
        }
    }
Hier ist das gleiche Problem (lokale Variable glas). Der Code aus dem if Block dürfte somit nie ausgeführt werden, denn Du erzeugst ja eine neue Instanz von MyGlas() und da wird der Wert auf 0.1 gesetzt - damit ist der Wert nie 250.

In beiden Methoden einfach das
MyGlas glas =new MyGlas();
löschen. Dann hast Du keine lokale Variable mehr sondern greifst auf die Instanzvariable zu.
 
B

Barista

Top Contributor
Um meiner Frage nochmals mit einem eifacherem Beispiel darzulegen habe ich das mit einem Getter Setter geschrieben.
Versuch eventuell erst mal Deine Fragen zu Member-Zugriff mit einem einfachen GUI-freien Java-Programm (main-Methode) zu klären.
Wahrscheinlich wird es im Kontext JavaFx zu kompliziert.
 
T

Trjavnamen

Bekanntes Mitglied
Nochmals die ersten drei Codebeispiele von "Nochmals gefragt" stehen alle in einem JavafxOrdner unter scr und applicationZ.
die nächsten beiden code stehen in einem andern JavafxOrdner unter applicationY und die Main und Sample sind dorthin copiert worden somit wird für die Main die Package automatisch geändert. Und natürlich per Hand der packagename in der Sample datei geändert. Anstatt uhrsprünlich 3 Dateien stehen jetzt 4 Dateien drin. Um also in applikationY im SampleController MyGlas zu verwenden muß ich MyGlas instanzieren. Laut der allgemeinen Beschreibungen tut man das um die klasse so zu verstecken.(so habe ich das verstanden) die Instanzierte KLasse soll nach Beschreibung die selben Eigenschaften besitzen wie die originale Klasse. Also müsste man den/die werte mit this.xxx in der instanzierten KLasse ändern können was aber nicht funtioniert. Auf this. werden nur die set(XXXfelder) und die get(XXXfelder) angezeigt und das nur wenn1. import steht und in jeder Methode diese Instanz erzeugt wird. In den Events des SampleController habe ich eine Methode die auf ein Event reagiert. Unter applicationZ reicht lediglich thisXXX= Integer.valueOff(xxxfeldname). und in den anderen Methoden nur der Aufruf des(wertes) XXX um ihn für berechnungen bzw. zum setzen zu benutzen.
Unter applikationY geht das nicht. UNd nur das setxxx nimmt einen Wet an den man innerhalb der Methode verwenden kann. Um andere Wete zur berechnung heranzuziehen Muß man in der entsprechenden Event den Wert dort erstmal in das FXML Dokument/Fenster mit: xxx.setText()setzen
damit man es in der nächsten Methode mit: XXX =Integer.valueoff (xxx.getText() wieder aufzurufen was natürlich einen Speicher mit lauter Instanzen des FeldesXXX mit dem selben Inhalt bedeutet. Je mehr Instanzen desto schwerer wird es neue Instanzen zu erzeugen und aufrecht zu erhalten.
Und meine Fragerei sollte das Problem lösen. Die angebotenen Lösungen waren Lösungen für wiederaufrufbarkeit eines Instanzierten Wertes.Wenn ich aber 20 Werte für eine Berechnung in der nächsten Methode brauche ist das alles andere als praktisch oder?
 
temi

temi

Top Contributor
Um also in applikationY im SampleController MyGlas zu verwenden muß ich MyGlas instanzieren. Laut der allgemeinen Beschreibungen tut man das um die klasse so zu verstecken.
Um eine Klasse verwenden zu können, muss man sie grundsätzlich immer instantiieren.

Außer es ist static im Spiel, was aber nicht der Fall sein sollte, weil es in der Regel nicht sinnvoll ist.

Du solltest ganz ganz dringend die Finger von JavaFx lassen, bevor du nicht die Grundlagen richtig verinnerlicht hast.
 
Zuletzt bearbeitet:
temi

temi

Top Contributor
Hier nochmal das Beispiel von oben, um ein paar Methoden erweitert.

Java:
// Klasse mit einem Integerwert als Instanzvariable
class Foo {

    private int value = 42;

    public int getValue() {
        return value;
    }

    public void add(int value) {
        this.value += value; // "this.value" ist notwendig, weil der Parameter "value" die Instanzvariable "value" verdeckt
    }
}

// Klasse mit einem Foo als Instanzvariable
class Bar {

    private Foo foo = new Foo();

    public foo getFoo() {
        return foo;
    }

    public void doSomethingWithFoo() {
        foo.add(5); // ruft eine Methode der Instanz auf. "this" ist hier nicht notwendig, weil eindeutig ist, dass die Variable "foo" gemeint ist.
    }
}

// Zugriff auf die Instanzvariablen
class Main {

    public static void main(String[] args) {

        Bar bar = new Bar();

        Foo foo = bar.getFoo();

        System.out.println(foo.getValue()); // 42
   
        bar.doSomethingWithFoo();
   
        System.out.println(foo.getValue()); // 47
    }
}

Falls du daran etwas nicht verstehst, dann stelle eine Frage zu genau diesem Beispiel.
 
Zuletzt bearbeitet:
temi

temi

Top Contributor
Hier dein Code auf das Wesentliche gekürzt:
Java:
public class SampleController {
    private MyGlas glas = new MyGlas(); // Instanzvariable mit dem Namen "glas"

    @FXML
    void onMoClifüllstand(MouseEvent event) {
        glas.vollesGlas =  SliFüllstand.getValue(); // Zuweisung an eine öffentliche Variable der Instanz von MyGlas
        System.out.println(glas.vollesGlas);
    }
}

Funktioniert das? Falls nein, wie lautet die Fehlermeldung?

ich kann kein this.vollesGlas benutzen

Natürlich kannst du das nicht. Die Klasse SampleController besitzt keine öffentliche Instanzvariable mit diesem Namen. Die Variable gehört zur Klasse MyGlas und "this" bezieht sich immer auf die Klasse in der es verwendet wird. In diesem Fall "SampleController".
 
Zuletzt bearbeitet:
T

Trjavnamen

Bekanntes Mitglied
Das Versteckspiel funktioniert so?
Java:
public class SampleController {
    private MyGlas glas = new MyGlas(); // habe ich damit die Klasse versteckt? obwol die klasse MyGlas
    //komnplett public ist.Denn wenn ich dort alles private mache meckert Eclipse
    //was wohl mein Uhrsprüglicher Fehler ist.
    @FXML
    void onMoClifüllstand(MouseEvent event) {//MyGlas glas = new MyGlas(); vorher stand das hier
        //weil mein Eclipse gemeckert hatte und ich die folge zeile so nicht schreiben konnte
        glas.vollesGlas =  SliFüllstand.getValue(); // Zuweisung an einer deshalb nicht öffentliche Variables ondern einer weiteren neuen Instanz von MyGlas
        System.out.println(glas.vollesGlas);//hier wurde nur der Wert ausgedruckt der
        //innerhalb dieser Schleife produziert wurde. dieser Wert kann dann in anderen Methoden nicht benutzt werden wenn man nicht eine Referenz gebildet hat.
    }
}
 
Zuletzt bearbeitet:
T

Trjavnamen

Bekanntes Mitglied
Java:
  @FXML
    void onMoClifüllstand(MouseEvent event) {//ohne MyGlas glas = new MyGlas(); und aber der externen Classe public My Glass
        glas.vollesGlas =  SliFüllstand.getValue(); //ist diese Zeile dann synonym für this.vollesGlas
        System.out.println(glas.vollesGlas);//der Wert wird ausgedruckt der
        //in dieser Schleife produziert wurde. Dieser Wert kann dann in anderen Methoden benutzt werden. Eine Referenz ist nicht notwendig.
    }
 
temi

temi

Top Contributor
ist diese Zeile dann synonym für this.vollesGlas
Nein. Es ist einfach die Instanzvariable "glas" der Klasse SampleController. Im weiteren auf die Variable "vollesGlas" die zu MyGlas gehört.
Java:
class Glas {
    double vollesGlas;

    void doSomething() {
        this.vollesGlas = 1.0; // "this" bezieht sich auf die Klasse Glas und deren Variable "vollesGlas"
        // Es geht also um die Instanzvariable "vollesGlas" in der Instanz der Klasse Glas, in der dieser Code ausgeführt wird.
    }
}

class Foo {
    Glas glas = new Glas();

    void doSomething() {
        this.glas.vollesGlas = 1.0; // "this" bezieht sich auf die Klasse Foo. Im weiteren auf die Variable "glas" und deren Variable "vollesGlas"
        // Es geht also um die Instanzvariable "glas" in der Instanz der Klasse Foo, in der dieser Code ausgeführt wird.
    }
}

"this" bezieht sich immer auf die aktuelle Instanz der Klasse in der es verwendet wird. Mir fällt gerade nichts ein, wie man das besser erklären kann.

Vielleicht auch mal hier nachlesen: https://openbook.rheinwerk-verlag.de/javainsel/05_001.html#i05_04
 
Zuletzt bearbeitet:
temi

temi

Top Contributor
Denn wenn ich dort alles private mache meckert Eclipse
Richtig wäre es, in MyGlas die Instanzvariablen "private" zu machen und öffentliche Getter (und ggf. Setter) für den Zugriff auf diese zu verwenden.

Dann lautet der Zugriff nicht mehr glas.vollesGlas = 1.0; sondern glas.setVollesGlas(1.0);.

Generell ist übrigens die Wahl der Namens der Instanzvariablen etwas seltsam. Bei einem Glas würde man eher so etwas erwarten:
Java:
public class Glas {
   
    private double inhalt = 0;
   
    // Konstruktor, Getter, Setter, usw.
}
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Verständnisfrage: Objekt erzeugen u. zuweisen Java Basics - Anfänger-Themen 16
F Verständnisfrage Objekt instanzierung / Polymorphie Java Basics - Anfänger-Themen 10
J Verständnisfrage: Konstruktorproblem bei statischem Objekt Java Basics - Anfänger-Themen 4
K Verständnisfrage Server/Client BufferedReader, PrintWriter Java Basics - Anfänger-Themen 2
Der Grütz Verständnisfrage zu Übung aus Java Kurs - Schaltjahr bestimmen Java Basics - Anfänger-Themen 2
J Verständnisfrage zu throws neben Funktionen Java Basics - Anfänger-Themen 2
TimoN11 Verständnisfrage bei Aufgabe Java Basics - Anfänger-Themen 2
P Verständnisfrage zum Mapping Java Basics - Anfänger-Themen 3
M Java Version Verständnisfrage Java Basics - Anfänger-Themen 16
M Verständnisfrage zu eine Online Aufgabe Java Basics - Anfänger-Themen 7
T Verständnisfrage zur Konsolenausgabe Java Basics - Anfänger-Themen 2
M Verständnisfrage zu Generics Java Basics - Anfänger-Themen 7
D Verständnisfrage zur Modellierung einer HDD Java Basics - Anfänger-Themen 17
W Methoden Verständnisfrage Vererbung von Methoden Java Basics - Anfänger-Themen 14
S Verständnisfrage lokale Ordnerpfade Java Basics - Anfänger-Themen 1
T Verständnisfrage zu Interfaces Java Basics - Anfänger-Themen 7
J Java Starthilfe Verständnisfrage Aufgabe Java Basics - Anfänger-Themen 2
O Anfänger, Verständnisfrage Java Basics - Anfänger-Themen 3
C Verständnisfrage zu Modulo Java Basics - Anfänger-Themen 6
C Verständnisfrage bezüglich der Do-While Schleife Java Basics - Anfänger-Themen 9
L Verständnisfrage - Speicherabbild Java Basics - Anfänger-Themen 4
melly_ Verständnisfrage zu args Java Basics - Anfänger-Themen 3
A Variablen Verständnisfrage bzgl. Variablen/Referenzen Java Basics - Anfänger-Themen 3
K Verständnisfrage eines Abschnitts Java Basics - Anfänger-Themen 6
K Rekursion Verständnisfrage Java Basics - Anfänger-Themen 19
S Modell View Controller Verständnisfrage Java Basics - Anfänger-Themen 24
J Superklassen Konstruktor Verständnisfrage Java Basics - Anfänger-Themen 1
JavaTalksToMe Erste Schritte Println-Frage (Verständnisfrage) Java Basics - Anfänger-Themen 1
R Verständnisfrage zu Objekten u. Übergabeparameter Java Basics - Anfänger-Themen 8
G Collections Verständnisfrage zur For-Each-Schleife Java Basics - Anfänger-Themen 7
b1ck Interface Verständnisfrage zum GUI mit "swing" Java Basics - Anfänger-Themen 1
kilopack15 Verständnisfrage zur Verwendung von notify() bei Threads Java Basics - Anfänger-Themen 2
G Verständnisfrage zu for-each Java Basics - Anfänger-Themen 4
DontFeedTheTroll Erste Schritte Verständnisfrage zu If-Anweisung Java Basics - Anfänger-Themen 7
K Rekursion-Verständnisfrage Java Basics - Anfänger-Themen 4
J Java Server Pages - Verständnisfrage Java Basics - Anfänger-Themen 2
Z Verständnisfrage Anfängerprogramm Java Basics - Anfänger-Themen 0
T Verständnisfrage Zuweisungs-/arithmet. Operatoren Java Basics - Anfänger-Themen 2
G Methoden Verständnisfrage zur Methoden Java Basics - Anfänger-Themen 7
LionAge Kapselung, Verständnisfrage zur Objekterzeugung Java Basics - Anfänger-Themen 4
Z Verständnisfrage zum Multithreading Java Basics - Anfänger-Themen 3
R OOP / Verständnisfrage zum Konstuktor (siehe code) Java Basics - Anfänger-Themen 7
gamebreiti Verständnisfrage zu contains() Java Basics - Anfänger-Themen 10
A Verständnisfrage - Koordinatenumrechnung Java Basics - Anfänger-Themen 9
J Erste Schritte Verständnisfrage im Bezug auf das (richtige) Programmieren Java Basics - Anfänger-Themen 5
M Verständnisfrage zu JUnit Tests und private Methoden Java Basics - Anfänger-Themen 3
H Verständnisfrage Array Java Basics - Anfänger-Themen 2
I Interface Verständnisfrage Interfaces (Bsp.: Enumeration) Java Basics - Anfänger-Themen 2
I Verständnisfrage zu BridgePattern, Verwedung von super() Java Basics - Anfänger-Themen 4
P Verständnisfrage Java Basics - Anfänger-Themen 3
kaoZ Best Practice Verständnisfrage Listener bei lokalen Objekten Java Basics - Anfänger-Themen 8
D Input/Output Verständnisfrage Verzeichnis-/Dateiliste erstellen & Dateikonvertierung Java Basics - Anfänger-Themen 1
S Verständnisfrage zu Anweisungen und deren Wirkung Java Basics - Anfänger-Themen 7
H Verständnisfrage für oder Anweisung Java Basics - Anfänger-Themen 8
E Threads Verständnisfrage bzgl. Threads und Sleep Java Basics - Anfänger-Themen 2
T Erste Schritte Verständnisfrage: Getter und Setter Methoden Java Basics - Anfänger-Themen 3
H Verständnisfrage zu Java-Ausgabe Java Basics - Anfänger-Themen 3
S Verständnisfrage Java Basics - Anfänger-Themen 2
N Verständnisfrage Code Java Basics - Anfänger-Themen 8
B Verständnisfrage Java Basics - Anfänger-Themen 2
H Interface Comparable Verständnisfrage Java Basics - Anfänger-Themen 6
B Verständnisfrage Codezeile Java Basics - Anfänger-Themen 7
B Verständnisfrage:Beispielprogramm BlueJ Java Basics - Anfänger-Themen 3
M Kurze Verständnisfrage zu einer Java Aufgabe Java Basics - Anfänger-Themen 12
K Erste Schritte Kleine Verständnisfrage Java Basics - Anfänger-Themen 12
R Verständnisfrage Referenzvariablen in array Java Basics - Anfänger-Themen 3
I OOP Verständnisfrage zu Singelton Pattern Java Basics - Anfänger-Themen 21
M Verständnisfrage zu JPanel Java Basics - Anfänger-Themen 3
S Verständnisfrage: Exception Gebrauch Java Basics - Anfänger-Themen 2
R Verständnisfrage NPE Java Basics - Anfänger-Themen 5
M Verständnisfrage zur Zahlenumwandlung (Dezimal-->Dual) Java Basics - Anfänger-Themen 25
P Java Objekte - Verständnisfrage Java Basics - Anfänger-Themen 9
N Verständnisfrage zu folgendem Programm Java Basics - Anfänger-Themen 2
L Grundlegende Verständnisfrage Hasmap Referenzen Java Basics - Anfänger-Themen 4
S Verständnisfrage zu Interfaces Java Basics - Anfänger-Themen 2
VfL_Freak Verständnisfrage zur Klasse "TIMER" Java Basics - Anfänger-Themen 7
P Verständnisfrage zu Instanzen/Objekten Java Basics - Anfänger-Themen 9
M Verständnisfrage im Umgang mit Map Java Basics - Anfänger-Themen 10
K Verständnisfrage zu int.length und String.length() Java Basics - Anfänger-Themen 4
G 2D Array gleichsetzen verständnisfrage Java Basics - Anfänger-Themen 2
M kleine und einfache Verständnisfrage Java Basics - Anfänger-Themen 3
N verständnisfrage java.util.Calendar Java Basics - Anfänger-Themen 4
G Datentypen bits, bytes, chars - Verständnisfrage Java Basics - Anfänger-Themen 5
E Verständnisfrage zu Shutdownhook Java Basics - Anfänger-Themen 5
D Verständnisfrage: Java und MySql Java Basics - Anfänger-Themen 3
F Rekursion Verständnisfrage Java Basics - Anfänger-Themen 6
A Exception Verständnisfrage: Exceptions während, einer Statischenzuweisung abfangen Java Basics - Anfänger-Themen 10
Z Comparator Verständnisfrage Java Basics - Anfänger-Themen 5
D Verständnisfrage zu Funktionen Java Basics - Anfänger-Themen 6
H Verständnisfrage Persistenz Java Basics - Anfänger-Themen 10
neurox Verständnisfrage zu Threads Java Basics - Anfänger-Themen 4
E Verständnisfrage Syntax: frame.getContentPane().add(button) Java Basics - Anfänger-Themen 11
Y Kleine Verständnisfrage zum Thema dynamische Polymorphie Java Basics - Anfänger-Themen 3
I Verständnisfrage zum Thema APIs Java Basics - Anfänger-Themen 6
S Generic: Verständnisfrage Java Basics - Anfänger-Themen 2
hdi kleine Verständnisfrage lokale + Member Variable Java Basics - Anfänger-Themen 10
G [Verständnisfrage] flush() und close() Java Basics - Anfänger-Themen 6
A Verständnisfrage Sekunden/Tage Umrechnung Java Basics - Anfänger-Themen 3
hdi Verständnisfrage zu Zuweisung + Post-Inkrement Java Basics - Anfänger-Themen 3
hdi Verständnisfrage Java Basics - Anfänger-Themen 7

Ähnliche Java Themen


Oben