Nesne Yönelimli Programlama (OOP) Temelleri

nt

Emekli
Katılım
21 Nisan 2023
Mesajlar
1,215
Pratik Uygulama: Basit Bir Banka Uygulaması

Bu bölümde, öğrendiğimiz OOP konseptlerini bir Python uygulamasında nasıl kullanacağımızı göstereceğiz. Basit bir banka uygulaması oluşturarak, müşterileri ve hesapları temsil eden sınıflar oluşturacağız. Bu uygulama sayesinde, hesap bakiyelerini kontrol etme, para yatırma ve çekme gibi işlemleri gerçekleştireceğiz.

Uygulama Aşamaları:

Müşteri Sınıfı (Customer Class):
Müşteri bilgilerini ve hesapları temsil eden bir sınıf oluşturacağız.

Hesap Sınıfı (Account Class): Hesap bakiyelerini yöneten bir sınıf oluşturacağız. Bu sınıf, hesaba para yatırma ve çekme gibi işlemleri gerçekleştirecek metotlar içerecek.

OOP'nin Gücünü Görmek: Müşteri nesneleri ve hesap nesneleri oluşturarak, miras alma ile yeni özellikler ekleyerek ve çok biçimlilik ile farklı hesap türlerini yöneterek OOP'nin gücünü göreceğiz.

Hesap İşlemleri Metotları:Hesap işlemlerini gerçekleştiren metodları tanımlayacağız. Örneğin, para yatırma, çekme ve bakiye sorgulama işlemlerini bu metotlar içerecek.

Kullanıcı Arayüzü Fonksiyonları: Kullanıcıdan girdi alacak ve bu girdilere göre ilgili hesap işlemlerini gerçekleştirecek fonksiyonları yazacağız. Bu fonksiyonlar, kullanıcıya işlemlerini seçme ve hesap bilgilerini görüntüleme imkanı verecek.


basit örnek:
class Customer:
    def __init__(self, name, account):
        self.name = name
        self.account = account

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

    def deposit(self, amount):
        self.balance += amount
        return f"{amount} TL yatırıldı. Yeni bakiyeniz: {self.balance} TL"

    def withdraw(self, amount):
        if self.balance >= amount:
            self.balance -= amount
            return f"{amount} TL çekildi. Yeni bakiyeniz: {self.balance} TL"
        else:
            return "Yetersiz bakiye. İşlem gerçekleştirilemedi."

    def get_balance(self):
        return f"Hesabınızda {self.balance} TL bulunmaktadır."

def main():
    customer_name = input("Müşteri adını girin: ")
    initial_balance = float(input("Başlangıç bakiyesini girin: "))
    customer_account = Account(initial_balance)
    customer = Customer(customer_name, customer_account)

    while True:
        print("\nnMekatronik Banka Uygulaması")
        print("1. Para Yatırma")
        print("2. Para Çekme")
        print("3. Bakiye Sorgulama")
        print("4. Çıkış")
        choice = input("Lütfen bir seçenek girin: ")

        if choice == "1":
            amount = float(input("Yatırmak istediğiniz miktarı girin: "))
            print(customer.account.deposit(amount))
        elif choice == "2":
            amount = float(input("Çekmek istediğiniz miktarı girin: "))
            print(customer.account.withdraw(amount))
        elif choice == "3":
            print(customer.account.get_balance())
        elif choice == "4":
            print("Çıkılıyor...")
            break
        else:
            print("Geçersiz seçenek. Lütfen tekrar deneyin.")

if __name__ == "__main__":
    main()

Bu kodda, Customer sınıfı bir müşteriyi temsil ederken, Account sınıfı hesabı ve hesap işlemlerini yönetir. main fonksiyonu, kullanıcı arayüzünü oluşturarak kullanıcıdan işlem seçeneklerini alır ve ilgili işlemi gerçekleştirir. Bu uygulamada, kullanıcıdan isim ve başlangıç bakiyesi alınarak hesap oluşturulur, ardından kullanıcı işlem seçeneklerini belirleyebilir.

Uygulamayı çalıştırmak için bu kodu bir Python dosyasına yapıştırabilir ve çalıştırabilirsiniz. Sorularınız veya düzenlemeleriniz varsa çekinmeden bana bildirin!
 
Son düzenleme:
Eski de olsa birkaç programlama dili biliyorum ama kusura bakmayında Pytonun gücünü görebilmiş değilim.
Ekranda 53 satırlık bir kod var ancak Phyton hakkında hiçbirşey bilmeyene hiçbirşey anlatmıyor.

Eğer kasdettiğiniz burada Customer (Müşteriler) Account (Hesabı) tabloları var herbirine sonsuz sayıca kayıt (Record) girebilir.Herbir customer a sonsuz sayıca account açabilirsiniz falan gibi yazılımcı jargonunu anlatacaksanız bunlar yıllardır programlama dillerinde- hardware sınırlamarına göre -olması gerekenler ve zaten olanlar.

Ama siz bana örneğin,bir bilgisayar ekranında en solda açılır listede"Şehirler" listesinden örneğin "Ankara" yı seçtiğinde hemen sağında Ankaranın ilçelerini,buradan bir ilçeyi seçtiğinde o ilçedeki sokakları getirmesi ve hatta o ilçedeki Müşterilernin listesini i 5-10 satırlık kodla listelersin diyorsanız bu işte ilgimi çeker.
(Kasdettiğim tabiki bu 10 satır sadece sorgulama satırı olmayacak)
 
İnternette verdiğim İl,ilçe Mahallelerin gerçek kayıtlarını kolayca bulabilirsiniz.
Bunları kullanarak basit bir örnek yapıp,programınızın kısa bir videosunu yüklerseniz çok daha fazla bilgi sahibi oluruz.
Böyle hızlı ve kolay yazılan bir dili bende öğrenmek isterim çünkü benzeri bir projeyi yapmak istiyorum ama hala başlayamadım
 
Phytonla ilgili hem bu forumda hem başka forumlarda ,hemde youtube gibi yerlerde pekçok aramalar yaptım videolar seyrettim.

Allaha şükür geri zekalıda değilim bir konu nasıl nasıl araştırılır biliyorum ,3-4 yıl önce PhyCharm yada benzeri isimli bir programda kurdum. başka birkaç program daha kurdum Ama malesef youtube da bunlarıla nasıl programlar yazılacağını anlatan öyle güzel videolar yok.

Adam herkezin bildiği yazlımla ilgili yok for döngüsü yok looplar falan anlatıyor başka birşey yok.Birbaşkası Hindistanlı youtuber ın yazdığı kodun aynısını videosunda kullanıyor bunu ben yazdım diyor.Yada adamın videosunda anlatığı şey senin ekranında tam olmuyor error veriyor falan.

Yabancılar yazdıkların örneğin kodunu bile paylaşıyor indirip çalıştırıyorsun bizimkilierde ahım şahım bir örnek kod yok.Bakmışsın 3-4 video sonra "Arkadaşlar benim derslerime udemy den ulaşabilirsiniz" diyor Asıl önemli kısmı soruyu soruyorsun cevap vermiyor falan.

Nazik yardım teklifi için sağolun ancak bu biraz karmaşık

Kolay Gelsin
 
Linkleri de koyalım


Bir de edx.org da interaktif kurs olarak da alıabiliyor. edx.org u herkesin incelemesini tavsiye ederim, çok iyi bir kaynak.

 
Eklenen videonun pekçok yerine hızlıca baktım da yazılan kodun çalıştırıldığı bölümleri göremedim.Sanki hepsi DOS ortamındaki gibi.
Phytonla windows ortamındaki ekranlar-arayüzlerin -olduğu örnekler nasıl yazılıyor?
Başka bir phyton programı daha mı yüklemek gerekiyor?
 
Ben PyQT ye biraz bakmıştım. Bir geliştirme ortamı altında kullanıcı arayüz bileşenlerini yerleştirip kod ürettirilebiliyor. Ama Python'da katedeceğim çok yol var, bu tavsiye'ye göre gitmeden iyice inceleyin :)
 
Bazen PyQT cazip geliyor. Ancak arayüz tam
oturmadan başlarsanız, projeniz bitmiyor.
Aralara eleman ekleme, çıkarma ve yer değiştirme
için efor sarf etmeniz gerekiyor.

İlla QT kullanacaksanız, bu basit arayüz modülleri
ile arayüzü oturtun. Daha sonra QT ye uyarlarsınız.
Zaten bu arada ana kod da oturmuş olur.
 
Ben de daha öğrenciyim. Elden bir şeyler gelirse;
yardım etmeye çalışırım.
 
  • Beğen
Reactions: nt

Forum istatistikleri

Konular
5,847
Mesajlar
99,730
Üyeler
2,482
Son üye
ilker29

Son kaynaklar

Son profil mesajları

gruptaki arkadaşlara selamlar. sıteyi bu gün fark ettim. Asansör için 2x7 segment LCD gösterge üretmek istiyorum. acaba bu sayfadaki arkadaşlardan destek alabilirmiyim. LCD nin mantık açılımı ektedir.
deneyci wrote on TA3UIS's profile.
Selam.
Amatör telsiz lisansı nasıl alınıyor?
Lisansı olmayanı forumlarına almıyorlar. :)
Bilgi alamıyoruz.
cemalettin keçeci wrote on HaydarBaris's profile.
barış kardeşim bende bu sene akıllı denizaltı projesine girdim ve sensörleri arastırıyorum tam olarak hangi sensör ve markaları kullandınız yardımcı olabilir misin?
m.white wrote on Altair's profile.
İyi akşamlar.Arabanız ne marka ve sorunu nedir.Ben araba tamircisi değilim ama tamirden anlarım.
* En mühim ve feyizli vazifelerimiz millî eğitim işleridir. Millî eğitim işlerinde mutlaka muzaffer olmak lâzımdır. Bir milletin hakikî kurtuluşu ancak bu suretle olur. (1922)
Back
Top