Dir ist nun aber bewusst, dass
setSec() nur eine Ausgabe macht, also die Attribute von
Z3 überhaupt nicht beeinflusst.
showTime() würde ohne den Aufruf von
setSec() davor genau gleich funktionieren.
Was du vermutlich möchtest:
setSec() soll das Attribut
sekunde auf den Wert setzen, den du
setSec() übergibst, und
showTime() soll dann eine Ausgabe basierend auf dem Wert vom Attribut
sekunde machen. Das geht so:
Code:
public class Zeit {
// das ist ein Attribut
private double sekunden;
// methode setSekunden erwartet einen Wert vom Typ int
public void setSekunden(double pSekunden) {
// jetzt gibt es zwei Variablen, sekunden und pSekunden
// sekunden ist ein Attribut, und wir können in jeder Methode der Klasse auf sekunden zugreifen
// pSekunden ist ein Parameter dieser Methode, und wir können nur in dieser Methode darauf zugreifen
sekunden = pSekunden; // <-- jetzt bekommt das Attribut sekunden den Wert von pSekunden
}
public void showTime() {
// hier nutzen wir sekunden, brauchen also keinen Parameter
// vor dieser Methode muss setSekunden() aufgerufen werden, denn sonst ist das Attribut sekunden noch 0 (Standardwert für Attribute vom Typ int)
int minuten = (int) (sekunden / 60); // das (int) davor schneidet die Kommastellen ab, so dass
// minuten also zum Beispiel 5 statt 5.4813782 ist
System.out.println("Minuten: " + minuten);
}
}
Nutzen kannst du das wie gehabt:
Code:
public class Main {
private static void main(String[] args) {
Zeit zeit = new Zeit();
Scanner scanner = new Scanner(System.in);
double sekunden = scanner.nextDouble();
zeit.setSekunden(sekunden); // wichtig, damit setzen wir also das Attribut der Klasse, das wir dann ...
zeit.showTime(); // ... hier verwenden
}
}