Klassen Variabel aus Schleife übergeben

19Beat99

Mitglied
Hallo zusammen
Ich versuche den Wert in der Schleife in die Klasse Start() zu übergeben. Jedoch wird der Wert erst übergeben wenn die Schleife fertig durchgelaufen ist. Gibt es eine Möglichkeit, dass der Wert jedes Mal übergeben wird wenn die Schleife einmal durchläuft. Also so dass das Ergebnis schlussentlich 1, 2, 3, 4 , 5... ist?

Vielen Dank für eure Hilfe









Java:
public class Start {
    
    
    
    
    public static void main(String[] args) {
        
    test x = new test();
System.out.println(x.x);
    
        
        
            
        
    }

}
Java:
public class test {

    int x=0;
    public test() {
        
    while(x<20) {   
    
        x++;
        
    }}
    
    
    
    
}
 

mihe7

Top Contributor
Gibt es eine Möglichkeit, dass der Wert jedes Mal übergeben wird wenn die Schleife einmal durchläuft.
Sicher, dazu musst Du nur genau das machen, was Du schreibst: übergeben (nicht Dich, den Wert ;)) Dazu musst Du in der Schleife eine Methode aufrufen, die den Wert entgegennimmt:
Java:
public class Start {
    
  
    public static void main(String[] args) {      
        Test x = new Test();
    }

    public static void zeige(int wert) {
        System.out.println(wert);
    }
}

Java:
public class Test { // Namen von Typen in UpperCamelCase!
    int x=0;

    public Test() {        
        while(x<20) {   
            x++;
            Start.zeige(x);        
        }
    }
}

Ein Hinweis: damit hast Du etwas, was man eine zyklische Abhängigkeit nennt: Start kennt Test und Test kennt Start. Das will man unbedingt vermeiden. Hierfür existieren verschiedene Möglichkeiten, eine davon besteht darin, die Methode zeige() in eine separate Klasse zu verschieben.
 

19Beat99

Mitglied
Vielen Dank für die schnelle Hilfe.

Im Zusammenhang mit dieser Frage ist gerade eine weitere aufgetaucht.

Wie muss ich es programmieren, wenn ich die Variable wert in der ganzen Klasse Start verwenden will. Beispielsweise wenn ich diese Variable in der main Methode noch einmal verwenden will. Wenn ich es so programmiere wird wieder nur der Wert 20 ausgegeben und nicht 1, 2, 3, 4.....
Code:
/**
*
* @author Beat
*
*/
public class Start {
   
    static int Wert;
   
   
    public static void main(String[] args) {
       
    new test();
   
        System.out.println(Wert);
       
           
       
    }

public static void zeige(int wert) {
       
    Wert=wert;
       
    }
}
Code:
public class test {
Start s = new Start();
    int x=0;
    public test() {
       
    while(x<20) {  
   
        x++;
       
        Start.zeige(x);
    }}
   
   
   
   
}
Sicher, dazu musst Du nur genau das machen, was Du schreibst: übergeben (nicht Dich, den Wert ;)) Dazu musst Du in der Schleife eine Methode aufrufen, die den Wert entgegennimmt:
Java:
public class Start {
  

    public static void main(String[] args) {    
        Test x = new Test();
    }

    public static void zeige(int wert) {
        System.out.println(wert);
    }
}

Java:
public class Test { // Namen von Typen in UpperCamelCase!
    int x=0;

    public Test() {      
        while(x<20) { 
            x++;
            Start.zeige(x);      
        }
    }
}

Ein Hinweis: damit hast Du etwas, was man eine zyklische Abhängigkeit nennt: Start kennt Test und Test kennt Start. Das will man unbedingt vermeiden. Hierfür existieren verschiedene Möglichkeiten, eine davon besteht darin, die Methode zeige() in eine separate Klasse zu verschieben.
 

mihe7

Top Contributor
Wie muss ich es programmieren, wenn ich die Variable wert in der ganzen Klasse Start verwenden will.
Das hast Du bereits.

Beispielsweise wenn ich diese Variable in der main Methode noch einmal verwenden will. Wenn ich es so programmiere wird wieder nur der Wert 20 ausgegeben und nicht 1, 2, 3, 4.....
Ja, das Programm läuft sequentiell ab. Der Aufruf von new test(); kehrt erst zurück, wenn die Schleife abgearbeitet ist.
 

temi

Top Contributor
Wie muss ich es programmieren, wenn ich die Variable wert in der ganzen Klasse Start verwenden will.
Die Variable wert kann nur genau einen Integerwert aufnehmen, sobald du diesen mit einem neuen Wert überschreibst, ist der alte Wert verloren. Je nachdem, was du erreichen möchtest gibt es verschiedene Möglichkeiten:

