Variablen mit einer anderen Klasse bekannt machen

Diskutiere Variablen mit einer anderen Klasse bekannt machen im Java Basics - Anfänger-Themen Bereich.
J

Jasmin589

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?
 
Tarrew

Tarrew

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 ;)
 
J

Jasmin589

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
 
J

Javinner

@Jasmin589
Wenn Klasse1 nur diesem Zweck dient, dann mach doch diese final und rufe diese für die Variable auf.
Beschreib doch mal ausführlich, was du da gerade machst..
 
mihe7

mihe7

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.
 
J

Javinner

@mihe7
:)
In beiden Fällen findet Kommunikation zwischen den Objekten statt. Das läuft über Methodenaufrufe
Dabei sollten die Klassen so wenig von einander wissen, wie es möglich ist und nur über Setter/Getter die notwendigen Typen austauschen. Als das Beispiel einer finalen Klasse kannst du dir die Klasse Math anschauen.
 
Robat

Robat

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)
 
J

Javinner

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?
 
Thema: 

Variablen mit einer anderen Klasse bekannt machen

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben