Integer aus aus einer Klasse in andere speichern

MateMalte

Mitglied
Hey Ihr,

vielleicht klingt das jetzt richtig blöde, aber ich schreibe gerade ein kleines Programm, um einem auf Knopfdrucke eine zufällig generierte Persönlichkeit gibt.
Dazu gehören einiges an Eigenschaften und Angaben. Für den Anfang habe ich drei Klassen erstellt (dass muss auch so sein, um später weitere Funktionen hinzuzufügen):
Main (um alles zusammen zu führen), Person (Name, Vorname, ... ) und Zeit (Tag, Monat, Jahr, ... ).
Ich würde jetzt gerne für die erstellte Person einen Geburtstag als Attribut hinzufügen und diesen dann in Main abfragen.
Könnt Ihr mir dabei helfen? Ich kriege es irgendwie nicht hin.
Danke für Eure Zeit.
 

ocsme

Top Contributor
Hallo MateMalte,

du könntest in deiner Main Klasse über die Getter und Setter das Geburtstag abfragen :)
Das ganze sieht dann so ungefähr aus:
Java:
public class Person {
    
    String name, vorname;
    Zeit geb;
    
    Person(String name, String vorname) {
        this.name = name;
        this.vorname = vorname;
    }
    
    void setGeb(Zeit geb) {
        this.geb = geb;
    }
    
    Zeit getGeb() {
        return geb;
    }
    
    public String toString() {
        return name + " " + vorname + " " + geb;
    }

}

Java:
public class Zeit {
    
    int tag, monat, jahr;
    
    Zeit(int t, int m, int j) {
        tag = t;
        monat = m;
        jahr = j;
    }

    public String toString() {
        return tag + " " + monat + " " + jahr;
    }
}

Java:
public class Main {
    
    public static void main(String[] args) {
        
        Person test = new Person("Max", "Mustermann");
        test.setGeb(new Zeit(1,1,1999));
        System.out.println(test);
        
    }

}

Wenn du in deiner Zeit Klasse eine equals Methode hast kannst du auch in if-abfragen ermitteln wann jemand geboren wurde etc. Oder du schreibst dir einen Comparator dazu etc. Doch eine Klasse Zeit benötigst du doch so nicht es gibt doch in Java die Klasse Date
 

MateMalte

Mitglied
Hallo MateMalte,

du könntest in deiner Main Klasse über die Getter und Setter das Geburtstag abfragen :)
Das ganze sieht dann so ungefähr aus:
Java:
public class Person {
   
    String name, vorname;
    Zeit geb;
   
    Person(String name, String vorname) {
        this.name = name;
        this.vorname = vorname;
    }
   
    void setGeb(Zeit geb) {
        this.geb = geb;
    }
   
    Zeit getGeb() {
        return geb;
    }
   
    public String toString() {
        return name + " " + vorname + " " + geb;
    }

}

Java:
public class Zeit {
   
    int tag, monat, jahr;
   
    Zeit(int t, int m, int j) {
        tag = t;
        monat = m;
        jahr = j;
    }

    public String toString() {
        return tag + " " + monat + " " + jahr;
    }
}

Java:
public class Main {
   
    public static void main(String[] args) {
       
        Person test = new Person("Max", "Mustermann");
        test.setGeb(new Zeit(1,1,1999));
        System.out.println(test);
       
    }

}

Wenn du in deiner Zeit Klasse eine equals Methode hast kannst du auch in if-abfragen ermitteln wann jemand geboren wurde etc. Oder du schreibst dir einen Comparator dazu etc. Doch eine Klasse Zeit benötigst du doch so nicht es gibt doch in Java die Klasse Date
Und wie könnte ich das so ändern, dass das Datum aus der Zeit Klasse herraus erstellt wird?
 

fhoffmann

Top Contributor
Und wie könnte ich das so ändern, dass das Datum aus der Zeit Klasse herraus erstellt wird?
Woher soll die Zeit-Klasse den wissen, wann die Person geboren wurde?
Du musst schon von außen eine Instanz (ein Objekt) der Zeit-Klasse erzeugen.

Den Code von ocsme:
Java:
test.setGeb(new Zeit(1,1,1999));
kann man auch ausführlicher schreiben als:
Java:
Zeit geburtstag = new Zeit(1,1,1999);
test.setGeb(geburtstag);

Vielleicht solltest du uns mal deinen eigenen Code zeigen.
 

ocsme

