# Metot

Adres: https://softwaredictionary.org/tr/terimler/method
Kategori: Programlamanın Temelleri
Son güncelleme: 2026-10-03
İngilizcesi: Method
Türkçe karşılığı: metod, yöntem
Okunuşu: methıd

Kısaca: Metot, bir nesneye ya da sınıfa ait olup onun üzerinden çağrılan fonksiyondur; `user.rename("Ada")` örneğindeki gibi nesnenin verisini okuyup değiştirebilir.

## Programlamada metot (method) nedir?

Metot bir sınıfın içinde tanımlanır ya da bir nesneye eklenir ve noktayla çağrılır: `cart.addItem(book)`, `"hello".toUpperCase()`. Metodun içinde, üzerinden çağrıldığı nesneye JavaScript, Java ve C#'ta `this`, Python ve Ruby'de `self` ile ulaşılır; böylece metot o nesnenin alanlarını kullanıp güncelleyebilir.

Örnek metotları (instance method) belirli bir nesne üzerinde çalışır, `account.deposit(50)` gibi. Sınıf metodu da denen statik metotlar ise sınıfın kendisine aittir ve bir nesneye ihtiyaç duymaz, `Math.max(3, 7)` ya da `User.fromJson(data)` gibi bir fabrika metodu gibi. Birçok dilde ayrıca düz bir özellik erişimi gibi görünen metotlar olan getter ve setter'lar da vardır.

Metotlar, nesnelerin iç ayrıntılarını gizlerken davranışlarını sunma yoludur. Çağıran kod nesnenin alanlarını doğrudan değiştirmek yerine nesneden bir şey yapmasını ister, `order.cancel()`; metot kuralları kontrol edebilir, ilgili verileri güncelleyebilir ve nesneyi geçerli durumda tutabilir. Alt sınıflar bir metodu ezerek (override) ne yaptığını değiştirebilir; çok biçimliliğin temeli budur.

Sık yapılan bir yanlış, metotlarla fonksiyonların tamamen farklı şeyler olduğunu düşünmektir. Metot bir fonksiyondur; tek fark, bir nesneye ya da sınıfa bağlı olması ve o nesneyi örtük olarak almasıdır. JavaScript'te nesnesinden koparılıp tek başına çağrılan bir metot `this`'ini bile kaybedebilir; bu sık görülen bir hata kaynağıdır.

## Önemli noktalar

- Metot, bir nesneye ya da sınıfa ait bir fonksiyondur.
- Nesnesine this ile (Python ve Ruby'de self ile) ulaşır.
- Örnek metotları tek bir nesne üzerinde çalışır; statik metotlar sınıfa aittir.
- Metotlar nesnelerin davranış sunmasını ve iç durumlarını korumasını sağlar.
- Alt sınıflar metotları ezebilir; bu da çok biçimliliği mümkün kılar.

## Örnek: Örnek ve statik metotlar (Python)

```python
class Account:
    def __init__(self, owner, balance=0):
        self.owner = owner
        self.balance = balance

    def deposit(self, amount):          # instance method: works on one account
        if amount <= 0:
            raise ValueError("Amount must be positive")
        self.balance += amount

    @staticmethod
    def fee_for(amount):                # static method: needs no account
        return round(amount * 0.01, 2)

acct = Account("Ada")
acct.deposit(100)
print(acct.balance, Account.fee_for(100))
```

## Sık sorulan sorular

**Metot ile fonksiyon arasındaki fark nedir?**

Fonksiyon kendi başına durur; metot ise bir nesneye ya da sınıfa bağlı olan ve onun üzerinden çağrılan bir fonksiyondur. Metot ayrıca o nesneyi this ya da self olarak alır, böylece onun verisiyle çalışabilir.

**Statik metot nedir?**

Herhangi bir nesneye değil, sınıfa ait olan bir metottur. `Math.round(2.5)` gibi sınıf üzerinden çağrılır ve dışarıdan bir nesne verilmedikçe örnek alanlarını kullanamaz.

**Metot ezme (method overriding) nedir?**

Bir alt sınıfta, üst sınıftakiyle aynı ada sahip bir metot tanımlamaktır; böylece alt sınıfın nesneleri yeni sürümü kullanır. Farklı türlerin aynı çağrıya kendi yollarıyla yanıt vermesini sağlar.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
