Yavuzlar
Ana sayfaTelegram
  • Yavuzlar
  • VulnLab
  • CodinLab
  • 📚EĞİTİM
    • PHP
      • XAMPP kurulumu
      • VS Code Kurulum
      • 1.0 PHP Nedir
      • 1.1 Dosya Oluşturma
      • 1.2 Syntax (Yazım Kuralları)
      • 1.3 PHP'de Echo ve Print
      • 1.4 PHP'deki yorumlar
      • 1.5 PHP Değişkenleri
      • 1.6 Operatörler (Operators)
      • 1.7 Veri Türünü Alma
      • 1.8 PHP'de String
      • 1.9 PHP'de Sabitler
      • 2.0 PHP'de If Else Elseif
      • 2.1 Switch Case
      • 2.2 PHP'de Döngüler
      • 2.3 PHP'de Diziler (Arrays)
      • 2.4 PHP'de Süper Global Değişkenleri
      • 2.5 PHP'de Cookie (Çerez) Ve Session (Oturum) Yöntemleri
      • 2.6 Form işlemleri
    • C++
      • 1.0 Temeller
        • 1.1 Dosya Oluşturma
        • 1.2 Syntax (Yazım Kuralları)
        • 1.3 Yorum Satırları
        • 1.4 C++ Değişkenleri
          • 1.4.1 Değişken Türleri
        • 1.5 Operatörler (Operators)
        • 1.6 Namespace
        • 1.7 Kullanıcı Girdisi (User Input)
        • 1.8 C++ Stringleri (C++ Strings)
        • 1.9 Matematik (Math) Fonksiyonları
        • 1.10 Booleans
        • 1.11 If Else
        • 1.12 Switch
        • 1.13 While Döngüsü
          • 1.13.1 Do While Döngüsü
        • 1.14 For Döngüsü
        • 1.15 Break/Continue
        • 1.16 Diziler
        • 1.17 Structures
        • 1.18 Enums
        • 1.19 References
        • 1.20 Pointers
      • 2.0 Fonksiyonlar
      • 3.0 Sınıflar
        • 3.1 OOP
        • 3.2 Sınıflar ve Objeler
        • 3.3 Sınıf Methodları
        • 3.4 Yapıcılar (Constructors)
        • 3.5 Erişim Belirleyicileri (Access Specifiers)
        • 3.6 Kapsülleme (Encapsulation)
        • 3.7 Inheritance
        • 3.8 Polimorfizm (Polymorphism)
        • 3.9 Dosyalar (Files)
        • 3.10 İstisnalar (Exceptions)
        • 3.11 Tarih ve Zaman (Date and Time)
      • 4.0 Veri Yapıları (Data Structures)
        • 4.1 Veri Yapıları ve STL
        • 4.2 Vektörler (Vectors)
        • 4.3 Listeler (Lists)
        • 4.4 Yığınlar (Stacks)
        • 4.5 Kuyruklar (Queues)
        • 4.6 Deque (Çift Uçlu Kuyruk)
        • 4.7 Küme (Set)
        • 4.8 Maps
        • 4.9 Iterator
        • 4.10 Algoritmalar
  • 🛠️ARAÇLAR
    • Aircrack-ng
    • Airgeddon
    • Arjun
    • BeEF
    • Bettercap
    • Docker
    • Gelişmiş Wireshark Kullanımı (Advanced Wireshark Usage)
    • Google Dorks
    • Hping3
    • John the Ripper
    • Metasploit Framework
    • Netcat
    • Nmap
    • OSINT Framework
    • PEASS-ng
    • Sublist3r
    • XSS Scanner
    • Wireshark
    • ZAP
    • HYDRA
  • 🖥️İŞLETİM SİSTEMLERİ
    • Linux101
    • MBR
  • 🔑KRİPTOLOJİ
    • Dijital Sertifika ve İmzalar
    • Sezar Şifrelemesi
    • Steganografi
    • Veri Şifreleme (Data Encryption)
  • 🔏Network
    • Domain Name Server (DNS)
    • Firewall Nedir? Nasıl Çalışır ?
    • Ortadaki Adam Saldırısı (Man In The Middle Attack)
    • OSI Modeli
    • Sanal Özel Ağlar (VPN)
    • World Wide Web (WWW)
  • 🔐PRIVILEGED
    • Docker Escape
  • 📨Protokoller
    • ARP
    • DHCP
    • FTP
    • HTTP/HTTPS
    • SSH
    • TCP/IP
    • UDP
    • Wİ-Fİ Güvenlik Protokolleri (WEP/WPA/WPA2/WPA3)
  • 💻SİBER TEHDİT İSTİHBARATI
    • Gelişmiş Siber Tehdit İstihbaratı Nedir?
  • 🔒WEB GÜVENLİĞİ
    • 403 ByPass
    • API Güvenliği (API Security)
    • Broken Access Control
    • Bulut Güvenliği (Cloud Security)
    • Command Injection
    • Cross Origin Resource Sharing
    • Cross Site Request Forgery (CSRF)
    • Cyber Kill Chain
    • DDoS Saldırıları
    • File Upload Zafiyeti Nedir?
    • HTTP Request Smuggling
    • Insecure Direct Object Reference (IDOR)
    • Incident Response
    • Local File Inclusion (LFI)
    • NoSQL Injection
    • Pentest 101
    • Race Condition
    • Server Side Request Forgery (SSRF)
    • Server Side Template Injection (SSTI)
    • Spring4Shell
    • Two Factor Authentication Bypass
    • XML External Entity Attack (XEE)
  • 🤖YAPAY ZEKA
    • ChatGPT for Hacking
    • Siber Güvenlik ve Yapay Zeka
    • Yapay Zeka ile Sahte Fotoğraf Tespiti
  • 🌐YAZILIM
    • Düzenli İfadeler (Regular Expressions)
    • Elasticsearch Nedir?
    • Front-end Teknolojileri
    • Golang'da Arayüzler (Interfaces)
    • Go'da Concurrency ve Uygulamaları
    • Güvenli Kodlama (Secure Coding)
    • Java Overloading vs Overriding
    • JSON Web Token (JWT)
    • Material-UI
    • NextJS Nedir?
    • ReactJS Kancalar (Hooks)
    • ReactJS Nedir?
    • Redux Toolkit
    • SOLID Yazılım Geliştirme Prensipleri
    • SQL 101
    • UI / UX Nedir?
    • Veri Taşıma Nedir? (Database Migration)
    • Versiyon Kontrol Sistemleri ve GIT
  • 🔷DİĞER
    • Bug Bounty (Hata Ödülü) Nedir?
    • Popüler Yazılımların Kurulumları
      • Ubuntu Server 24.04 LTS Kurulumu
      • Ubuntu için Güncel Docker Engine Kurlumu
    • Güvenlik Operasyonları Merkezi Nedir?
    • Honeypot (Bal Küpü)
    • IoT Güvenliği Nedir?
    • ShellShock Exploit
    • Yük Dengeleyici (Load Balancer) Nedir?