Top Contributor
Vielleicht solltest du uns mal deinen eigenen Code zeigen.
Ja, das würde weiter Helfen :)
So ist es etwas im Trüben Fischen. Es ist aber wie @fhoffmann sagt du benötigst eine Instanz bzw. eine Referenz auf das Objekt um es ansprechen zu können und so weit ich dich verstanden habe möchtest du dies ja in der Main machen können.
Was du natürlich machen kannst ist für jede Person im Konstruktor eine Abfrage machen wann die Person geboren wurde und dann eben ein Zeit Objekt im Konstruktor erzeugen was dann im Personen Objekt enthalten ist.

Besser ist wenn du uns deinen Code einmal Zeigst :)
 

MateMalte

Mitglied
Java:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.*;;

public class Main extends Frame {
    //Textarea für die Ausgabe von Name, etc.
    private static TextArea textarea = new TextArea();
    //altern um einen Monat/ein Jahr
    private static JButton button = new JButton();
    private static JButton button2 = new JButton();
    //für Prozentangaben (Aussehen, Glücklichtkeit, Musikalisch, ... )
    private static JProgressBar progressbar = new JProgressBar();
    private static JProgressBar progressbar2 = new JProgressBar();
    private static JProgressBar progressbar3 = new JProgressBar();
    private static JProgressBar progressbar4 = new JProgressBar();
    private static JProgressBar progressbar5 = new JProgressBar();
    private static JProgressBar progressbar6 = new JProgressBar();
    private static JProgressBar progressbar7 = new JProgressBar();
   
    private static int TodesJahr;
    private int TodesMonat;
   
    private static Person person = new Person();
    private static Person vater = new Person();
    private static Person mutter = new Person();
    private static Zeit zeit = new Zeit();
   
    public Main() {
        super();
        addWindowListener (new WindowAdapter() {
            public void windowClosing(WindowEvent evt) { dispose(); }
        });
        int frameWidth = 750;
        int frameHeight = 750;
        setSize(frameWidth, frameHeight);
        Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
        int x = (d.width - getSize().width)/2;
        int y = (d.height - getSize().height)/2;
        setLocation(x,y);
        setTitle("InstLife");
        setResizable(false);
        Panel cp = new Panel(null);
        add(cp);
        textarea.setBounds(10, 10, 350, 100);
        textarea.setText("");
        textarea.setFocusable(false);
        cp.add(textarea);
        progressbar.setBounds(380, 10, 340, 15);
        progressbar.setValue(0);
        progressbar.setString("Glücklichkeit");
        progressbar.setStringPainted(true);
        cp.add(progressbar);
        progressbar2.setBounds(380, 30, 340, 15);
        progressbar2.setValue(0);
        progressbar2.setString("Aussehen");
        progressbar2.setStringPainted(true);
        cp.add(progressbar2);
        progressbar3.setBounds(380, 50, 340, 15);
        progressbar3.setValue(0);
        progressbar3.setString("Fitness");
        progressbar3.setStringPainted(true);
        cp.add(progressbar3);
        progressbar4.setBounds(380, 70, 340, 15);
        progressbar4.setValue(0);
        progressbar4.setString("Intelligenz");
        progressbar4.setStringPainted(true);
        cp.add(progressbar4);
        progressbar5.setBounds(380, 90, 340, 15);
        progressbar5.setValue(0);
        progressbar5.setString("Musikalisch");
        progressbar5.setStringPainted(true);
        cp.add(progressbar5);
        progressbar6.setBounds(380, 110, 340, 15);
        progressbar6.setValue(0);
        progressbar6.setString("Künstlerisch");
        progressbar6.setStringPainted(true);
        cp.add(progressbar6);
        progressbar7.setBounds(380, 130, 340, 15);
        progressbar7.setValue(0);
        progressbar7.setString("Sozial");
        progressbar7.setStringPainted(true);
        cp.add(progressbar7);
        button.setBounds(10, 120, 350, 25);
        button.setText("Nächter Monat");
        button.addActionListener(new button1_ActionListener());
        cp.add(button);
        button2.setBounds(10, 155, 350, 25);
        button2.setText("Nächstes Jahr");
        button2.addActionListener(new button2_ActionListener());
        cp.add(button2);
        // Ende Komponenten
       
        setVisible(true);
    }

