[Java] (Programmazione 1) Piccolo chiarimento su sorgente in Java
Buonasera a tutti. Sto iniziando a studiare per sostenere l'esame di programmazione 1 alla facoltà di ingegneria. Leggendo il libro mi sono trovato davanti il codice sorgente di un esercizio che illustrava ciò che era stato spiegato nei due capitoli precedenti... vi inserisco il codice sorgente del programma.
BankAccount.java
BankAccountTester.java
Inutile dirvi che il programma funziona, il problema è che non ho capito quando e come vengono passati i due valori numerici al file BankAccount.java e come quest'ultimo fa le varie procedure...
Sareste così gentili da spiegarmi dettagliatamente cosa accade in queste righe di codice?
Graze a tutti in anticipo.
BankAccount.java
public class BankAccount { public BankAccount() { balance = 0; } public BankAccount(double initialBalance) { balance = initialBalance; } public void deposit (double amount) { double newBalance = balance + amount; balance = newBalance; } public void withdraw(double amount) { double newBalance = balance - amount; balance = newBalance; } public double getBalance() { return balance; } private double balance; }
BankAccountTester.java
public class BankAccountTester { public static void main(String[] args) { BankAccount harrysChecking = new BankAccount(); harrysChecking.deposit(2000); harrysChecking.withdraw(500); System.out.println(harrysChecking.getBalance()); System.out.println("Expected: 1500"); } }
Inutile dirvi che il programma funziona, il problema è che non ho capito quando e come vengono passati i due valori numerici al file BankAccount.java e come quest'ultimo fa le varie procedure...
Sareste così gentili da spiegarmi dettagliatamente cosa accade in queste righe di codice?
Graze a tutti in anticipo.
Risposte
Ho modificato il tuo post in modo da usare il tag code (ho anche indentato il tuo codice per rendere più semplice la sua lettura e comprensione.
Non credo di aver compreso i tuoi dubbi. Non ho provato il codice, ma le righe del main dovrebbero fare la seguente cosa:
1. Creare una istanza della classe BankAccount chiamata harrysChecking con balance uguale a 0.
2. Viene chiamato il metodo deposit della classe e balance viene incrementato di 2000 (e quindi balance diventa uguale a 2000).
3. Viene chiamato il metodo withdraw che riduce balance di 500. balance è quindi a questo punto uguale a 1500.
4. Viene stampato il valore di balance sulla console.
Viene stampato qualcosa di diverso? Ti aspettavi un comportamento diverso?
Non credo di aver compreso i tuoi dubbi. Non ho provato il codice, ma le righe del main dovrebbero fare la seguente cosa:
1. Creare una istanza della classe BankAccount chiamata harrysChecking con balance uguale a 0.
2. Viene chiamato il metodo deposit della classe e balance viene incrementato di 2000 (e quindi balance diventa uguale a 2000).
3. Viene chiamato il metodo withdraw che riduce balance di 500. balance è quindi a questo punto uguale a 1500.
4. Viene stampato il valore di balance sulla console.
Viene stampato qualcosa di diverso? Ti aspettavi un comportamento diverso?
"apatriarca":
Ho modificato il tuo post in modo da usare il tag code (ho anche indentato il tuo codice per rendere più semplice la sua lettura e comprensione.
Non credo di aver compreso i tuoi dubbi. Non ho provato il codice, ma le righe del main dovrebbero fare la seguente cosa:
1. Creare una istanza della classe BankAccount chiamata harrysChecking con balance uguale a 0.
2. Viene chiamato il metodo deposit della classe e balance viene incrementato di 2000 (e quindi balance diventa uguale a 2000).
3. Viene chiamato il metodo withdraw che riduce balance di 500. balance è quindi a questo punto uguale a 1500.
4. Viene stampato il valore di balance sulla console.
Viene stampato qualcosa di diverso? Ti aspettavi un comportamento diverso?
Ciao, grazie per avermi risposto. L'esercizio come risultato mi da 1500, proprio come dovrei aspettarmi... quello che mi risulta strano è il modo in cui il main invia i due numeri al file di esecuzione BankAccount.java e come questi due file interagiscono tra di loro... Non riesco a capire il collegamento di:
BankAccount harrysChecking = new BankAccount(); harrysChecking.deposit(2000); harrysChecking.withdraw(500);
con tutto il resto del codice presente in BankAccount.java Per esempio, "deposit", in BankAccount.java lo trovo una sola volta e non è nemmeno una variabile... Mi è un po strano tutto il procedimento di interazione che ce tra i due file
Non c'è nessuna "iterazione tra i due file".. Non è così che funziona Java. Dimenticati che sono file, avrebbero potuto anche essere nello stesso file.. Oppure avresti potuto scrivere il main all'interno del file BankAccount. Ti consiglio di rileggerti che cosa sono le classi sul tuo libro (o su qualche altra fonte se il libro è poco chiaro). È un concetto molto importante che dovresti imparare..
"apatriarca":
Non c'è nessuna "iterazione tra i due file".. Non è così che funziona Java. Dimenticati che sono file, avrebbero potuto anche essere nello stesso file.. Oppure avresti potuto scrivere il main all'interno del file BankAccount. Ti consiglio di rileggerti che cosa sono le classi sul tuo libro (o su qualche altra fonte se il libro è poco chiaro). È un concetto molto importante che dovresti imparare..
si si lo so che era la stessa cosa se l'avessi scritto nello stesso file... mi potresti almeno spiegare come avviene il passaggio di quei due valori numerici alle classi che poi effettuano le operazioni?
Dal codice posso leggere che; all'inizio ho un bilancio pari a 0, dopo vale 2000 perchè
public BankAccount(double initialBalance) { balance = initialBalance; }
fa riferimento a
BankAccount harrysChecking = new BankAccount(); harrysChecking.deposit(2000);
o sbaglio?