Riepilogo - Calcolatrice semplice
Fa parte della sezione Programmazione orientata agli oggetti del percorso GDScript di Coddy. Lezione 8 di 65.
Sfida
MedioScrivi la classe Calculator in calculator.gd. Mantiene un risultato progressivo nella proprietà float result, che parte da 0.0.
add(number),subtract(number),multiply(number)edivide(number)applicano l’operazione aresultconnumber, memorizzano il nuovo risultato e lo restituiscono- Quando
divide()riceve0, stampaError: Division by zero, lasciaresultinvariato e lo restituisce clear()reimpostaresulta0.0e lo restituisceget_result()restituisceresult
Il codice fornito legge quanti comandi seguono, poi un comando per riga, ad esempio add 5, divide 0 o clear. Dopo ogni comando stampa il nome del comando e il valore restituito dal metodo, e alla fine il risultato finale. Per add 5, multiply 3, subtract 2, divide 0 e divide 2 stampa:
add -> 5.0
multiply -> 15.0
subtract -> 13.0
Error: Division by zero
divide -> 13.0
divide -> 6.5
Final result: 6.5Il tuo codice va in calculator.gd. main.gd contiene il codice di input/output fornito e non può essere modificato.
Provalo tu
extends Node
func _ready():
# Codice di input/output fornito: lascialo così com'è
var calc := Calculator.new()
var count := int(OS.read_string_from_stdin())
for i in count:
var parts := OS.read_string_from_stdin().split(" ")
var value := 0.0
match parts[0]:
"add":
value = calc.add(float(parts[1]))
"subtract":
value = calc.subtract(float(parts[1]))
"multiply":
value = calc.multiply(float(parts[1]))
"divide":
value = calc.divide(float(parts[1]))
"clear":
value = calc.clear()
print("%s -> %s" % [parts[0], value])
print("Final result: %s" % calc.get_result())
Tutte le lezioni di Programmazione orientata agli oggetti
1Fondamenti della programmazione orientata agli oggetti
File esterniIntroduzione alla programmazione orientata agli oggettiClassi e oggetti a confrontoLa parola chiave selfMetodiProprietàCostruttore (_init)Riepilogo - Calcolatrice semplice4Polimorfismo
Ripasso dell'override dei metodiDuck typingClassi e metodi astrattiProgettazione delle interfacceRiepilogo - Calcolatore di forme7Segnali
Che cos'è un segnale?Dichiarare ed emettereCollegarsi ai segnaliSegnali con argomentiRipasso - Sistema della salute10Pattern di progettazione, parte 2
Pattern CommandPattern AdapterPattern DecoratorPattern Template MethodPattern StatePattern Composite2Proprietà delle classi
Variabili di istanza e staticheFunzioni staticheSetter delle proprietàGetter delle proprietàPrivato per convenzioneRiepilogo - Gestore di conti bancari5Incapsulamento
Membri pubblici e privatiValidazione con i setterNascondimento delle informazioniProprietà di sola letturaRiepilogo - Sistema di gestione dei dati degli studenti8Concetti avanzati di OOP
Composizione vs ereditarietàClassi interneNodi come componentiRefCounted vs NodeEnum nelle classi11Progetto: Gestione della biblioteca
Panoramica del progettoClassi Libro e Utente3Ereditarietà
Ereditarietà di baseLa parola chiave superOverride dei metodiCatene di ereditarietàControlli di tipo con isRipasso - Gerarchia dei dipendenti6Metodi speciali
Introduzione ai metodi virtualiIl metodo _to_stringIteratori personalizzatiRiepilogo - Lista personalizzata9Modelli di progettazione, parte 1
Introduzione ai modelli di progettazionePattern SingletonPattern FactoryPattern ObserverPattern StrategyEsercitati da solo: Compilatore GDScript online