Variablen mit einer anderen Klasse bekannt machen

Jasmin589

Mitglied
Hallo zusammen, ich versuche eine Variable einer Klasse mit einer anderen bekannt zu machen um dann z.B. weiter zu rechnen.

Code:
public class Klasse1 {
   
   public static void main(String[] args) {
       int a = 10;
       int b = 15;
       int c;
       c = a+b;

   }

}
Jetzt möchte ich z.B. die Variable c aus der ersten Klasse in einer anderen Klasse weiter verwenden.

Code:
public class Klasse2 {
   public void rechnen () {
       int x = 7;
       int y ;
       y = c+x;
   }
}
Wie bekomme ich denn jetzt mein c in die andere Klasse?
 
Mit dem Konstrukt garnicht. Entweder du legst das "c" als statische Klassenvariable an:
Java:
class Klasse1 {

    public static int c;

    public static void main(String[] args) {
        int a = 10;
        int b = 15;
        c = a + b;

    }

}

class Klasse2 {
    public void rechnen() {
        int x = 7;
        int y;
        y = Klasse1.c + x;
    }
}
Was natürlich absolut kein schöner Stil ist.

Oder du legst c als Attribut der Klasse1 an und übergibst die ganze Klasse.

Kann das sein, dass du vllt. eher sowas machen willst?
Java:
class Klasse1 {

    int rechnen1() {
        int a = 10;
        int b = 15;
        int c = a + b;

        return c;
    }

}

class Klasse2 {

    Klasse1 c1;

    public Klasse2(Klasse1 c1) {
        this.c1 = c1;
    }

    public void rechnen2() {
        int x = 7;
        int y;
        y = c1.rechnen1() + x;
    }
}
Vllt. eklärst du etwas genauer was das Ziel ist, dann kann man den "schönsten" Tipp geben 😉
 
Hallo, danke schonmal für deine Antwort. Ich weiß aber nicht wie ich das genauer beschreiben möchte.

Ich würde gerne in Klasse1 etwas ausrechnen und das Ergebnis dann in Klasse2 weiter verwenden
 
Ich würde gerne in Klasse1 etwas ausrechnen und das Ergebnis dann in Klasse2 weiter verwenden
Es gibt verschiedene Möglichkeiten. Grundsätzlich reden wir mal von Objekten.

Gehen wir mal davon aus, Du hast ein @Jasmin589-Objekt und ein @Javinner-Objekt. Du rechnest etwas aus und Javinner soll damit weiterrechnen. Dann gibt es wenigstens zwei Möglichkeiten:
1. Du sagst zu Javinner: bitte rechne doch mal mit 42 weiter
2. Javinner fragt Dich: was hast Du ausgerechnet?

In beiden Fällen findet Kommunikation zwischen den Objekten statt. Das läuft über Methodenaufrufe.

Es gibt aber auch andere Möglichkeiten (z. B. einfache Funktionen oder Übergabe im Konstruktor).

Welches für Deinen Fall das Modell ist, das am besten passt, kann man erst sagen, wenn man weiß, worum es geht.
 
Als das Beispiel einer finalen Klasse kannst du dir die Klasse Math anschauen.
Mir erschließt sich noch nicht ganz warum man hier die Klasse final machen sollte. Ob die Klasse nun final ist oder nicht sagt ja nichts über dessen Informationen aus. Zumal ich hier das Beispiel von der Math-Klasse eher ungünstig finde, weil man diese nicht instanziieren kann (privater Konstruktor)
 
warum man hier die Klasse final machen sollte
Da ich nicht weiß, was TE hier vor hat, war es nur eine Idee, wie man hätte das machen können. Die Klasse Math dient da nur als Beispiel, denn diese bekommt und liefert, so dass die anderen Klassen für ihre Attribute und Werte selbst sorgen müssen. Wenn TE sich mal wieder meldet, offenbart uns eventuell mehr Details?
 

Zurück
Oben