Unity ile Nesne Yönelimli Programlama yazı serisi ile birlikte Mobidictum üzerinden başlayacağımız bir serüvenden herkese merhaba.
Bir programlama dili öğrenirken hep aynı benzer adımlarla başlanır: Değişken nedir? Değişken tipleri nedir? Operatörler nedir? Koşul ifadeleri nelerdir? Döngüler nelerdir, nasıl kullanılır? Metod nedir? Şeklinde uzayıp giden öğrenme adımları vardır. Birde en önemlisi algoritma oluşturmaktır.
Yeni bir dil öğreneceğiniz zaman isterseniz bu adımları yine takip edebilirsiniz. Fakat her dilde bunların aynı veya benzer olduğunu gördüğünüzde öğrenme süreci sıkıcı olabiliyor. Programlamaya yeni başlayan hevesli bazı arkadaşlarımız ise bu en temel konuları basit görüp atlamayı tercih edebiliyorlar ve ilerleyen zamanlarda büyük zorluklar yaşıyorlar. Bu temel konuları alfabenin harfleri, programlamayı da okuyacağınız bir paragraf yazı olarak görebilirsiniz.
Benim bu seriye başlarken hedefim alfabenin harflerinden değil paragraftan başlayarak programlama bilgimi ve tecrübelerimi aktarmak olacak. Harfleri ise yeri geldikçe sizlere anlatmaya çalışacağım.
C# ile Unity3D içerisinde OOP prensiplerini nasıl kullanırız bunları anlatacağım. Programlama yaparken düşünce şeklimi size aktarmaya çalışacağım.
Burada anlatacaklarımın size bir yol göstermesini umut ediyorum. Yine de işin büyük kısmı sizin öğrenme arzunuza bağlı. Öğreneceklerinizi, merak ettiklerinizi tek bir kaynağa bağlı kalmadan araştırmanız gerektiğini unutmayın.
Nesne Nedir?
Günlük hayatta gördüğümüz her şeye nesne diyebiliriz. Kurşun Kalem, Kırmızı Defter, Tekir Kedi, Sarı Elma vs. Gördüğümüz her nesneyi diğerlerinden ayırt etmek için bu nesnelerin özelliklerini kullanırız. Hangi elma?
– Sarı elma veya kırmızı elma veya soldaki yeşil elma veya soldan üçüncü kırmızı elma gibi.
Programlama yaparken yarattığımız her class bir nesnedir. Classlarda yarattığımız değişkenler ve metotlar (fonksiyonlar) ile nesnelerin özelliklerini belirtiriz. Neler yaptıklarını kontrol ederiz.
Örnek olarak uyuyan tekir kedi.
public class Cat { private string _catType = "tekir"; private bool _isSleep = true; }
Kedi; tırmanabilir, koşabilir, uyuyabilir, yemek yiyebilir vs.
public class Cat { private string _catType = "tekir"; private bool _isSleep; public void Climb() { } public void Run() { } public void Sleep() { } public void Eat() { } }
Verileri saklayan ve bu veriler üzerinden işlemler yaparak nesnenin özelliklerini bize gösteren bileşenlere Nesne (Object) denir. Değişkenler ve metotları saklayan bileşenlere Class (Sınıf) denir. Classlar nesnelerin özelliklerini ve işlevlerini değişkenler ve metotlar ile gösterir. Yarattığınız her class (nesne) için hafızada yer ayrılır.
Nesne Yönelimli Programlama (OOP) Nedir?
Kedi örneğinde gördüğümüz gibi kullanacağımız nesnelerin bilgisayar ortamına özelliklerinin aktarılarak programlamanın bu nesneler ile belirli kurallar içerisinde kullanımına Nesne Yönelimli Programlama (Object Oriented Programming) denir.
Neden OOP?
Programlama esnasında yeni bir özellik ve/veya işlev eklemek istediğimizde tüm programda değişiklik yapmak yerine sadece ilgili nesnenin classında değişiklik yapılmasını sağlar. Nesneler birbirinden bağımsız olduğu için istediğimiz bilgiyi gizleyebilir erişimini sınırlayabiliriz.
Yarattığımız bir classı farklı bir projede kullanabilir ve aynı kodları tekrar tekrar yazmayarak zamandan kazanmamızı sağlayabiliriz. Verimliliği arttırmış oluruz. Uzun kodların tekrar yazılmasının önüne geçmiş olup, kısa kodlamalar ile nesnelerin işlevlerini çalıştırabiliriz.
OOP Özellikleri
OOP de 4 temel özellik bulunmaktadır:
- Abstraction (Soyutlama)
- Encapsulation (Kapsülleme)
- Inheritance (Miras Alma)
- Polymorphism (Çok Biçimlilik)
Bir sonraki yazımızda bu özellikleri incelemeye başlamadan önce Class’ı ve Nesne Class arasındaki ilişkiyi biraz daha detaylı inceleyeceğiz.
Neler Öğrendik?
- Nesne (Object) nedir?
- Nesne Yönelimli Programlama (Object Oriented Programming) nedir ve özellikleri.
- Neden OOP yaklaşımıyla programlama yaparız.