Powered by GitBook
On this page

Was this helpful?

  1. EĞİTİM
  2. C++
  3. 3.0 Sınıflar

3.6 Kapsülleme (Encapsulation)

Kapsülleme, nesne yönelimli programlamanın temel prensiplerinden biridir. C++ dilinde, kapsülleme, bir sınıfın verilerini (değişkenlerini) ve bu verilere erişimi kontrol eden metotlarını bir arada gruplandırma yöntemidir. Kapsülleme, veri gizliliğini artırarak, nesne yönelimli programlamada güçlü ve güvenli bir yapı sağlar.

Kapsüllemenin Temel Unsurları

  1. Veri Gizliliği: Kapsülleme sayesinde, bir nesnenin iç durumu (veri) dışarıdan doğrudan erişime kapatılır. Sınıf üyeleri genellikle private veya protected olarak tanımlanır. Böylece, verilerin yanlışlıkla değiştirilmesi veya erişilmesi engellenir.

  2. Erişim Metotları: Sınıfın dışından veri erişimini sağlamak için public olarak tanımlanan metotlar kullanılır. Bu metotlar, verilere erişimi ve verilerin değiştirilmesini kontrol eder. Genellikle getter ve setter metotları olarak bilinir.

  3. Kapsülleme Örneği: Aşağıdaki örnek, C++'da kapsülleme kullanımını göstermektedir.

Örnek

#include <iostream>
#include <string>

class Hesap {
private:
    double bakiye; // Private veri üyeleri

public:
    // Yapıcı
    Hesap(double b) : bakiye(b) {}

    // Getter metodu
    double getBakiye() {
        return bakiye;
    }

    // Setter metodu
    void paraYatir(double miktar) {
        if (miktar > 0) {
            bakiye += miktar; // Bakiye artırma
            std::cout << "Para yatırıldı: " << miktar << std::endl;
        } else {
            std::cout << "Negatif miktar yatırılmaz!" << std::endl;
        }
    }

    void paraCek(double miktar) {
        if (miktar > 0 && miktar <= bakiye) {
            bakiye -= miktar; // Bakiye azaltma
            std::cout << "Para çekildi: " << miktar << std::endl;
        } else {
            std::cout << "Yetersiz bakiye!" << std::endl;
        }
    }
};

int main() {
    Hesap hesap(1000.0); // Yeni bir hesap oluşturma
    std::cout << "Mevcut Bakiye: " << hesap.getBakiye() << std::endl; // Bakiye kontrolü

    hesap.paraYatir(500); // Para yatırma
    std::cout << "Yeni Bakiye: " << hesap.getBakiye() << std::endl;

    hesap.paraCek(300); // Para çekme
    std::cout << "Yeni Bakiye: " << hesap.getBakiye() << std::endl;

    hesap.paraCek(1500); // Yetersiz bakiye durumu
    return 0;
}

Çıktı

Mevcut Bakiye: 1000
Para yatırıldı: 500
Yeni Bakiye: 1500
Para çekildi: 300
Yeni Bakiye: 1200
Yetersiz bakiye!

Sonuç

Kapsülleme, C++ dilinde veri gizliliğini ve yönetimini sağlamak için önemli bir araçtır. Sınıf üyelerini private veya protected olarak tanımlayarak, dışarıdan erişimi sınırlamak ve erişim metotları (getter ve setter) aracılığıyla kontrol etmek, programların daha güvenli ve yönetilebilir olmasına katkı sağlar.

Previous3.5 Erişim Belirleyicileri (Access Specifiers)Next3.7 Inheritance

Last updated 4 months ago

Was this helpful?

📚