Du könntest ein Array von Integerwerten verwenden, dass die zwanzig Werte aufnehmen kann int[] werte = new int[20];

Wenn es dir nur um die Ausgabe geht:

- dann könntest du jeden einzelnen Wert in der Schleife ausgeben und erst danach mit einem neuen Wert überschreiben.

- oder du weist die einzelnen Werte in der Schleife einzeln einer Variablen vom Typ String zu und gibst diese am Ende aus.
Java:
String out = "";
while(x<20) {  
    x++;
    out = out + x + ", ";  
}
 

19Beat99

Mitglied
Die Variable wert kann nur genau einen Integerwert aufnehmen, sobald du diesen mit einem neuen Wert überschreibst, ist der alte Wert verloren. Je nachdem, was du erreichen möchtest gibt es verschiedene Möglichkeiten:

Du könntest ein Array von Integerwerten verwenden, dass die zwanzig Werte aufnehmen kann int[] werte = new int[20];

Wenn es dir nur um die Ausgabe geht:

- dann könntest du jeden einzelnen Wert in der Schleife ausgeben und erst danach mit einem neuen Wert überschreiben.

- oder du weist die einzelnen Werte in der Schleife einzeln einer Variablen vom Typ String zu und gibst diese am Ende aus.
Java:
String out = "";
while(x<20) { 
    x++;
    out = out + x + ", "; 
}





Also mein Ziel ist es, das Männchen in einer fliesenden Bewegung nach oben zu bewegen. Daraus will ich schlussendlich einen Sprung programmieren.

Mein momentanes Problem ist nun, dass die Klasse Jump erst ganz durchläuft und dann sich das Männchen nach oben teleportiert. Ich will jedoch eine fließende Bewegung.

Hat mir jemand einen Tipp wie ich das bewerkstelligen kann?




Code:
package pack1;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;

import javax.swing.JLabel;

public class Label extends JLabel{
    
    
    public void paintComponent (Graphics g) {
        
        super.paintComponents(g);
        
        Graphics2D g2d = (Graphics2D)g;
        
    
        g2d.drawImage(var.img2,var.X_Figur,Jump.Y_Figur,null); // Männchen
        
        
        
        repaint();
        
    }
    
}
Code:
package pack1;

public class Jump implements Runnable{

    static int Y_Figur=430;
    
    
    
    
    
    @Override
    public void run() {

        for(int x=0;x<20;x++) {
            
            
            
            try {
                
                
                
                
                Y_Figur-=1;
                
                Thread.sleep(100);
                
            } catch (InterruptedException e) {
                
                e.printStackTrace();
            }
            
            
            
            
            
            }
            
        
            
                                        
        }}
 

mihe7

Top Contributor
Also mein Ziel ist es, das Männchen in einer fliesenden Bewegung nach oben zu bewegen. Daraus will ich schlussendlich einen Sprung programmieren.
GUI-Programmierung und Anfänger sind Dinge, die naturgemäß nicht zusammenpassen. Dein Code ist doch mit Sicherheit von diesem Tutorial, das zeigt, wie man es nicht machen soll, oder? YouTube - Pong u. ä.

Hat mir jemand einen Tipp wie ich das bewerkstelligen kann?
Ja, lerne den Spaß von Grund auf und vor allem: vergiss dieses Tutorial.
 

19Beat99

Mitglied
GUI-Programmierung und Anfänger sind Dinge, die naturgemäß nicht zusammenpassen. Dein Code ist doch mit Sicherheit von diesem Tutorial, das zeigt, wie man es nicht machen soll, oder? YouTube - Pong u. ä.


Ja, lerne den Spaß von Grund auf und vor allem: vergiss dieses Tutorial.

Ich habe mich an Tutorials orientiert. Da ich nie gelernt habe zu programmieren versuche ich mir dieses Wissen unter anderem mit Tutorials dieses Wissen selbst anzueignen. Falls du mir irgendwelche Tipps hast wie ich das effizienter und besser machen kann wäre ich dir sehr dankbar.
 

mihe7

Top Contributor
Es gibt alles mögliche an Material. Kurse, Bücher, Dokumentation usw. Es gibt auch Youtube Tutorials, die den Namen auch verdienen. Aber dieses Pong-Zeug ist das Übelste, das man sich als Anfänger antun kann (und leider findet die irgendwie jeder).

Die Java Tutorials von Oracle bieten m. E. keinen schlechten Einstieg https://docs.oracle.com/javase/tutorial/index.html - allerdings kann ich das nicht wirklich beurteilen, weil ich aus der C/C++-Ecke kam und mir somit Sprache und Konzepte weitestgehend bekannt waren. Nutze mal die Suchfunktion des Forums, hier werden immer wieder mal Tipps zu Büchern abgegeben. Du bist ja nicht der einzige, der mit Java anfängt :)

