Menu
Coddy logo textTech

Sınıf Düzeyi ve Örnek Düzeyi

Coddy'nin JavaScript Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 31 / 56.

JavaScript sınıflarında, özellikler ve yöntemler için iki farklı düzey vardır:

  1. Örnek düzeyi: Sınıftan oluşturulan her bir nesneye ait özellikler ve yöntemler.
  2. Sınıf düzeyi: Örneklerin değil, sınıfın kendisine ait özellikler ve yöntemler.

Gelin farkı anlayalım:

Öncelikle örnek düzeyindeki üyelere bakalım. Örnek yöntemi olan normal bir sınıf oluşturun:

class Car {
  constructor(make) {
    this.make = make;
  }
  
  drive() {
    return `The ${this.make} is driving`;
  }
}

Car sınıfının bir örneğini oluşturun:

const myCar = new Car("Toyota");

Örnek metodunu çağırın:

console.log(myCar.drive()); // Çıktı: "The Toyota is driving"

Her örneğin drive metodunun kendi kopyasını aldığını ve this kullanarak kendi özelliklerine erişebildiğini fark edin.

Şimdi sınıf düzeyindeki üyelere bakalım. Sınıfımıza statik bir yöntem ekliyoruz. Örneklere değil, sınıfın kendisine ait bir yöntem oluşturmak için yöntem adının önüne static anahtar kelimesini kullanın.

class Car {
  constructor(make) {
    this.make = make;
  }
  
  drive() {
    return `The ${this.make} is driving`;
  }
  
  static compareModels(car1, car2) {
    return `Comparing ${car1.make} with ${car2.make}`;
  }
}

Statik metotlar, belirli örnek verilerine bağlı olmayan yardımcı fonksiyonlar için kullanışlıdır. Statik metot, örnekler üzerinde değil, sınıfın kendisi üzerinde çağrılır:

const car1 = new Car("Toyota");
const car2 = new Car("Honda");

console.log(Car.compareModels(car1, car2)); // Çıktı: "Comparing Toyota with Honda"

Bir örnek üzerinden statik bir yöntemi çağırmaya çalışmak hatayla sonuçlanır:

car1.compareModels(car1, car2); // Hata: car1.compareModels bir fonksiyon değil
challenge icon

Görev

Yalnızca bir kurucuya sahip bir Calculator sınıfı veriliyor. Göreviniz iki yöntem eklemek:

1. Örnek Yöntemi <strong>add(number)</strong>

  • Verilen sayıyı hesap makinesinin mevcut değerine ekler
  • this.value değerini günceller ve yeni değeri döndürür

    *Hesap makinesi örnekleri üzerinde çağrılır: calc.add(3)

2. Statik Yöntem <strong>multiply(num1, num2)</strong>

  • İki sayı alır ve bunların çarpımını döndürür
  • this kullanmaz (statik yöntemlerin örnek verileri yoktur)

    *Calculator sınıfının kendisi üzerinde çağrılır: Calculator.multiply(4, 6)

Kendin dene

import { Calculator } from './calculator.js';


// Aşağıdaki kodu değiştirmeyin
const calc = new Calculator(5);        // Değeri 5 olan bir hesap makinesi oluşturur
const result1 = calc.add(3);           // 3 eklemeli → 5 + 3 = 8
const result2 = Calculator.multiply(4, 6); // 4 × 6 = 24 çarpmalı
console.log(result1);                   // Beklenen: 8
console.log(result2);                   // Beklenen: 24
quiz iconKendini test et

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

Kendi başına pratik yap: Online JavaScript derleyicisi