Metot
- İ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
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.
İlgili sayfalar
- FonksiyonProgramlamanın Temelleri, s. 20Fonksiyon, belirli bir işi yapan, isteğe bağlı olarak parametre denen girdiler alıp sonuç döndürebilen, adlandırılmış ve yeniden kullanılabilir kod bloğudur.
- NesneProgramlamanın Temelleri, s. 39Nesne, ilgili veriyi ve davranışı bir arada tutan yapıdır: değerleri özellik denen adlandırılmış alanlarda, onları işleyen fonksiyonları metot olarak taşır.
- SınıfProgramlamanın Temelleri, s. 49Sınıf, nesne yönelimli programlamada bir grup nesnenin paylaştığı veri ve davranışı tanımlayan, nesnelerin örnek olarak ondan oluşturulduğu bir plandır.
- Çok biçimlilikProgramlamanın Temelleri, s. 8Çok biçimlilik, kodun farklı türlerdeki değerlerle ortak bir arayüz üzerinden çalışabilmesidir; her tür kendi davranışını sağlar.
- KapsüllemeProgramlamanın Temelleri, s. 33Kapsülleme, verileri onları kullanan metotlarla paketleyip iç ayrıntıları gizlemektir; dışarıdaki kod yalnızca herkese açık bir arayüz üzerinden çalışır.
- OOPProgramlamanın Temelleri, s. 41OOP, yani nesne yönelimli programlama, kodu ilişkili verileri onlar üzerinde işlem yapan fonksiyonlarla birleştiren nesneler etrafında düzenleme yöntemidir.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin