Durumu değiştiren metotlar
Coddy'nin JavaScript Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası — ders 15 / 56.
JavaScript sınıflarındaki metotlar, bir nesnenin durumunu (özelliklerini) değiştirebilir. Bu, nesne yönelimli programlamanın temel özelliklerinden biridir.
Basit bir BankAccount sınıfı oluşturalım:
class BankAccount {
constructor(owner, balance = 0) {
this.owner = owner;
this.balance = balance;
}
deposit(amount) {
this.balance += amount;
}
}Şimdi bir örnek oluşturalım ve durumunu değiştirelim:
const johnsAccount = new BankAccount("John", 100);
console.log(johnsAccount.balance); // Çıktı: 100
johnsAccount.deposit(50);
console.log(johnsAccount.balance); // Çıktı: 150Bu örnekte, deposit() metodu BankAccount örneğinin dahili durumunu (balance özelliği) değiştirir.
Daha fazla durum değiştiren metot ekleyebiliriz:
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;
}
}
}Artık banka hesabımızı birden fazla şekilde yönetebiliriz.
Görev
Size bir Thermostat sınıfı verilmiştir. Göreviniz, sıcaklık durumunu değiştiren metotlar eklemektir:
increaseTemp()- sıcaklığı 1 derece artırırdecreaseTemp()- sıcaklığı 1 derece azaltır
Kopya kağıdı
JavaScript sınıflarındaki metotlar, bir nesnenin durumunu (özelliklerini) değiştirebilir.
Durum değiştiren metotlara sahip bir sınıf örneği:
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;
}
}
}Durum değiştiren metotların kullanımı:
const johnsAccount = new BankAccount("John", 100);
console.log(johnsAccount.balance); // Çıktı: 100
johnsAccount.deposit(50);
console.log(johnsAccount.balance); // Çıktı: 150Kendin dene
import { Thermostat } from './thermostat.js';
// Test kodu - değiştirmeyin
const livingRoom = new Thermostat("Living Room", 20);
livingRoom.increaseTemp();
livingRoom.increaseTemp();
console.log(livingRoom.currentTemp); // 22 çıktısını vermeli
livingRoom.decreaseTemp();
console.log(livingRoom.currentTemp); // 21 çıktısını vermeli
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Nesne Yönelimli Programlama bölümündeki tüm dersler
1Nesneler ve this Anahtar Kelimesi
Hızlı Tekrar: NesnelerNesnelere Metot Eklemethis Anahtar Kelimesini AnlamakYapıcı Fonksiyonlarnew Anahtar KelimesiGenel Tekrar Uygulaması7Kalıtım ve extends Anahtar Kelimesi
Kalıtım"is-a" İlişkisiextends Anahtar Kelimesisuper() MetoduÖzellikleri ve Metotları DevralmaÖzet Meydan Okuması2Kodu Düzenleme
Modüller Nedir?export ile Dışa Aktarmaimport ile İçe AktarmaVarsayılan ve Adlandırılmış Dışa Aktarmalar8OOP Kodunu Düzenleme
Sınıfları Modüller Halinde Düzenleme6Proje: Basit Bir Banka Hesabı
BankAccount SınıfıPara Yatırma ve Para Çekme9Statik Metotlar ve Özellikler
Sınıf Düzeyi ve Örnek DüzeyiStatik ÖzelliklerStatik Yardımcı MetotlarÖzet Meydan Okuma12Getter ve Setter'lar
get ve set Anahtar KelimeleriHesaplanmış ÖzelliklerDoğrulama ve Yan EtkilerÖzet Meydan Okuması15Final Meydan Okumaları
Oyun Karakteri OluşturucuE-ticaret Ürün SistemiÜniversite Yönetim SistemiAkıllı Ev Cihaz Sistemi