**Setter (Ayar Metodu)**
Setter, nesne yönelimli programlamada bir sınıfın özelliklerinin (attributes) değerlerini değiştirmek için kullanılan bir metottur. Genellikle özel (private) olarak tanımlanmış özelliklere dışarıdan erişimi ve kontrolü sağlamak amacıyla kullanılır. Bu sayede, özelliklere doğrudan erişmek yerine, değer atama işlemi bir metot aracılığıyla gerçekleştirilir ve bu metot içerisinde veri doğrulama, kısıtlama veya diğer yan etkiler uygulanabilir.
**Temel İşlevleri:**
* **Veri Kapsülleme:** [https://www.nedemek.page/kavramlar/veri%20kapsülleme](https://www.nedemek.page/kavramlar/veri%20kapsülleme) prensibini destekler. Özelliklerin doğrudan değiştirilmesini engelleyerek, sınıfın iç tutarlılığını korur.
* **Veri Doğrulama:** Setter metotları, yeni değer atanmadan önce verinin geçerliliğini kontrol edebilir. Örneğin, yaş değişkenine negatif bir değer atanmasını engelleyebilir.
* **Kontrollü Erişim:** Özelliklere erişimi kısıtlayarak, sadece belirli koşullar altında değerlerin değiştirilmesine izin verir.
* **Yan Etkiler:** Bir özelliğin değeri değiştirildiğinde, diğer işlemleri tetikleyebilir. Örneğin, bir kullanıcının adı değiştirildiğinde, kullanıcı adı da otomatik olarak güncellenebilir.
**Kullanım Alanları:**
* **Nesne Durumunu Yönetme:** Nesnelerin iç durumunu güvenli ve kontrollü bir şekilde değiştirmek.
* **API Tasarımı:** Sınıfların dışarıya sunduğu arayüzü (API) daha esnek ve güvenli hale getirmek.
* **Model-View-Controller (MVC) Mimarisi:** Model katmanındaki verilerin güncellenmesini sağlamak.
**Örnek (Python):**
```python
class Kisi:
def __init__(self, ad, yas):
self._ad = ad # _ad: Adın doğrudan erişilmemesi gerektiğini belirtir (convention).
self._yas = yas
def get_ad(self):
return self._ad
def set_ad(self, yeni_ad):
if not isinstance(yeni_ad, str):
raise ValueError("Ad metin (string) türünde olmalıdır.")
self._ad = yeni_ad
def get_yas(self):
return self._yas
def set_yas(self, yeni_yas):
if not isinstance(yeni_yas, int):
raise ValueError("Yaş sayı (integer) türünde olmalıdır.")
if yeni_yas < 0:
raise ValueError("Yaş negatif olamaz.")
self._yas = yeni_yas
# Kullanım:
kisi = Kisi("Ayşe", 30)
print(kisi.get_ad()) # Output: Ayşe
kisi.set_ad("Fatma")
print(kisi.get_ad()) # Output: Fatma
try:
kisi.set_yas(-5)
except ValueError as e:
print(e) # Output: Yaş negatif olamaz.
Bu örnekte, set_ad
ve set_yas
metotları, ad
ve yas
özelliklerine değer atamadan önce veri doğrulama işlemleri yapmaktadır. Bu sayede, nesnenin tutarlı bir durumda kalması sağlanır. Veri türü kontrolü de yapılmaktadır.
Setter metotları, daha karmaşık uygulamalarda ve özellikle büyük projelerde, veri bütünlüğünü korumak ve nesne davranışlarını kontrol altında tutmak için önemlidir. Getter (erişim metodu) ile birlikte kullanılırlar ve bir sınıfın özelliklerine erişimi ve değiştirme işlemlerini kapsüllerler. https://www.nedemek.page/kavramlar/getter
Ne Demek sitesindeki bilgiler kullanıcılar vasıtasıyla veya otomatik oluşturulmuştur. Buradaki bilgilerin doğru olduğu garanti edilmez. Düzeltilmesi gereken bilgi olduğunu düşünüyorsanız bizimle iletişime geçiniz. Her türlü görüş, destek ve önerileriniz için iletisim@nedemek.page