Wie gebe ich Informationen von einer Klasse zur anderen Klasse?

GreenTeaYT

Mitglied
Hey Leute,
Beim Programmieren ist mir immer wieder die Exception Nullpointer aufgetaucht. Ich habe gemerkt das Ich manchmal den Überblick verliere wenn ich viele Klassen habe und noch nicht ganz verstehe wie die Kommunikation zwischen Klassen stattfindet.

Mir würde es echt weiterhelfen wenn ihr mir es erklärt oder eine Seite kennt die das gut und verständlich erklärt.

Zum Beispiel wenn ich auf Methoden zugreifen will die in einer Klasse sind. Mach ich das so.
Java:
public class A{
 public void methode1()
}
public main
A b = new A();

Ich habe gehört das man nicht so oft den new Operator aufrufen wenn es nur um die Methoden gibt. Es gibt noch viel mehr Beispiele. Zum Beispiel Init von Attributen, Objekten etc und dann die Weitergabe an andere Klasse damit diese da verwendet oder dem entsprechend verarbeitet werden können.

Ich bedanke mich im Voraus und Ich hoffe ihr könnt mir weiterhelfen.
Mit freundlichen Grüßen
Green
 
Hallo,

wenn du Attribute und Methoden verwenden willst die in einer anderen Klasse sind, dann musst du in der Klasse in der du dies verwendet willst, ein Objekt bilden bzw instanzieren.

Wenn die Methoden oder Attribute jedoch static sind, kannst du sie mit dem Klassennamen aufrufen.

Ein kleines Beispiel:

Java:
public class Böö{
   int zahl;
static in zahl2;
   public void print(){
System.out.println("Hallo" + zahl);
}


public class A{
Böö wasgeyt = new Böö();

wasgeyt.zahl=5;
watgeyt.print();
Böö.zahl2= 1453;  //wird direkt mit dem Klassennamen aufgerufen, da static
}

Wenn du immernoch Fragen hast und leicht Java lernen möchtest, kann ich dir die Tutorials von Brotcrunsher auf Youtube empfehlen.
 
Das ist ein recht breit gefächertes Thema! Du kannst statische Methoden auch nur über den Klassen Namen aufrufen.
Bei der Klasse Math zum Beispiel.
Java:
public class ExempleClass{
        public static void doSomeThing(){
         ..................
         }
}
public class Main{
        public void main (String [] args){
                  ExempleClass.doSomeThing();
      }
}
Ich bin mir jetzt nicht sicher ob das die Frage war 😀
 
Bitte diesen Thread nicht schon wieder für Offtopic missbrauchen!

Hier mal ein kleines ausgedachtes Beispiel. Habs gerade im Notepad++ geschrieben also falls es nicht compiliert einfach die Fehler fixen 🙂

In dem Beispiel werden zwei Spieler erstellt. Beide bekommen eine Waffe und eine Rüstung. An dem Beispiel kannst du gut erkennen, wie man Objekte übergibt und Werte aus den Objekten benutzt.

Ich habe hier auch andere Techniken benutzt um das bisschen lehrreicher zu gestalten.

Java:
public class Main() {

    public static void main(String[] args) {
        MinigameSimulation game = new MinigameSimulation();
     
        game.start();
    }

}
Java:
public class MinigameSimulation() {
 
    private Spieler spieler1;
    private Spieler spieler2;

    public MinigameSimulation() {
        spieler1 = createSpieler("Hans", 20, new Waffe("Dolch", 2), new Ruestung("Lederrüstung", 5));
        spieler2 = createSpieler("Wurst", 20, new Waffe("Hammer", 3), new Ruestung("Ballkleid", 1));
    }
 
    private Spieler createSpieler(String name, int lebenspunkte, Waffe waffe, Ruestung ruestung) {
        Spieler spieler = new Spieler(name, lebenspunkte);
        spieler.setWaffe(waffe);
        spieler.setRuestung(ruestung);
        return spieler;
    }
 
    public void start() {
        while(spieler1.getLebenspunkte() > 0 && spieler2.getLebenspunkte() > 0) {
            spieler1.schlage(spieler2);
            spieler2.schlage(spieler1);
         
            System.out.println("Spieler1 LP : " + spieler1.getLebenspunkte());
            System.out.println("Spieler2 LP : " + spieler2.getLebenspunkte());
     
        }
        System.out.println("Simulation beendet");
    }
}
Java:
public class Spieler {

    private int lebenspunkte;
    private String name;
    private Waffe waffe;
    private Ruestung ruestung;
 
    public Spieler(String name, int lebenspunkte) {
        this.name = name;
        this.lebenspunkte = lebenspunkte;
    }
 
    public int getLebenspunkte() {
        return lebenspunkte;
    }
 
    public String getName() {
        return name;
    }
 
    public Waffe getWaffe() {
        return waffe;
    }
 
    public void setWaffe(Waffe waffe) {
        this.waffe = waffe;
    }

    public Ruestung getRuestung() {
        return ruestung;
    }
 
    public void setRuestung(Ruestung ruestung) {
        this.ruestung = ruestung;
    }
 
    public void schlage(Spieler gegner) {
        int abwehrWert = gegner.getRuestung().getAbwehrWert();
     
        int schaden = Math.min(0, abwehrWert - waffe.getSchaden());
     
        gegner.bekommeSchaden(schaden);
    }
 
    public void bekommeSchaden(int schaden) {
        if(lebenspunkte - schaden >= 0) {
            lebenspunkte -= schaden;
        }
    }
}
Java:
public class Gegenstand {

    protected String name;
 
    public Gegenstand(String name) {
        this.name = name;
    }
 
    public String getName() {
        return name;
    }
}
Java:
public class Waffe extends Gegenstand {

    private int schaden;
 
    public Waffe(String name, int schaden) {
        super(name);
        this.schaden = schaden;
    }

    public int getSchaden() {
        return schaden;
    }
}
Java:
public class Ruestung extends Gegenstand {

    private int abwehrWert;
 
    public Waffe(String name, int abwehrWert) {
        super(name);
        this.abwehrWert = abwehrWert;
    }

    public int getAbwehrWert() {
        return abwehrWert;
    }
}
 

Zurück
Oben