    public static void main (String[] args) {
        new Main();
        //festlegen aller Eigenschaften
        person.setLand();
        person.setGeschlecht();
        person.setVorName();
        person.setNachName();
        person.setStats();
        person.setTodesJahr();
        person.setTodesMonat();
        person.setGehalt();
        zeit.setAnfangsJahr();
        zeit.setAnfangsMonat();
        //weitere Ausgaben beim Starten des Programms
        textarea.setText("Dein Name ist: " + person.getVorName() +" " + person.getNachName() + ", " + person.getGeschlecht() + ".\n");
        textarea.append("Du bist in " + person.getLand() + " geboren.\n");
        textarea.append("Du startest im " + zeit.getMonat()  + " " + zeit.getJahr() + ".\n");
       
        progressbar.setValue(person.getGlücklichkeit());
        progressbar2.setValue(person.getAussehen());
        progressbar3.setValue(person.getFitness());
        progressbar4.setValue(person.getIntelligenz());
        progressbar5.setValue(person.getMusikalisch());
        progressbar6.setValue(person.getKünstlerisch());
        progressbar7.setValue(person.getSozial());
        //zu erreichendes Alter + Anfangsjahr = Todesjahr
        TodesJahr = Integer.sum(person.getTodesJahr(), zeit.getJahr());
    }

    private class button1_ActionListener implements ActionListener {
        public void actionPerformed(ActionEvent ae) {
            //altern um einen Monat
            zeit.setNeuerMonat();
            //neue Ausgabe
            textarea.append("\n" + zeit.getMonat() + " " + zeit.getJahr() + "\n");
            //eingetroffener Tod
            if(TodesJahr == zeit.getJahr() && zeit.getMonatZahl() >= person.getTodesMonat()) {
                button.setEnabled(false);
                button2.setEnabled(false);
            }
        }
    }
   
    private class button2_ActionListener implements ActionListener {
        public void actionPerformed(ActionEvent ae) {
            //altern um ein Jahr
            zeit.setNeuesJahr();
            //neue Ausgabe
            textarea.append("\n" + zeit.getMonat() + " " + zeit.getJahr() + "\n");
            //eingetroffener Tod
            if(TodesJahr == zeit.getJahr() && zeit.getMonatZahl() >= person.getTodesMonat()) {
                button.setEnabled(false);
                button2.setEnabled(false);
            }
        }
    }
}
Java:
import java.io.*;
import java.util.List;
import java.util.stream.Collectors;

public class Person {
   
    Zeit geburtstag;

    private String VorName;
    private String NachName;
    private String Vater;
    private String Mutter;
    private String Nationalität;
    private String Sex;
    private String Job;
    private String Geburtstag;
    private int Geschlecht;
    private int Position;
    private int Alter;
    private int AlterVater;
    private int AlterMutter;
    private int Glücklichkeit;
    private int Aussehen;
    private int Fitness;
    private int Intelligenz;
    private int Musikalisch;
    private int Künstlerisch;
    private int Sozial;
    private int TodesJahr;
    private int TodesMonat;
    private int Land;
    private int Vermögen;
    private int Gehalt;
    private int Gehalt2;
    private int Arbeitnehmer;
    private boolean Reich;
    private List<String> VorNamensListeFrauen;
    private List<String> VorNamensListeMänner;
    private List<String> NachNamensListe;
    private List<String> LänderListe;

