Bereken totalPrice in een methode/functie in Java

Ik doe een schoolopdracht in Java en ik heb wat hulp nodig om wat berekeningen te maken in een methode. Ik gebruikte PHP, en ik heb veel van mijn kennis in de code bijgevoegd, maar deze kan ik gewoon niet achterhalen (ik weet hoe het moet zonder de functie, maar dat vereist veel meer coderegels, wat stom is) .

Hier is een deel van mijn code:

public static void main (String[] args) {
// User inputs
calculate("Number of beers", 20, 1.50);
}

public static void calculate(String articleName, double numberOfX, double pricePerUnit) {

        double subTotal = numberOfX * pricePerUnit;
        System.out.printf("%-20s %-1s %10.2f\n", articleName, ":", subTotal);
}

Dit drukt een mooie rekening uit van de dingen die ik heb gekocht. Verder zou ik graag zien dat deze methode de totaalprijs toevoegt aan een (globale?) Variabele die uiteindelijk de uiteindelijke prijs van alle items toont. In PHP schreef ik meestal een variabele met de naam totalDue + = subTotal;

Is er een manier om dit in Java te doen? Ik zou een schande zijn om een ​​geheel nieuwe functie te schrijven om de wiskunde uit te voeren als ik gewoon de totale prijs van elk item in een variabele zou kunnen optellen.

0

2 antwoord

Globale variabelen bestaan ​​niet op Java.

En dit is niet hoe het moet worden gedaan. In plaats van de methode die een variabele bijwerkt, moet de methode alleen het resultaat van de berekening retourneren en de beller moet verantwoordelijk zijn voor het gebruik van het resultaat, zoals hij dat wil:

double total = 0D;
total += calculate("Number of beers", 20, 1.50);
total += calculate("Number of pizza", 10, 8);
// ...

Op deze manier hoeft u niets in de berekeningsmethode te veranderen wanneer u subtotalen, gemiddelden of wat dan ook wilt berekenen. Eén methode = één verantwoordelijkheid.

Dit zou ook moeten gelden voor je PHP-programma's.

Nadat dit is gedaan, moet u de artikelnaam, het aantal artikelen en de eenheidsprijs in een klasse inkapselen en methoden aan de klasse toevoegen, zoals toString (om het gekochte item weer te geven) en computePrice (om de prijs van dit gekochte artikel te berekenen).

1
toegevoegd
Hartelijk bedankt! Dat deed zeker de truc, en ik heb ook een aantal goede oefeningen geleerd :)
toegevoegd de auteur Steffen Martinsen, de bron
public static void main (String[] args) {
// User inputs
    double total = 0.0;
    total += calculate("Number of beers", 20, 1.50);
}

public static double calculate(String articleName, double numberOfX, double pricePerUnit) {
    double subTotal = numberOfX * pricePerUnit;
    System.out.printf("%-20s %-1s %10.2f\n", articleName, ":", subTotal);
    return subTotal;
}
1
toegevoegd
@SteffenMartinsen: graag gedaan.
toegevoegd de auteur Bhesh Gurung, de bron
Hartelijk bedankt! Aangezien beide antwoorden hetzelfde verklaren, zal ik de eerste als oplossing markeren - maar heel erg bedankt!
toegevoegd de auteur Steffen Martinsen, de bron