Javascript Sınıf (Class) Nedir ? Nasıl Kullanılır ?

Herhangi bir nesne tabanlı dille kodlama yapmış arkadaşlar bilirler. Nesne yönelimli dillerde Class yapısı vardır.

Ecmascript 6 ile birlikte Javascript diline' de Class yani sınıf kavramı getirilmiştir.

Class (Sınıf) Tanımlama

Javascript dilinde sınıflar class ön ekiyle tanımlanır.

Temel Sözdizimi şu şekildedir;

<script>
class Sinif{
  constructor() { ... }
}
</script>

Örnek kullanım;

<script>
class Araba {
  constructor(ad, model) {
    this.ad = ad;
    this.model = model;
  }
}
</script>

Yukarıdaki örnek Araba adında bir sınıf oluşturur.

Ad ve model adında iki adet başlangıç özelliğine sahiptir.

Javascript sınıflraı bir nesne değildir. Nesne tanımlamak için sınıf oluşturulur.

Sınıfları Kullanmak

Sınıflar tek başına bir işe yaramazlar. Sınıfları kullanmak için onlardan nesne oluşturmamız gereklidir.

<script>
class Araba {
  constructor(ad, model) {
    this.ad = ad;
    this.model = model;
  }
}


let araba = new Araba("Bmv","e220D");
console.log(araba.ad);
console.log(araba.model);
</script>

Yukardaki örnek çalıştığında konsol ekranında şunlar yazacaktır.

Bmv
e220D

Constructor Metodu

Constructor metodu özel bir metottur. Sihirli metot olarak da bilinir.

Yeni bir nesne oluşturulduğunda eğer sınıfın içerisinde constructor metodu varsa otomatik olarak çalışır.

Nesne özelliklerini başlatmak için kullanılırlar. Yani kısaca sınıf başladığında bir işlem yaptırmak istiyorsak ilk olarak bu metot çalışır.

Eğer bir constructor tanımlamazsanız Javascript otomatik olarak boş bir constructor çalıştırır.

Sınıf Metotları

Sınıflar içinde belli işlemleri yapmasını istediğimiz metotlar olmalıdır. Aslında her sınıf bir işlemi temsil etmeli ve her metotta sadece bir işlemi yapmalıdır. Böylelikle kodlarımız daha okunaklı ve sürdürebilir olacaktır. Önerilen kullanımlardan birisi de constructor metodunun her sınıfta tanımlanmasıdır.

Metotlar temel olarak şu şekilde kullanılırlar.

<script>
class Sinif {
  constructor() { ... }
  metot_1() { ... }
  metot_2() { ... }
  metot_3() { ... }
}
</script>

Şimdi gerçek hayattan bir örnekle konuyu pekiştirelim. Şirket hakkında bir sınıf oluşturacağız.

Senaryo şu şekil;

- Şirket adında bir sınıfımız var.

- Şirketimizde 5 personel var.

- Bir personelin maaşı 4 bin TL

- Toplam Fatura 1000 TL

- Ofis Kirası 4500 TL

Bir metot yazacağız ve bize toplam gideri verecek.

<script>
 class Sirket{
 	constructor(personel_sayisi){
 		this.personel_sayisi=personel_sayisi;
 	}
 	giderHesapla(maas,faturalar,ofis_kirasi){ 
 		let toplamMaas = this.personel_sayisi*maas;
 		return toplamMaas+faturalar+ofis_kirasi;
 	}
 }


 let kodlamaklazim = new Sirket(5);
 let gider = kodlamaklazim.giderHesapla(4000,1000,4500);
 console.log("Bir aylık toplam gider: "+gider+" TL");
//Çıktı:  Bir aylık toplam gider: 25500 TL
</script>

Javascript Inheritance ( Miras Alma )

Javascript ile oluşturduğumuz iki sınıf birbirleriyle iletişim kurabilirler. MEsela bir sınıfın özelliğini yeni oluşturduğumuz başka bir sınıfta kullanabiliriz. Bunun için extends anahtar sözcüğü kullanılır. Bunu direk örnek üzerinden anlatmak istiyorum.

<script>
class Araba{
  constructor(marka) {
    this.arabaAdi= marka;
  }
  present() {
    return 'Benim sahip olduğum araba:' + this.arabaAdi;
  }
}

class Model extends Araba{
  constructor(marka, mod) {
    super(marka);
    this.model = mod;
  }
  show() {
    return this.present() + ', arabamın modeli ' + this.model;
  }
}

let myCar = new Model("Ford""Mustang");
document.getElementById("demo").innerHTML = myCar.show();
</script>


super() metodu ile üst sınıftan miras alırız.

Constructor metodunda super () metodunu çağırarak, üst sınıfın constructor metodunu çağırırız ve üst sınıfın özelliklerine ve yöntemlerine erişim elde ederiz.

Get ve Set Metotları

Sınıflar get ve set metotlarını kullanmamıza izin verir. Get metodu veri çekmek set metodu ise veri oluşturmak için kullanılırlar.

<script>
class Araba{
  constructor(marka) {
    this.arabaAdi= Marka;
  }
  get cnam() {
    return this.arabaAdi;
  }
  set cnam(x) {
    this.arabaAdi= x;
  }
}

let myCar = new Araba("Ford");

document.getElementById("demo").innerHTML = myCar.cnam;
</script>


YAZAR HAKKINDA

26 Yaşında. Araştırmayı seven, bir şeyler öğretmeye meraklı bir Bilgisayar Mühendisi

0 YORUM

Bu konuya henüz yorum yapılmamış

Yorum Yap

@COPYRIGHT KodlamakLazım Tüm Hakları Saklıdır.