    public Person() {

    }
    //zufälliger Vorname aus Liste wählen
    public void setVorName() {
        //VorNamenFrauen Namenslisten erstellen
        File VorNamenFrauen = new File("D:\\Programme\\Eclipse\\Workplace\\InstLife - June\\Listen\\VorNamenFrauen.txt");
        try(BufferedReader reader = new BufferedReader(new FileReader(VorNamenFrauen))) {
            VorNamensListeFrauen = reader.lines().skip(1 + (5 * (Land - 1))).limit(5).collect(Collectors.toList());
        } catch (IOException ex) {
            throw new UncheckedIOException(ex);
        }
       
        //VorNamenMänner Namensliste erstellen
        File VorNamenMänner = new File("D:\\Programme\\Eclipse\\Workplace\\InstLife - June\\Listen\\VorNamenMänner.txt");
        try(BufferedReader reader = new BufferedReader(new FileReader(VorNamenMänner))) {
            VorNamensListeMänner = reader.lines().skip(1 + (5 * (Land - 1))).limit(5).collect(Collectors.toList());
        } catch (IOException ex) {
            throw new UncheckedIOException(ex);
        }
       
        //Zufallszahl generieren
        Position = (int)(Math.random()*5);
       
        //Namen auswählen
        if(Geschlecht == 0 ) {
            VorName = VorNamensListeFrauen.get(Position);
        } else {
            VorName = VorNamensListeMänner.get(Position);
        }
    }
    //Ausgabe des Vornamen
    public String getVorName() {
        return VorName;
    }
    //zufälliger Nachname aus Liste wählen
    public void setNachName() {
        //NachNamen Namenslisten erstellen
        File Nachnamen = new File("D:\\Programme\\Eclipse\\Workplace\\InstLife - June\\Listen\\NachNamen.txt");
        try(BufferedReader reader = new BufferedReader(new FileReader(Nachnamen))) {
            NachNamensListe = reader.lines().skip(1 + (5 * (Land - 1))).limit(5).collect(Collectors.toList());
        } catch (IOException ex) {
            throw new UncheckedIOException(ex);
        }
       
        //Zufallszahl generieren
        Position = (int)(Math.random()*5);
       
        //Namen auswählen
        NachName = NachNamensListe.get(Position);
    }
    //Ausgabe des Nachnamen
    public String getNachName() {
        return NachName;
    }
    //zufällig Geschlecht wählen
    public void setGeschlecht() {
        Geschlecht = (int)(Math.random()*2);
    }
    //Ausgabe des Geschlechtes
    public String getGeschlecht() {
        if (Geschlecht == 0) {
            Sex = "weiblich";
        } else {
            Sex = "männlich";
        }
        return Sex;
    }
    //Festlegen der Eigenschaften für die Progressbars
    public void setStats() {
        Glücklichkeit = 100;
        Aussehen = (int)(Math.random()*100) + 1;
        Fitness = (int)(Math.random()*100) + 1;
        Intelligenz = (int)(Math.random()*100) + 1;
        Musikalisch = (int)(Math.random()*100) + 1;
        Künstlerisch = (int)(Math.random()*100) + 1;
        Sozial = (int)(Math.random()*100) + 1;
    }
    //Ausgabe der Eigenschaften
    public int getGlücklichkeit() {
        return Glücklichkeit;
    }
   
    public int getAussehen() {
        return Aussehen;
    }
   
    public int getFitness() {
        return Fitness;
    }
   
    public int getIntelligenz() {
        return Intelligenz;
    }
   
    public int getMusikalisch() {
        return Musikalisch;
    }
   
    public int getKünstlerisch() {
        return Künstlerisch;
    }
   
    public int getSozial() {
        return Sozial;
    }
    //geschlechtsabhängiges Auswählen vom maximal Alter
    public void setTodesJahr() {
        TodesJahr = (int)(Math.random()*100);
        if(Geschlecht == 0) {
            if(TodesJahr <= 75) {
                TodesJahr = (int)(Math.random()*20) + 74;
            }
            if(TodesJahr >= 74 && TodesJahr <= 95) {
                TodesJahr = (int)(Math.random()*20) + 53;
            }
            if(TodesJahr >= 94) {
                TodesJahr = (int)(Math.random()*10) + 94;
            }
        } else {
            if(TodesJahr <= 75) {
                TodesJahr = (int)(Math.random()*20) + 70;
            }
            if(TodesJahr >= 74 && TodesJahr <= 95) {
                TodesJahr = (int)(Math.random()*20) + 50;
            }
            if(TodesJahr >= 94) {
                TodesJahr = (int)(Math.random()*10) + 94;
            }
        }
    }
    //Ausgabe des maximal Alters
    public int getTodesJahr() {
        return TodesJahr;
    }
    //Festlegung Monat des Todes
    public void setTodesMonat() {
        TodesMonat = (int)(Math.random()*12) + 1;
    }
    //Ausgabe Monat des Todes
    public int getTodesMonat() {
        return TodesMonat;
    }
        //zufällige Auswahl einer Position für Ausgabe aus der entsprechenden Liste
    public void setLand() {
        //Länderliste erstellen
        File Länder = new File("D:\\Programme\\Eclipse\\Workplace\\InstLife - June\\Listen\\Länder.txt");
        try(BufferedReader reader = new BufferedReader(new FileReader(Länder))) {
            LänderListe = reader.lines().skip(1).collect(Collectors.toList());
        } catch (IOException ex) {
            throw new UncheckedIOException(ex);
        }
       
        Land = (int)(Math.random()*(LänderListe.size())) + 1;
    }
    //Ausgabe des Landes aus der Liste
    public String getLand() {
        Nationalität = LänderListe.get(Land - 1);
        return Nationalität;
    }
    //zufällig generiertes Gehalt
    public void setGehalt() {
        Arbeitnehmer = (int)(Math.random()*25) + 1;  
       
        if(Arbeitnehmer != 1) {
            Gehalt2 = (int)(Math.random()*1000) + 1;
           
            if(Gehalt2 <= 250) {
                Gehalt = (int)(Math.random()*1500)  + 1500;
            }
            if(Gehalt2 >= 251 && Gehalt2 <= 750) {
                Gehalt = (int)(Math.random()*2000) + 3000;
            }
            if(Gehalt2 >= 751 && Gehalt2 <= 825) {
                Gehalt = (int)(Math.random()*4000) + 5000;
            }
            if(Gehalt2 >= 826 && Gehalt2 <= 900) {
                Gehalt = (int)(Math.random()*6000) + 9000;
            }
            if(Gehalt2 >= 901 && Gehalt2 <= 959) {
                Gehalt = (int)(Math.random()*85000) + 15000;
            }
            if(Gehalt2 >= 960 && Gehalt2 <= 969) {
                Gehalt = (int)(Math.random()*400000) + 100000;
            }
            if(Gehalt2 >= 978 && Gehalt2 <= 986) {
                Gehalt = (int)(Math.random()*500000) + 500000;
            }
            if(Gehalt2 >= 987 && Gehalt2 <= 994) {
                Gehalt = (int)(Math.random()*5000000) + 1000000;
            }
            if(Gehalt2 >= 995) {
                Gehalt = (int)(Math.random()*5000000) + 5000000;
            }
        } else {
            Gehalt = 0;
        }
    }
    //Ausgabe des Gehaltes
    public int getGehalt() {
        return Gehalt;
    }
    //Abfrage nach Wohlstand
    public boolean getReich() {
        if(Gehalt <= 10000) {
            Reich = false;
        } else {
            Reich = true;
        }
       
        return Reich;
    }
    //Hier sollte dann der Geburtstag hin
    public void setGeburtsmonat(Zeit geburtstag) {
        this.geburtstag = geburtstag;
    }
   
    public Zeit getGeburtsmonat() {
        return geburtstag;
    }
}
Java:
public class Zeit {
   
    private int Jahr;
    private int MonatZahl;
    private int StartMonat;
    private String geburtstag;
    private String Monat;
   
    public Zeit() {
       
    }
    //Auswahl eines Anfangjahrs
    public void setAnfangsJahr() {
        Jahr = (int)(Math.random()*70) + 1980;
    }
    //Ausgabe des momentanen Jahres
    public int getJahr() {
        return Jahr;
    }
    //Auswahl eines Anfangmonats als Integer
    public void setAnfangsMonat() {
        MonatZahl = (int)(Math.random()*12) + 1;
    }
    //Ausgabe des Monats als Integer
    public int getMonatZahl() {
        return MonatZahl;
    }
    //Ausgabe des Monats als String
    public String getMonat() {
        switch(MonatZahl) {
        case 1: Monat = "Januar"; break;
        case 2: Monat = "Februar"; break;
        case 3: Monat = "März"; break;
        case 4: Monat = "April"; break;
        case 5: Monat = "Mai"; break;
        case 6: Monat = "Juni"; break;
        case 7: Monat = "Juli"; break;
        case 8: Monat = "August"; break;
        case 9: Monat = "September"; break;
        case 10: Monat = "Oktober"; break;
        case 11: Monat = "November"; break;
        case 12: Monat = "Dezember"; break;
        }
        return Monat;
    }
    //verstreichen eines Monats
    public void setNeuerMonat() {
        MonatZahl = MonatZahl + 1;
        //Jahreswechsel
        if(MonatZahl == 13) {
            MonatZahl = 1;
            setNeuesJahr();
        }
    }
    //verstreichen eines Jahres/Jahreswechsel
    public void setNeuesJahr() {
        Jahr = Jahr + 1;
    }
}
Ich hoffe es ist nicht zu viel. Und bitte seid gnädig. Ich bin noch ein Anfänger.
 

mrBrown

Super-Moderator
Mitarbeiter
Einfach nur weil ich es grundsätzlich immer sage: Anfänger und GUI sind zwei Dinge, die nicht zusammen passen ;)

Und weil ich grad Langeweile hab ein grobes Codereview für den gesamten Code, vielleicht hilft es ja was:

Erstmal zur GUI:
  • static ist in deiner Main-Klasse Unsinn, keine deiner Variablen sollte static sein
  • In der GUI nutzt du Frame und Panel, dort willst du vermutlich eher JPanel und JFrame nutzen
  • Deine Benennung mit 1, 2, 3 am Ende ist ganz schlecht. Entweder es sind wirklich aufeinander folgender Werte, dann ein Array nutzen, oder es sind unabhängige Werte, dann auch sinnvoll benennen. Ist bei dir ja auch Problemlos möglich, statt progressbar2 z.B. einfach aussehen
  • Du solltest dich an Konventionen halten. Klassen zb immer mit einem Großbuchstaben beginnen, Methoden und Variablen mit einem Kleinbuchstaben. Aktuell hast du da ein Mischmasch
Generell für die Zeit und Person:
  • Beide Klassen machen für meinen Geschmack deutlich zu viel, vor allem dass sie so wohl die Daten sind, als auch diese zufällig generieren. Das würde ich trennen, in einmal zb die Person-Klasse, und dann sowas wie einen PersonenGenerator, der eine Person mit zufälligen Werten erstellt. Die Klassen werden damit deutlich klarer in dem was sie machen.
  • Deine Methoden, die mit set anfangen, sind nicht die üblichen Setter, wie man sie kennt, sondern generieren zufällige Werte – das sollte sich auch im Namen widerspiegeln, also zB generateXY. Aber schöner wäre es, die Methoden einfach daraus zu nehmen ;)
Für Zeit:
  • Monat sollte eine lokale Variable in der Funktion sein
  • geburtstag nutzt du nicht und vom Namen her scheint sie auch nicht in die Klasse zu gehören
  • Statt den setAnfangsXY solltest du besser den Konstruktor dafür nehmen (oder noch besser, das generieren aus der Klasse rausziehen)
Zu Person:
  • Die Klasse enthält für mich deutlich zu viele Attribute – die kann man besser in sinnvollen Objekte zusammenfassen, sodass man nicht eine große, sondern viele kleine Klassen hat
    • als Beispiel zb alle Attribute, die zu Mutter bzw Vater gehöre. Besser eine Klasse Elter mit Name und Alter, und in Person dann private Elter mutter; und private Elter vater;
    • Gleiches für TodesJahr und Tag. Dafür könnte man sogar einfach die Zeit-Klasse nutzen
    • Glücklichkeit bis Sozial könnte man auch zusammenfassen - sowas wie "Eigenschaften" (oder was besseres, mir fällt grad nur nichts ein)
    • Die Daten für den Job kann man auch zusammenfassen - einfach eine Job-Klasse einführen, da steht dann sowas wie Job-Name und Gehalt drin
  • ein paar der Dinge sollten wieder lokale Variablen sein, zb Sex und potentiell Alter (das kann man jedes mal aus dem Geburtstag berechnen)
  • die vier Listen sollten auch nicht in die Person-Klasse. Eine Person hat ja keine Liste von Namen oder Ländern (oder wie sieht deine VorNamensListeFrauen aus? ;) ), stattdessen außerhalb der Klasse irgendwo halten
 

temi

Top Contributor
Die Klasse enthält für mich deutlich zu viele Attribute – die kann man besser in sinnvollen Objekte zusammenfassen, sodass man nicht eine große, sondern viele kleine Klassen hat
  • als Beispiel zb alle Attribute, die zu Mutter bzw Vater gehöre. Besser eine Klasse Elter mit Name und Alter, und in Person dann private Elter mutter; und private Elter vater;
Da Mütter und Väter in der Regel ja auch Personen sind, spräche ja auch nichts gegen
Java:
Person vater;
Person mutter;
 
K

kneitzel

Gast
Du musst die Instanz von Main, die Du erzeugst, einfach in einer Variablen speichern. Dann kannst Du auf dieser Instanz arbeiten.