Egal, für welchen Weg Du Dich entscheidest, wichtig sind zwei Dinge:

1. learning by doing - d. h. auch, dass man einfach mal mit dem Debugger durchgeht und sich anschaut, wie ein Programm Schritt für Schritt abläuft. Man muss ja ein Gefühl dafür entwickeln, was da eigentlich passiert.
2. kleine Schritte. Es bringt nichts, sich zu überfordern. Das geht, wie Du an der GUI siehst, recht schnell.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Ist ein string ein erlaubter variabel name? Allgemeine Java-Themen 2
D Swing MaskFormatter Maske Variabel anpassen Allgemeine Java-Themen 2
M Warten bis Variabel nicht null ist Allgemeine Java-Themen 18
T Drucken von variabel langen Listen (es kommen nur leere Seiten raus) Allgemeine Java-Themen 2
sliwalker Designfrage: Dateninhalte in Komponenten variabel halten Allgemeine Java-Themen 4
Z variabel Komponenten erstellen oder Compie Allgemeine Java-Themen 4
T Verschachtelte For-Schleife gibt falschen Wert zurück, Abbruchbedingung evtl. falsch? Allgemeine Java-Themen 9
A verschachtelte for-Schleife in einen Stream umwandeln? Allgemeine Java-Themen 4
A Wie schreibe ich eine For-Schleife in ein Stream API um? Allgemeine Java-Themen 12
W While Schleife funktioniert nicht ganz Allgemeine Java-Themen 4
H do-while Schleife funktioniert nicht wie ich es möchte Allgemeine Java-Themen 7
MangoTango Operatoren while-Schleife für Potenz Allgemeine Java-Themen 3
berserkerdq2 Wie synchronisiere ich eine for-Schleife Allgemeine Java-Themen 12
N Warum wird die For Schleife nicht betreten Allgemeine Java-Themen 4
M Schleife für einen TicTacToe Computer Allgemeine Java-Themen 5
Lukas2904 Schleife mit ansteuerung einer Klasse Allgemeine Java-Themen 5
A For-Schleife Allgemeine Java-Themen 5
J Algorithmen Analyse einer Schleife Allgemeine Java-Themen 6
D "Automatisierte", variable verschachtele for-Schleife Allgemeine Java-Themen 9
F Schleife funktioniert nicht richtig Allgemeine Java-Themen 13
K For-Schleife <> oder != Operator verwenden? Allgemeine Java-Themen 2
J Einen Thread in einer Schleife Allgemeine Java-Themen 2
D While-Schleife - if Zweig unterbrechen Allgemeine Java-Themen 1
F Zweifache For-Schleife Allgemeine Java-Themen 6
P Operatoren Problem mit Zähler in recursiver Schleife Allgemeine Java-Themen 2
T String aus While Schleife für ganze Klasse sichtbar machen Allgemeine Java-Themen 5
M While-Schleife schneller, solange die Abbruchbedingung nicht vom Schleifeninneren abhängt Allgemeine Java-Themen 3
S Variablen String[] Array per schleife in int[] einlesen Allgemeine Java-Themen 8
D Methoden Buttons erscheinen doppelt nach Wiederholung in Schleife Allgemeine Java-Themen 1
RalleYTN Problem bei Schleife die durch einen 2D raum iterieren soll Allgemeine Java-Themen 1
T for - Schleife Allgemeine Java-Themen 1
J While Schleife ausführen bis Zahl = X Allgemeine Java-Themen 19
R Komplizierte Schleife Allgemeine Java-Themen 1
Q For-Schleife in String-Value Allgemeine Java-Themen 3
F Abstrakte Klasse in "For each" Schleife Allgemeine Java-Themen 1
F for-Schleife auf Kommandoebene ausgeben Allgemeine Java-Themen 9
P Input/Output java.util.Scanner in einer Schleife und Exception-Behandlung: Einlesen einer Zahl Allgemeine Java-Themen 4
P Erweiterte For Schleife Allgemeine Java-Themen 7
D Arraylist/For Schleife/Scanner Allgemeine Java-Themen 30
Y automatisierte for Schleife Allgemeine Java-Themen 13
B For schleife und weiter? Allgemeine Java-Themen 8
D Probleme bei for-Schleife Allgemeine Java-Themen 4
L einfache Verzinsung mit for-Schleife & Ausschluss von Werten beim Einlesen Allgemeine Java-Themen 5
N Frage zur while-Schleife Allgemeine Java-Themen 18
M for Schleife mit Swing Button abbrechen Allgemeine Java-Themen 7
M PdfPTable per for-Schleife befüllen Allgemeine Java-Themen 3
F for-Schleife mit : Allgemeine Java-Themen 5
S Pattern.Match Suche: For Schleife einbinden und in Liste schreiben Allgemeine Java-Themen 3
W Problem mit Index in einer for-Schleife Allgemeine Java-Themen 8
A Collections Array-Elemente in ArrayList kopieren ohne Schleife Allgemeine Java-Themen 7
P Variablen Auf durch for-Schleife generierte JComboBox zugreifen Allgemeine Java-Themen 3
G while Schleife ausführen solange eine Taste gedrückt ist Allgemeine Java-Themen 14
F Foreach und for - Schleife Allgemeine Java-Themen 10
W Berechnung Durchschnitt mit Schleife Allgemeine Java-Themen 9
S for-Schleife, while-Schleife Problem Allgemeine Java-Themen 6
H Netbeans Warning bei Thread.sleep in Schleife Allgemeine Java-Themen 4
A java.lang.NullPointerException bei Schleife Allgemeine Java-Themen 3
S Erste Schritte Exception beendet Schleife nicht - Methode macht trotz throw weiter? Allgemeine Java-Themen 9
R while schleife auf 3 durchgänge beschränken Allgemeine Java-Themen 6
V anstatt thread.join() einfach while schleife? Allgemeine Java-Themen 8
x22 for-Schleife Allgemeine Java-Themen 76
S Text in for Schleife in Label einfügen Allgemeine Java-Themen 4
J Schleife mit : Allgemeine Java-Themen 18
S Klassen in einer Schleife durchlaufen Allgemeine Java-Themen 11
E Schleife wird nicht ausgeführt!!! Allgemeine Java-Themen 8
C Schleife mit leerem Anweisungsblock wird trotz erfüllter Bedingung nicht verlassen Allgemeine Java-Themen 9
S Do-While Schleife bricht nicht ab Allgemeine Java-Themen 3
S Erste Schritte if-Anweisung in for- oder while-schleife umwandeln Allgemeine Java-Themen 3
K CheckBox schleife Allgemeine Java-Themen 2
D Methoden Thread Schleife Status Allgemeine Java-Themen 7
J Verschiedene Klassen als "Object" in ArrayList und dann in for-Schleife erzeugen!? Allgemeine Java-Themen 2
R In einer for Schleife bei einem Substring anfangen, wo man davor aufgehört hat Allgemeine Java-Themen 6
T Rekursion mit While Schleife kombinieren? Allgemeine Java-Themen 4
D Sterne Muster mit einer Schleife Allgemeine Java-Themen 5
Dragonfire Code Konvention for-Schleife / return Allgemeine Java-Themen 15
hdi Detail-Frage zur for-Schleife Allgemeine Java-Themen 9
J Thread pausieren, lange while-Schleife Allgemeine Java-Themen 8
Q Variable aus Schleife/Switch benutzen Allgemeine Java-Themen 7
J Erweiterte For-Schleife mit Vector Allgemeine Java-Themen 5
C Geschachtelte For-Schleife: Äußere Schleife wird nur einmal durchlaufen!? Allgemeine Java-Themen 3
W While-ESC-Schleife funktioniert nicht Allgemeine Java-Themen 3
W return Collection mit schleife durchsuchen Allgemeine Java-Themen 10
H Threads.... ich will aus der While-Schleife raus Allgemeine Java-Themen 6
calzone Warum wird nicht aus der Schleife gesprungen ? Allgemeine Java-Themen 2
lacyuu Schleife hängt sich auf, wieso?? Allgemeine Java-Themen 2
ModellbahnerTT Problem: Schleife über Textdatei Allgemeine Java-Themen 5
S Wie gross ist die Laufzeit für diese Schleife?? Allgemeine Java-Themen 8
J Schachbrett mit for- oder while-Schleife Allgemeine Java-Themen 22
I For- Schleife falsch? Allgemeine Java-Themen 8
T Schleife kurzzeitig anhalten Allgemeine Java-Themen 5
V Problem in While-Schleife Allgemeine Java-Themen 3
Escorter Switch in der Schleife! Allgemeine Java-Themen 4
C Auswertung der for each schleife? Allgemeine Java-Themen 2
GilbertGrape foreach Schleife Allgemeine Java-Themen 12
J FOR-Schleife-Problem Allgemeine Java-Themen 10
G Schleife durch Button beenden Allgemeine Java-Themen 6
S Schleife funktioniert nicht Allgemeine Java-Themen 2
G Anonymen Buttons in for schleife ActionListener hinzufügen Allgemeine Java-Themen 5
T getParameter in while schleife Allgemeine Java-Themen 3
O while - Schleife unterbrechen mit break; Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben