Java’da PUBLİC PRİVATE PROTECTED KAVRAMLARI OOP mantığı ile örnek bir projeyle

Haziran 29, 2020 0 Yazar: alikperislam

PUBLİC PRİVATE PROTECTED KAVRAMLARI :

Java’da projelerin altında paketler, paketlerin altında da Java dosyaları oluşturulmaktadır. Bu dosyalara, paketlere erişim için kullanabileceğimiz anahtarlar vardır aslında. Bu anahtarlar Public, Protected ve private’dır.

PUBLİC : Public anahtarını Class’larda kullanabildiğimiz gibi, classlar’ın içerisinde ki özelliklerde, methodlar(Fonksiyonlar)’ın başına “main methodunda olduğu gibi” public’i koyabilmekteyiz. Public en kapsamlı erişim anahtarıdır. Public ile paketlere diğer dosyalarda ki classlar’ın içerisinde ki özelliklere, başka paketlerde ki dosyalara ve onların özelliklerine ve birçok alana erişim sağlayabilmekteyiz. Nesne yönelimli programlama’da genellikle private ve protected yerine public kullanılmaktadır.

PROTECTED : Public anahtarına en yakın olanıdır, protected ile sadece diğer paketlerde ki dosyalara ve özelliklerine erişemeyiz ancak yine aynı şekilde; class içerisine, diğer dosyalara, kendi paketine ulaşabilir sadece başka paketlerin içerisine erişemez.

PRİVATE :  En güvenli olanıdır, private anahtarı ile sadece class içerisine erişim sağlanabilmektedir. Subclass denilen alt sınıflardan erişim sağlanabilmesi için setter ve getter methodlarından yarım alınması gerekmektedir aksi takdirde sadece sınıf içerisine erişim sağlama imkanı vermektedir.

İçerisinde hem public hem private içeren yazdığım kod örneği : package javadersleri.OOP_CONSTRUCTOR;
public class account {
    private String hesapNo;
    private String isim;
    private String telefon;
    private double bakiye;
    private String email;

    /////////////// Constructer yani yapıcı metodlarımız : :
    // overloading de olduğu gibi burda da aynı işlemi yapabiliyoruz aynı isimle fonksiyon gibi…
    public account(){ // içeriye bir şey girmiyoruz.
        //System.out.println(“Constructer mothodu çalıştı.”);
        // Bu şekilde hiçbir değer girilmese bile test dosyasında bu bilgi yok ve 0 değerleri ekrana yazılacak.
        /*
        this.email=”bilgi yok”;
        this.bakiye=0;
        this.telefon=”bilgi yok”;
        this.isim=”bilgi yok”;
        this.hesapNo=”bilgi yok”;
        */
        //this(); fonksiyon gibi yazarsak eğer bu sefer de aynı şekilde yukardaki gibi olur ama tek satırda bu sefer…
        this(“bilgi yok”,”bilgi yok”,”bilgi yok”,0,”bilgi yok”);
    }
    // belli sayıda ki değerleri kullanılması için oluşturulabilir yine.
    public account(String hesapNo,String isim, double bakiye){
        this(hesapNo,isim,”yok”,bakiye,”yok”);
    }
    public account(String isim,String telefon){
        this.isim=isim;
        this.telefon=telefon;

    }

    // bu şekilde constructer fonksiyon tanımlamış olduk. devamı test dosyasında —–>
    public account(String hesapNo,String isim,String telefon,double bakiye,String email){
        this.hesapNo=hesapNo;
        this.isim=isim;
        this.telefon=telefon;
        this.bakiye=bakiye;
        this.email=email;
    }
    // setter ve getter fonksiyonları:
    public void setHesapNo(String hesapNo){
        this.hesapNo=hesapNo;
    }
    public String getHesapNo(){
        return this.hesapNo;
    }
    public void setIsim(String isim){
        this.isim=isim;
    }
    public String getIsim(){
        return this.isim;
    }
    public void setTelefon(String telefon){
        this.telefon=telefon;
    }
    public String getTelefon(){
        return this.telefon;
    }
    public void setBakiye(double bakiye){
        this.bakiye=bakiye;
    }
    public double getBakiye(){
        return this.bakiye;
    }
    public void setEmail(String email){
        this.email=email;
    }
    public String getEmail(){
        return this.email;
    }
    ////////////////////////// Normal fonksiyonlar da tanımlayabiliyoruz :

    public void paracekme(double miktar){
        if(miktar>bakiye){
            System.out.println(“Yeterli bakiyeniz maalesef yoktur, lütfen daha küçük bir miktar…”);
        }
        else{
            bakiye-=miktar;
            System.out.println(“Çekilen miktar : “+miktar+”\nBakiyeniz : “+bakiye);
        }
}
    public void parayatırma(double miktar){
        if(miktar>1500){
            System.out.println(“Üzgünüm atm’den bu kadar büyük bir para yatıramazsınız..”);
        }
        else{
            bakiye+=miktar;
            System.out.println(“Yatırılan miktar : “+miktar+”\nBakiye : “+bakiye);
        }}