Menu
Coddy logo textTech

Öznitelikler (Veri Üyeleri)

Coddy'nin C++ Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 9 / 104.

Veri üyeleri (öznitelikler) bir nesnenin durumunu depolar. Genellikle private olarak bildirilir ve herkese açık getter/setter yöntemleri aracılığıyla erişilir. Buna kapsülleme denir.

Özel veri üyeleri

class BankAccount {
private:
    std::string accountName;
    int balance;
};

Public getter ve setter'lar

class BankAccount {
private:
    std::string accountName;
    int balance;

public:
    void setBalance(int balance) {
        this->balance = balance;
    }
    
    int getBalance() {
        return this->balance;
    }
};

Doğrulamalı setter'lar

void BankAccount::setBalance(int balance) {
    if (balance >= 0) {
        this->balance = balance;
    }
}

Erişim belirleyicileri

class MyClass {
private:    // Yalnızca sınıf içinde erişilebilir
    int secret;

public:     // Her yerden erişilebilir
    int getSecret() { return secret; }

protected:  // Sınıf ve alt sınıflarda erişilebilir
    int shared;
};

Veri üyelerini private yapmak, onları dış koddan gizler. Getter'lar değerlerini döndürür, setter'lar ise isteğe bağlı doğrulamayla bu değerleri değiştirir. Bu, verilerinizi korur ve bunlara nasıl erişileceğini denetler.

challenge icon

Görev

Orta

Özel veri üyelerine ve genel erişim yöntemlerine sahip bir BankAccount sınıfı oluştur:

  • Özel üyeler: accountName (string), balance (int)
  • Setter'lar: setAccountName, setBalance
  • Getter'lar: getAccountName, getBalance
  • deposit(int amount): amount > 0 ise bakiyeye ekler
  • withdraw(int amount): mümkünse "Success", aksi takdirde "Insufficient funds" döndürür

Kendin dene

#include <iostream>
#include "BankAccount.h"

int main() {
    std::string name;
    int initial, depositAmt;
    std::getline(std::cin, name);
    std::cin >> initial >> depositAmt;
    
    BankAccount account;
    account.setAccountName(name);
    account.setBalance(initial);
    
    std::cout << "Account: " << account.getAccountName() << std::endl;
    std::cout << "Balance: " << account.getBalance() << std::endl;
    
    account.deposit(depositAmt);
    std::cout << "After deposit: " << account.getBalance() << std::endl;
    
    std::string result = account.withdraw(2000);
    std::cout << "Withdraw 2000: " << result << std::endl;
    std::cout << "Final Balance: " << account.getBalance() << std::endl;
    return 0;
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Online C++ derleyicisi