Metodi che modificano lo stato
Fa parte della sezione Programmazione orientata agli oggetti del percorso JavaScript di Coddy. Lezione 15 di 56.
I metodi nelle classi JavaScript possono modificare lo stato (le proprietà) di un oggetto. Questa è una delle caratteristiche principali della programmazione orientata agli oggetti.
Creiamo una semplice classe BankAccount:
class BankAccount {
constructor(owner, balance = 0) {
this.owner = owner;
this.balance = balance;
}
deposit(amount) {
this.balance += amount;
}
}Ora creiamo un'istanza e modifichiamone lo stato:
const johnsAccount = new BankAccount("John", 100);
console.log(johnsAccount.balance); // Outputs: 100
johnsAccount.deposit(50);
console.log(johnsAccount.balance); // Outputs: 150In questo esempio, il metodo deposit() modifica lo stato interno (la proprietà balance) dell'istanza BankAccount.
Possiamo aggiungere altri metodi che modificano lo stato:
class BankAccount {
constructor(owner, balance = 0) {
this.owner = owner;
this.balance = balance;
}
deposit(amount) {
this.balance += amount;
}
withdraw(amount) {
if (amount <= this.balance) {
this.balance -= amount;
}
}
transfer(amount, toAccount) {
if (amount <= this.balance) {
this.balance -= amount;
toAccount.balance += amount;
}
}
}Ora possiamo manipolare il nostro conto bancario in più modi.
Sfida
Ti viene data una classe Thermostat. Il tuo compito è aggiungere metodi che modificano lo stato della sua temperatura:
increaseTemp()- aumenta la temperatura di 1 gradodecreaseTemp()- diminuisce la temperatura di 1 grado
Provalo tu
import { Thermostat } from './thermostat.js';
// Código de prueba - no modificar
const livingRoom = new Thermostat("Living Room", 20);
livingRoom.increaseTemp();
livingRoom.increaseTemp();
console.log(livingRoom.currentTemp); // Debería mostrar 22
livingRoom.decreaseTemp();
console.log(livingRoom.currentTemp); // Debería mostrar 21
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Programmazione orientata agli oggetti
1Oggetti e la keyword this
Ripasso rapido: oggettiAggiungere metodi agli oggettiCapire la keyword thisFunzioni costruttriciLa keyword newSfida di ripasso7Ereditarietà e parola chiave extends
EreditarietàLa relazione «è un»La parola chiave extendsIl metodo super()Ereditare proprietà e metodiSfida di ripasso13Composizione vs. ereditarietà
«Ha-un» vs. «è-un»I limiti dell’ereditarietà profondaCostruire oggetti2Organizzare il codice
Cosa sono i moduli?Esportare con exportImportare con importExport predefiniti vs. export nominati5Incapsulamento e accesso
IncapsulamentoCampi di classe pubblici e privatiMetodi privatiSfida di riepilogo8Organizzare il codice OOP
Organizzare le classi in moduli11Progetto: Un renderizzatore di forme
Configurazione: classe Shape ed esportazioneEreditarietà della classe CircleOverride e metodo areaContatore statico di Shape14Sistema di gestione della biblioteca
Progettare la bibliotecaClasse Book con composizioneValidazione dell'autore del libroEsercitati da solo: Compilatore JavaScript online