RE: Re: [Linux-programlama] oop kavramlar

---------

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

From: eralp erat (eralp_erat@hotmail.com)
Date: Sun 25 Jun 2006 - 13:57:38 GMT


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 +0300From: umrankamar@gmail.comTo: linux-programlama@liste.linux.org.trSubject: Re: [Linux-programlama] oop kavramlarOOP 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 teorikgelmeli.Bir projede çalışırken mesela üyeyle ürünü eşleştirmeniz gerekecek, bunusadece üründen yapmak isteyceksiniz ve yanlışlıkla dışardan bir yerden üyeid'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 birtamsayıyken tüm özellikleri yeni bir değişken türü olacak.Veya ürünlerin çok farklı özellikleri olacak ve siz tam bir genelleştirmeyapamayacaksınız. keşke diyeceksiniz küçükürünlerim olsa bir debüyükürünlerim olsa da bunların fiyatı almak için ayrı ama aynı isimde birfonksiyonum olsa diyeceksiniz.Sonra teori koklayınca aradığınız kafanızda oluşmuş şeylerin olduğunugö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 hidin
g bazı> kaynaklarda aynı şey diyor.>>>> Bu üç kavram arasındaki fark konusunda bilgi verebilirseniz sevinirim.>>>> İyi çalışmalar._______________________________________________Linux-programlama mailing listLinux-programlama@liste.linux.org.trhttp://liste.linux.org.tr/mailman/listinfo/linux-programlama
_________________________________________________________________
Add photos, news, and blogs about the World Cup to your Live.com homepage!
http://www.live.com/getstarted

_______________________________________________
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.