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 saklar. Genellikle private olarak bildirilirler ve genel getter/setter metotları aracılığıyla erişilirler. Buna kapsülleme denir.

Özel veri üyeleri

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

Genel getter ve setter metotları

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

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

Doğrulama içeren setter'lar

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

Erişim belirleyicileri

class MyClass {
private:    // Sadece sınıf içinden erişilebilir
    int secret;

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

protected:  // Sınıf ve alt sınıflar içinde 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ğrulama ile onları değiştirir. Bu, verilerinizi korur ve onlara nasıl erişildiğini kontrol eder.

challenge icon

Görev

Orta

Özel veri üyeleri ve genel erişim yöntemleri olan bir BankAccount sınıfı oluşturun:

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

Kopya kağıdı

Veri üyeleri (öznitelikler) bir nesnenin durumunu saklar ve kapsülleme (encapsulation) için genellikle private olarak tanımlanır.

Private 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 belirleyiciler:

class MyClass {
private:    // Sadece sınıf içerisinden erişilebilir
    int secret;

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

protected:  // Sınıf ve alt sınıflar içerisinden erişilebilir
    int shared;
};

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