Re: Re: [Linux-programlama] oop kavramlar

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: Serbulent UNSAL (serbulentu@gmail.com)
Date: Sun 25 Jun 2006 - 16:46:53 GMT


Merhaba,

Get ve Set kullanımınız ilgimi çekti. Genelde aşağadaki gibi
kullanıliyor. Sizin kullanım biçiminizde sadece constructor ile mi
erişiliyor yada benim göremediğim başka bazı amaçlarımı var ?

Serbülent ÜNSAL

Klasik Getter/Setter örneği;

public class Contact {
    private String firstName;
    private String lastName;
    private String displayName;
    private String email;

    public C(){}

    public C(firstName, lastName, displayName, email){
        setFirstName(firstName);
        setLastName(lastName);
        setDisplayName(displayName);
        setEmail(email);
    }

    public String getFirstName() {
        return firstName;
    }
    public void setFirstName(String value) {
        firstName = value;
    }

    public String getLastName() {
        return lastName;
    }
    public void setLastName(String value) {
        lastName = value;
    }

    public String getDisplayName() {
        return displayName;
    }
    public void setDisplayName(String value) {
        displayName = value;
    }

    public String getEmail() {
        return email;
    }
    public void setEmail(String value) {
        email = value;
    }

    public void printInfo() {
       System.out.println(this.getDisplayName() +
                          " <" + this.getEmail() + ">");
    }
}

25.06.2006 tarihinde eralp erat <eralp_erat@hotmail.com> yazmış:
>
> selam..
>
>
> arkadaslar kendi dussellerini yansitmislar bende 1-2 sey eklemek istedim..
>
> Encapsulation ve Data Hiding icin icice gecmis bariz kavramlardir
> diyebiliriz. Yapilmak istenen sey aslinda gerekli yetkiye sahip olmayan bir
> erisimde veriyi bu erisimden gizlemektir..
> Kodla ornek vermek istersek..Burda basit bir class gormektesiniz.Burda ki
> amac private olan class uyelerine erisimi kontrol altina almaktir.Bu
> property denilen kavram sayesinde olmaktadir.Ad ve Soyad bir
> propertydir.Java da bole bir kavram olmadigi icin bunun yerine void tipte ve
> public olan metodlar kullanilarak da islem halledilebilir.Eger istersek
> constructor olan Ogrenci() metodundan private olan uyelere olan erisimi
> kaldirabiliriz.bolelikle string tipinde olan _adi ve _soyadi elemanlari
> tamamen disaridan gizlenmis olacaktir...Yani uygulamaniz icinde birisi bu
> class a ait olan elemanlara erismek istediginde kesin suretle erisemeyecek
> hatta bu elemanlarin varligindan bile haberi olmayacaktir.
>
> public class Ogrenci
> {
> private string _adi,_soyadi=null;
> public Ogrenci():this("ad girilmemis","soyad girilmemis")
> {
> }
> public Ogrenci(string ad,string soyad)
> {
> _adi = ad;
> _soyadi = soyad;
> }
> public string Ad
> {
> get
> {
> return _adi;
> }
> set
> {
> _adi = value;
> }
> }
> public string Soyad
> {
> get
> {
> return _soyadi;
> }
> set
> {
> _soyadi = value;
> }
> }
>
> abstraction kismina gelecek olursak bu daha cok uygulama acisindan
> degerlendirilecek olursa benzer kavramlari bir cati altinda toplamak ve
> ilgili olan class lari bu catidan faydalandirmaktir dersek pekte yanlis
> olmaz..Aslinda bunu bole kelimelerle anlatmak yerine kodla gostersek sanirim
> daha islevsel olacagiz..(bu arada data hiding ve encapsulation kavramlarini
> anlamsal icerik olarak abstractionla paralel tutmadigimi belirtmeliyim( yani
> veriyi gizleyerek disaridan soyutlamis oluruz da denilebilir ama ben burda
> abstraction ile onu kasdetmiyorum))
>
> public interface Isekil
> {
> double kenarKalinlik
> {
> get;
> set;
> }
> ConsoleColor sekilRengi
> {
> get;
> set;
> }
> string sekilAdi
> {
> get;
> }
> void Ciz();
> }
> public abstract class baseSekil:Isekil
> {
> public baseSekil(double kenarKalinlik,ConsoleColor sekilRengi,string
> SekilAdi)
> {
> _myColor = sekilRengi;
> _kenarKalinlik = kenarKalinlik;
> _sekilAdi = SekilAdi;
> }
> public baseSekil()
> {
> _myColor = ConsoleColor.Green;
> _kenarKalinlik = 1;
> _sekilAdi = "belirsiz";
> }
> protected double _kenarKalinlik;
> protected ConsoleColor _myColor;
> protected string _sekilAdi;
> public double kenarKalinlik
> {
> get
> {
> return _kenarKalinlik;
> }
> set
> {
> _kenarKalinlik = value;
> }
> }
> public ConsoleColor sekilRengi
> {
> get
> {
> return _myColor;
> }
> set
> {
> _myColor = value;
> }
> }
> public string sekilAdi
> {
> get
> {
> return _sekilAdi;
> }
> }
> public virtual void Ciz()
> {
> Console.WriteLine("baseSekil.ciz();");
> }
> }
> public class Ucgen:baseSekil
> {
> public Ucgen(double kenarKalinlik,ConsoleColor sekilRengi,string
> SekilAdi):base(kenarKalinlik,sekilRengi,SekilAdi)
> {
> }
> public Ucgen():base()
> {
> }
> public override void Ciz()
> {
> base.Ciz();
> }
> public void nedir()
> {
> Console.WriteLine(base._kenarKalinlik + " - "+base._myColor+" -
> "+base._sekilAdi);
> }
> }
>
> yukarida yazdigim ornek icin cok da birsey solememe gerek yok kendini
> anlatiyor zaten..biraz enteresan bir ornek olmus olabilir ama ilk aklima
> gelenlerdi iste..Kusuruma bakmayin..
>
>
> Ayrica OOP ile ilgili sevgili Serdar Koylu nun cok guzel yazilari var
> yanilmiyorsam ya gecen sene yada ondan onceki sene grupta dolasiyordu
> usenmeden sayfalarca yazilmis degerli yazilar..
>
>
> iyi calismalar.
>
> Eralp
> mcp,mcad.NET,mcsd.NET
>
>
>
>
>
> ________________________________
> Date: Sat, 24 Jun 2006 14:08:03 +0300
> From: umrankamar@gmail.com
> To: linux-programlama@liste.linux.org.tr
> Subject: Re: [Linux-programlama] oop kavramlar
>
> OOP kavramalari birbiri ile icice gecmis kavramlardir, data yi encapsulation
> ile saklar, abstraction level'lari ayrintiyi dibe itmek, dolayisiyla
> siniflamayi saglamak ve dolayisiyla data hiding icin kullanmis olursunuz.
> Aralarinda ki kesin cizgileri cizmek yerine bu terimleri kullanmaya
> alistiginiz an, daha iyi anlamis olacaksiniz.
> Iyi calismalar Umran.
>
>
> On 6/24/06, Erkin Tek <erkintek@fotograf.web.tr> wrote:
>
> Bence yanlış bir öğrenme metodolojisi seçmişiniz. Önce pratik sonra teorik
> gelmeli.
> Bir projede çalışırken mesela üyeyle ürünü eşleştirmeniz gerekecek, bunu
> sadece üründen yapmak isteyceksiniz ve yanlışlıkla dışardan bir yerden üye
> id'sini değiştirceksiniz.
> bunu yapmamak için bir engele ihtiyacınız olacak.
> Veya ürün id'si ürünün tüm özelliklerini bulmanıza yarayacak ve id bir
> tamsayıyken tüm özellikleri yeni bir değişken türü olacak.
> Veya ürünlerin çok farklı özellikleri olacak ve siz tam bir genelleştirme
> yapamayacaksınız. keşke diyeceksiniz küçükürünlerim olsa bir de
> büyükürünlerim olsa da bunların fiyatı almak için ayrı ama aynı isimde bir
> fonksiyonum olsa diyeceksiniz.
> Sonra teori koklayınca aradığınız kafanızda oluşmuş şeylerin olduğunu
> göreceksiniz.
>
> Cumartesi 24 Haziran 2006 11:02 tarihinde, Fuat Altun şunları yazmıştı:
> > Merhabalar,
> >
> >
> >
> > OOP konusunda dokumanlara bakarken 3 konu arasında epeyce kafam karıştı.
> > Encapsulation-data hiding-abstraction.
> >
> > Dokumanlarda bu üçü birbirine girmiş gibi. Encapsulation-data hiding bazı
> > kaynaklarda aynı şey diyor.
> >
> >
> >
> > Bu üç kavram arasındaki fark konusunda bilgi verebilirseniz sevinirim.
> >
> >
> >
> > İyi çalışmalar.
>
> _______________________________________________
> Linux-programlama mailing list
> Linux-programlama@liste.linux.org.tr
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>
>
>
>
> ________________________________
> Express yourself instantly with Windows Live Messenger
> _______________________________________________
> Linux-programlama mailing list
> Linux-programlama@liste.linux.org.tr
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>
>
>

_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.