Also den Code entweder in eine neue Methode packen und dann auf der Instanz diese Methode aufrufen oder eben alle Zugriffe auf die (nun nicht mehr statischen Variablen) mit der Instanz davor. (Also wenn Du hattest; Main main = new Main(); dann wäre es z.B. main.person statt nur person.
Aber wenn Du es in einer nicht statische Methode packst, dannist es deutlich schöner und kürzer im Code, daher wäre das meine Empfehlung.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Mit JComboBox Ergebnis einen Integer aus einer anderen Klasse aufrufen. Java Basics - Anfänger-Themen 2
D Methoden Plathhalter für Integer in einer Methode Java Basics - Anfänger-Themen 19
D Summe aller Positiven Integer aus einer Liste mit ActionObject Java Basics - Anfänger-Themen 2
T integer Werte einer ArrayList miteinander addieren Java Basics - Anfänger-Themen 5
D Map<String, Integer> sortieren und der reinfolge nach die Glieder abfragen Java Basics - Anfänger-Themen 3
MoxMorris Integer.MAX_VALUE und Double.MAX_VALUE Unterschied Java Basics - Anfänger-Themen 3
Jul1n4tor Scanner error bei Eingabe die kein Integer ist Java Basics - Anfänger-Themen 4
belana wie am besten 2D Array von String to Integer Java Basics - Anfänger-Themen 18
volcanos Addition -> List<Integer> mit Arrays.asList() versus List<Integer>ArrayList<>() Java Basics - Anfänger-Themen 14
JavaBeginner22 Integer in String umwandeln Java Basics - Anfänger-Themen 7
sserio printf integer formatting Java Basics - Anfänger-Themen 17
M Unterschied Integer.toString(x) und x.toString() Java Basics - Anfänger-Themen 22
H Uhrzeitespanne in Integer Wert umrechnen Java Basics - Anfänger-Themen 1
T Java Integer multiplizieren Java Basics - Anfänger-Themen 6
H Fehler bei integer Division Java Basics - Anfänger-Themen 28
StevenGG Java swing "New Integer" Java Basics - Anfänger-Themen 5
C Integer in Vierer-Zahlblöcke aufteilen Java Basics - Anfänger-Themen 11
L integer Java Basics - Anfänger-Themen 6
Zeppi Integer umschreiben Java Basics - Anfänger-Themen 5
rafi072001 Integer Anomalie Java Java Basics - Anfänger-Themen 7
Eule25 Arbeit mit long und int, Error: integer number too large Java Basics - Anfänger-Themen 2
J Transformation zweier Integer in ein Double Java Basics - Anfänger-Themen 26
L Iterieren durch eine ArrayList. Integer Array wird übergeben Java Basics - Anfänger-Themen 17
D Fibonacci overflow integer Java Basics - Anfänger-Themen 8
J Eine Position im String durch einen Integer - Wert teilen Java Basics - Anfänger-Themen 5
S Integer Wert wird nicht übernommen Java Basics - Anfänger-Themen 2
V int zu Integer und String Java Basics - Anfänger-Themen 6
H Datentypen Was für eine Format verbirgt sich hinter dem Integer-Wert 053? Java Basics - Anfänger-Themen 2
L Baum aus Integer Liste erstellen Java Basics - Anfänger-Themen 0
M Regex zum Integer.parseInt Java Basics - Anfänger-Themen 4
J Problem beim vergleich von zwei Integer Java Basics - Anfänger-Themen 3
S Vergleichen ob der Integer der benutzt eingeben werden soll überhaupt ein int ist Java Basics - Anfänger-Themen 1
S Letzte Zahl eines Integer auslesen? Java Basics - Anfänger-Themen 3
K String in Integer umwandeln Java Basics - Anfänger-Themen 4
G Überprüfen ob alle Ziffern von 1-9 in einem Integer vorhanden sind Java Basics - Anfänger-Themen 6
D integer negativen Wert abspeichern Java Basics - Anfänger-Themen 3
J Methoden Moving a n integer matrix Java Basics - Anfänger-Themen 3
R Eingabe String umwandeln zu Integer Werten Java Basics - Anfänger-Themen 8
M Input/Output Java Swing: Prüft ob Text aus JTextField ausschließlich Integer enthält Java Basics - Anfänger-Themen 15
J Erhöhen eines Values als Integer bei gleichen Keys in HashMap Java Basics - Anfänger-Themen 12
CptK Datentypen Integer ArrayList sortieren Java Basics - Anfänger-Themen 2
J Methoden Equals Methode für Integer und Objekte überschreiben? Java Basics - Anfänger-Themen 9
CptK Bestimmten Integer Wert aus Array filtern Java Basics - Anfänger-Themen 2
L String in Integer umwandeln Java Basics - Anfänger-Themen 3
K Datentypen String zu Integer parsen Java Basics - Anfänger-Themen 2
B Liste von Integer -> Nächster Wert bekommen Java Basics - Anfänger-Themen 5
S Integer aus Array filtern Java Basics - Anfänger-Themen 4
F Referenzvariable vom Typ "Integer" definieren. (Klausuraufgabe) Java Basics - Anfänger-Themen 5
M set Integer bzw. set null mit SQL DB Java Basics - Anfänger-Themen 9
H Bubblesort-Zwei Integer auf Dekade vergleichen. Java Basics - Anfänger-Themen 6
B Variablen integer im Array Java Basics - Anfänger-Themen 5
C Liste o.ä. erstellen mit <Integer, <Integer, String> Java Basics - Anfänger-Themen 7
R Kompletten String umwandeln in Integer Java Basics - Anfänger-Themen 10
H 32-Bit Zahl (Integer) in eine IPv4 Adresse umwandeln? Java Basics - Anfänger-Themen 2
Orkanson Datentypen Integer in String umwandeln/hinzufügen Java Basics - Anfänger-Themen 3
O Datentypen Integer mit führender Null Java Basics - Anfänger-Themen 13
M Argument in Integer verwandeln und das Doppelte davon printen Java Basics - Anfänger-Themen 9
D Fehler: String zu Integer Java Basics - Anfänger-Themen 7
L (Integer) Liste nach aufsteigender Summe der Ziffern sortieren (mit Bedingung) Java Basics - Anfänger-Themen 8
b1ck Integer initialisieren bei do-while-Schleife Java Basics - Anfänger-Themen 11
E Integer und Array übergeben Java Basics - Anfänger-Themen 9
W Fehler bei Integer.parseInt() Java Basics - Anfänger-Themen 4
R String in Integer Java Basics - Anfänger-Themen 11
D Komischer Fehler nach <Integer> List Java Basics - Anfänger-Themen 2
J Integer in Array einlesen Java Basics - Anfänger-Themen 14
J Warum ist das ein Unterschied (Integer / int) Java Basics - Anfänger-Themen 2
H Integer in Datei schreiben Java Basics - Anfänger-Themen 2
B OOP Cannot instantiate the type AuDList<Integer> Java Basics - Anfänger-Themen 18
3 ArrayList Integer Wrapper Klasse als Ersatz für normale Arrays Java Basics - Anfänger-Themen 10
K Methoden Integer runden/aufrunden Java Basics - Anfänger-Themen 2
E Erste Schritte Lower Bounded Wildcards <? super Integer> Java Basics - Anfänger-Themen 1
M Datentypen Integer und Float Konflikt Java Basics - Anfänger-Themen 3
J Integer-Werte in Array ein- bzw. auslesen Java Basics - Anfänger-Themen 7
T Integer Wert in andere Methode übergeben Java Basics - Anfänger-Themen 2
N Probleme bei Speicherung eines Integer-Array in Datei speichern Java Basics - Anfänger-Themen 3
C Zwei Integer Arrays "kombinieren" Java Basics - Anfänger-Themen 10
D Integer Fehlermeldung exception Java Basics - Anfänger-Themen 4
M Höchster Integer aus 9 Zahlen Java Basics - Anfänger-Themen 13
I Klassen Integer von BL in GUI übergeben | Fehler Java Basics - Anfänger-Themen 4
T Integer-Objekt über Hash-Funktion in Array ablegen Java Basics - Anfänger-Themen 1
S Integer/Value-Paar in Prio-Queue ohne Comparator Java Basics - Anfänger-Themen 5
D Datentypen Ein Integer Feld in einen String wandeln ohne Nullenunterdrückung Java Basics - Anfänger-Themen 6
R integer zahlenfolge speichern, ausgeben Java Basics - Anfänger-Themen 1
L Summer aller Integer-Zahlen im Intervall [x,y] Java Basics - Anfänger-Themen 6
K ArrayList<Integer> problem Java Basics - Anfänger-Themen 3
L Vom Benutzer eingebene Integer addieren und ausgeben. Java Basics - Anfänger-Themen 11
S integer absteigend sortieren Java Basics - Anfänger-Themen 2
S ArrayList<ArrayList<Integer>> sortieren Java Basics - Anfänger-Themen 3
T Variablen Integer in Stmt Java Basics - Anfänger-Themen 13
B gemischter string zu integer Java Basics - Anfänger-Themen 22
R Big Integer Java Basics - Anfänger-Themen 8
B Erste Schritte Integer Eingabe über Scanner mit Abfangen von Eingabefehlern Java Basics - Anfänger-Themen 3
B Variablen Wertezuweisung bei integer Java Basics - Anfänger-Themen 5
J Integer Werte in Array einlesen Java Basics - Anfänger-Themen 6
E Integer oder Strings spiegeln (in while loop) Java Basics - Anfänger-Themen 6
D String mit Integer Variablen Namen vergleichen, möglich? Java Basics - Anfänger-Themen 6
G Was passiert bei einem Overflow von zwei Integer Java Basics - Anfänger-Themen 6
H Integer.toString(int i) vs. String.valueOf(int i) Java Basics - Anfänger-Themen 12
K Date cannot be cast to java.lang.Integer Java Basics - Anfänger-Themen 4
N Probleme beim Rechnen mit Integer und double Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben