Merhaba arkadaşlar, bu yazımızda Python derslerinin bu serisinde yirmi ikinci ders olarak Python Nesne Tabanlı Programlama konusuna değinmeye çalışacağım. Umarım sizler için faydalı bir yazı olur. İsterseniz hemen başlayalım.
Python Nesne Tabanlı Programlama ve Neden Nesne Tabanlı Programlama?
Python Nesne Tabanlı Programlama, Python dilinin temelini oluşturan programlama yapısıdır. Bu yapıda, programlar nesneler aracılığıyla yazılır ve nesneler arasındaki ilişki ve etkileşimler incelenir.
Nesne tabanlı programlama, gerçek dünya nesnelerinin programda yansıtılmasına dayanır. Bu yapıda, nesnelerin özellikleri (özellikleri) ve davranışları (metotlar) tanımlanır. Örneğin, bir araba nesnesinin özellikleri arasında renk, model ve hız gibi özellikler bulunabilirken, davranışları arasında hızlandırmak, yavaşlatmak ve fren yapmak gibi davranışlar bulunabilir.
Nesne tabanlı programlama, programların daha anlaşılır, okunaklı ve bakımı kolay hale getirmek için kullanılır. Ayrıca, programların bölünmesi ve her bölümün ayrı ayrı test edilmesi mümkün hale gelir. Bu sayede, programların hata alma olasılığı azaltılır ve programların ömür boyu daha uzun olması sağlanır.
Sonuç olarak, Python Nesne Tabanlı Programlama, programların daha anlaşılır, okunaklı ve bakımı kolay hale getirilmesini sağlar. Ayrıca, programların bölünmesi ve her bölümün ayrı ayrı test edilmesi mümkün hale gelir. Bu sayede, programların hata alma olasılığı azaltılır ve programların ömür boyu daha uzun olması sağlanır.
Nesne Tabanlı Programlama Nedir?
Nesne Tabanlı Programlama (Object-Oriented Programming, OOP) bilgisayar programlama yapılarının temelini oluşturan bir yöntemdir. Bu yöntemde, gerçek dünya nesnelerinin programda yansıtılmasına dayanır. Nesnelerin özellikleri (özellikleri) ve davranışları (metotlar) tanımlanır. Bu sayede, programlar daha anlaşılır ve okunaklı hale gelir.
Nesne tabanlı programlama, bir programı oluştururken nesneler arasındaki ilişki ve etkileşimleri incelemeye ve anlamaya odaklanır. Bu yapıda, her nesne kendi özellikleri ve davranışları ile tanımlanır ve bu nesneler arasında ilişki ve etkileşimler oluşur. Örneğin, bir araba nesnesinin özellikleri arasında renk, model ve hız gibi özellikler bulunabilirken, davranışları arasında hızlandırmak, yavaşlatmak ve fren yapmak gibi davranışlar bulunabilir.
Nesne tabanlı programlama, programların bölünmesi ve her bölümün ayrı ayrı test edilmesini sağlar. Bu sayede, programların hata alma olasılığı azaltılır ve programların ömür boyu daha uzun olması sağlanır. Ayrıca, OOP yapısı, programların ölçeklendirilmesi, genişletilmesi ve güncellenmesi konusunda daha esnek olmasını sağlar.
Sınıf (Class)
Sınıf (class), nesne tabanlı programlama yapısında kullanılan bir kavramdır. Sınıf, bir nesnenin özellikleri (özellikler) ve davranışları (metotlar) tanımlamak için kullanılan bir yapıdır. Sınıflar, nesnelerin türünü belirler ve nesneler arasındaki ilişki ve etkileşimi tanımlar.
Sınıflar, birkaç özellik ve metot içerebilir. Özellikler, nesnenin özelliklerini tanımlar. Örneğin, bir araba sınıfının özellikleri arasında renk, model ve hız gibi özellikler bulunabilir. Metotlar ise, nesnenin davranışlarını tanımlar. Örneğin, bir araba sınıfının metotları arasında hızlandırmak, yavaşlatmak ve fren yapmak gibi davranışlar bulunabilir.
Bir sınıf tanımlandıktan sonra, sınıftan nesneler (instance) oluşturulabilir. Her nesne, sınıfın tanımlandığı özellikleri ve metotları içerecektir. Nesneler arasındaki ilişki ve etkileşimler, sınıf tanımlamasına göre belirlenir.
Sınıf kavramı, programların daha anlaşılır ve okunaklı hale getirilmesini sağlar. Ayrıca, sınıflar aracılığıyla programların bölünmesi ve her bölümün ayrı ayrı test edilmesi mümkün hale gelir. Bu sayede, programların hata alma olasılığı azaltılır ve programların ömür boyu daha uzun olması sağlanır.
Sınıf Nitelikleri
Sınıf nitelikleri (class properties), sınıfın özelliklerini tanımlayan verilerdir. Sınıf nitelikleri, sınıf tanımlandıktan sonra nesneler (instance) oluşturulduğunda, her nesne için ayrı ayrı değer alabilir. Sınıf nitelikleri, sınıf tanımlamasının içinde tanımlanır ve sınıfın tüm nesnelerine ait ortak özellikleri temsil eder.
Sınıf nitelikleri, sınıf metotları tarafından kullanılabilir. Örneğin, bir araba sınıfının nitelikleri arasında renk, model ve hız gibi özellikler bulunabilir. Bu nitelikler, araba sınıfının metotları tarafından kullanılarak arabanın rengini değiştirmek, modelini güncellemek veya hızını ölçmek gibi işlemler yapılabilir.
Sınıf nitelikleri, sınıf tanımlamasının içinde tanımlanırken, nitelik adının önüne @classmethod ile de tanımlanabilir. Bu sayede, nitelikler sadece sınıf tarafından kullanılabilir. Nitelikler, nitelik adının önüne @property ile de tanımlanabilir. Bu sayede, nitelikler sadece okunabilir hale getirilir.
Sınıf nitelikleri, programların daha anlaşılır ve okunaklı hale getirilmesini sağlar. Ayrıca, sınıf nitelikleri aracılığıyla programların bölünmesi ve her bölümün ayrı ayrı test edilmesi mümkün hale gelir. Bu sayede, programların hata alma olasılığı azaltılır ve programların ömür boyu daha uzun olması sağlanır.
Sınıf ile Nesne Arasındaki Fark Nedir?
Sınıf ve nesne arasındaki fark, nesne tabanlı programlama yapısında kullanılan kavramlardır.
Sınıf, bir nesnenin özellikleri (nitelikler) ve davranışları (metotlar) tanımlamak için kullanılan bir yapıdır. Sınıf, nesnelerin türünü belirler ve nesneler arasındaki ilişki ve etkileşimi tanımlar. Sınıflar, birkaç özellik ve metot içerebilir. Özellikler, nesnenin özelliklerini tanımlar. Metotlar ise, nesnenin davranışlarını tanımlar.
Nesne ise, sınıftan oluşturulmuş bir örnektir. Her nesne, sınıfın tanımlandığı özellikleri ve metotları içerecektir. Nesneler arasındaki ilişki ve etkileşimler, sınıf tanımlamasına göre belirlenir. Nesne, sınıfın tanımlandığı özellikleri ve metotları kullanarak, kendine özgü bir davranış sergileyebilir.
Özellikle; Sınıf, bir tasarım şablonudur. Oluşturulan her nesne, aynı şablonu kullanır ve aynı özelliklere sahiptir. Nesneler, Sınıfın özelliklerini ve metotlarını kullanarak çalışır ve kendilerine özgü değerleri alırlar.
Self
“self” , Python’da nesne tabanlı programlama yaparken kullanılan bir anahtar kelimedir. Sınıf metotlarında “self” parametresi, o sınıfın nesnesinin kendisini temsil eder. Bu, metotların sınıfın nesnesi üzerinde işlem yapmasını sağlar.
“self” parametresi, sınıf metotları tanımlarken ilk parametre olarak kullanılır. Örneğin, bir “Araba” sınıfında, “hizlandir” metodunda “self” parametresi, o sınıfın nesnesinin kendisini temsil eder ve metot arabayı hızlandırır.
class Araba: def __init__(self, model, renk): self.model = model self.renk = renk def hizlandir(self, hiz): self.hiz = hiz print(f"Araba hızlandı. Hız: {self.hiz} km/s")
Bu örnekte, sınıfın “init” metodu, “self” parametresi ile arabanın modeli ve renklerini tanımlar. “hizlandir” metodu ise, “self” parametresi ile arabanın hızını değiştirir.
“self” parametresi, sınıf metotlarının sınıfın nesnelerine nasıl etki edeceğini belirler ve metotların sınıfın nesnelerine nasıl erişeceğini sağlar. Ayrıca, “self” parametresi ile sınıf metotları arasında veri paylaşımı yapılması mümkün hale gelir.
Arkadaşlar bu Python Nesne Tabanlı Programlama adlı yazımızın da sonuna gelmiş bulunmaktayız. Umarım faydalı olmuştur.