Kalıtım , Sınıf Asli Ergün.

Slides:



Advertisements
Benzer bir sunumlar
Programlama-II (Java ile Bilgisayar Programlama)
Advertisements

Saatte V km hız ile giden bir aracın t zamanda aldığı yolu bulan metodu yazınız. Metodu kullanacak bir program yazınız. ( yol=hız*zaman, x=V*t) — Metot.
C# - Metotlar.
Nesnelerin Özellikleri. - Üye nesneler - friend belirtesi - Nesnelerin operatörlere yüklenmesi - this yerel (lokal) değişkeni - inline tanımlı üye fonksiyonlar.
SINIFLAR Yılmaz Kılıçaslan.
NESNEYE YÖNELİK PROGRAMLAMA SINIFLAR
Programlama-II (Java ile Bilgisayar Programlama)
Nesneye Dayalı Programlama
OOP UYGULAMA 5.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 4: Diziler
NESNEYE DAYALI MODELLEME VE TASARIM
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 6: Sınıflar
Nesne Tabanlı Programlama Dersi Edirne Kız Teknik ve Meslek Lisesi Hazırlayan : Nuri AVCI
KOPYA YAPICI FONKSİYON, STATİK ELEMANLAR, ARKADAŞ SINIF VE FONKSİYONLAR, NESNE DİZİLERİ Yılmaz Kılıçaslan.
Nesne Tabanlı Programlama
SINIFLAR GİRİŞ Yılmaz Kılıçaslan.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Diziler.
NESNEYE YÖNELİK PROGRAMLAMA
DİZİLER.
DELEGATE OOP-UYG.
Erişim Denetimi, Fonksiyon
NESNE TABANLI PROGRAMLAMA -METOTLAR-
Önemli noktalar Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar
METODLAR.
Sorular? Öneriler?. Referanslar Referanslar (Tekrar) Eğer aşağıdaki gibi yazarsak ne olur: int x; double y; char c; ???
Nesneye Yönelik Programlama
NESNEYE DAYALI PROGRAMLAMA
C#.NET 5.0 C# .NET 5.0 Eğitimleri Volkan KANAT.
Nesneye Dayalı Programlama
Sınıflar ve Fonksiyonlar
BPR152 ALGORİTMA VE PROGRAMLAMA - II Öğr. Gör. Bayram AKGÜL
NESNE YÖNELİMLİ PROGRAMLAMA
ALGORİTMALAR VE PROGRAMLAMAYA GİRİŞ
Metotlar.
METOTLAR.
Ders 2- Veri türleri, Karar ve Döngü Yapıları, Görsel Kontröller Aslı Ergün.
ÇOK BİÇİMLİLİK POLYMORPHISM
Önceki Dersi Hatırlama !!
Nesneye Yönelik Programlama (12. Sunu). İsim Uzayları (Namespaces) Sınıfınızda Deniz adında iki öğrenci olduğunu kabul ediniz. Böyle bir durumda bu öğrencileri.
JAVA’DA DÖNGÜLER.
NESNEYE YÖNELİK PROGRAMLAMA
Demet AYDIN METODLAR Demet AYDIN
BPR152 ALGORİTMA VE PROGRAMLAMA - II Öğr. Gör. Bayram AKGÜL
Nesneye Dayalı Programlama
JAVA’DA DİZİLER Dr.Galip AYDIN.
SINIFLAR VE DİNAMİK BELLEK YÖNETİMİ VE SINIFLARIN DİĞER ÖZELLİKLERİ Yılmaz Kılıçaslan.
KALITIM Yılmaz Kılıçaslan.
Bölüm 5 Nesneler ve Metotlar
Bil 102 Bölüm 6 Diziler.
Bil 102 Bölüm 3 Java’da Program Akış Denetimi Bil 1021.
Bilgisayar programlarının en büyük avantajı, kullanıcının işini kolaylaştırmalarıdır. Her bilgisayar programı bunu değişik metotlar kullanarak sağlar.
Ders 2- Veri türleri, Karar ve Döngü Yapıları, Görsel Kontröller
Görsel C# ile Windows Programlama
ODTU-SEM Copyright (c) 2011 Kalıtım(Inheritance) Subclass lar tüm method ve attributes larının superclass ından alırlar. Bu işlem için extends keyword.
SINIFLAR ve NESNELER. İlk sınıfımızı ekleyelim class KrediHesap { public ulong HesapNo; public double Limit; public string KartSahibi; }
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 4: Diziler
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
BİLGİSAYAR programlama II
İbrahim Olgaç PROGRAMLAMA DİLLERİ SUNUMU C#
C dili kullanıcıya kendi ihtiyacı olan bir fonksiyonu yazma imkanı vermiştir. Bir sayının faktöriyelini almaya ihtiyaç duyduğumuzu ve aynı zamanda asal.
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 6: Sınıflar
Nesneye Dayalı Programlama Temel Kavramlar Hüseyin ESKİ.
JAVA’DA DİZİLER. Özet  Dizi: belirli sayıda ve aynı veri türünden de ğ işkenlere aynı adla erişilmesini sa ğ layan bir yapıdır.  Dizilerde döngü işlemleri.
Kurucular(Yapıcılar), Yıkıcılar
Nesneye Dayalı Programlama 1
Nesneye Dayalı Programlama 1
Nesneye Dayalı Programlama 1
BLP 4210 PLATFORM BAĞIMSIZ PROGRAMLAMA
Sunum transkripti:

Kalıtım , Sınıf Asli Ergün

Nesneye Yönelik Programlama (NYP) ilgili terimler Bilgi gizleme (information hiding), Veri soyutlama (data abstraction), Çok şekillilik (polymorphism) Kalıtım-miras (inheritance)

Neden Nesneye Yönelik Programlama ? Gerçek hayat problemleri sınıf şablonları kullanılarak bilgisayar ortamına daha kolay ve anlaşılabilir bir biçimde aktarılabilir. Sınıflar ile kodlar düzenli bir biçimde saklanarak zaman kaybı yaşanmaz. Nesne yönelimli programlamada herhangi bir projede kullanılmak üzere yaratılan bir sınıf başka projelerde tekrar kullanılabilir.

Sınıf (Class) Nesnelerin özelliklerini, davranışlarını ve başlangıç durumlarını tanımlamak için kullanılan şablonlara sınıf denilir. Örneğin X marka Y model bir otomobil (nesne), her otomobilde olması gereken temel özelliklere (motor, tekerlek, direksiyon, vs.) sahiptir ve o otomobil için tasarlanmış olan bir prototipten (sınıf) yola çıkarak üretilmiştir.

Özellik (Property) ve Yöntem (Method) Nesnelerin özelliklerini saklamak için sınıf içinde tanımlanmış olan değişkenler özellik olarak isimlendirilir. Bir otomobil sınıfının içinde tanımlanan int maks_hız, string renk, gibi özellikler o sınıfa ait her nesnede var olacak, içerdikleri değerler farklı olabilecektir. Nesnelerin davranışlarını belirlemek için kullanılan sınıf içinde tanımlanmış olan fonksiyonlara yöntem adı verilir. Örneğin: gaz pedalına basma bir yöntem ise otomobilin hızlanması geri döndürdüğü değerdir. Yöntemlerin içinde tanımlanan lokal değişkenler özellik değildir.

Örnek: Dikdörtgen Sınıfı class Dikdortgen { public int boy, en; public int Cevre() { return boy*2+en*2; } public int Alan() { return boy*en; Özellikler Yöntemler Bir yöntem ya da özelliğe bulunduğu sınıfın dışından da erişilebilmesini istiyorsak public sözcüğü kullanılır

Sınıflar arası iletişim class Program { static void Main(string[] args) Dikdortgen D = new Dikdortgen(); Console.Write("Dikdörtgenin boyu : "); D.boy = Convert.ToInt32(Console.ReadLine()); Console.Write("Dikdörtgenin eni : "); D.en = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Çevresi = " + D.Cevre()); Console.WriteLine("Alanı = " + D.Alan()); } Dikdortgen sınıfından D adında bir nesne yaratıldı Dikdortgen sınıfının boy ve en özellikleri public olduğu için Program sınıfından bu özelliklere değer atayabiliyoruz. Benzer şekilde Cevre ve Alan fonksiyonları public olmasa idi buradan erişemezdik.

new Eğer bir nesne yaratıldığında aynı sınıftan başka bir nesneye eşitlenirse, iki nesne aslında aynı hafıza bölgesini kullanan eş nesneler olur: Dikdortgen D = new Dikdortgen(); Dikdortgen E = D; new komutu ile hafızadan (RAM) yeni bir yer tahsisi yapıldığını dizileri incelerken de görmüştük. Aslında tanımladığımız her dizi Array sınıfı türünden bir nesnedir. Örneğin Array sınıfına ait Length özelliği ile dizinin eleman sayısını elde edebiliriz. E.boy = D.boy & E.en = D.en

Ek Bilgi ! Bir sınıf tanımı içinde yer alan özelliklere ilk değer atamak mümkündür. Örneğimizdeki boy ve en özelliklerine tanımlandıkları anda değer atansaydı o sınıftan üretilen bir dikdörtgen ilk anda o değerlere sahip olurdu. public (genel) deyimi kullanılmadan tanımlanan yöntem ve özellikler private (özel) kabul edilir. Yani sadece o sınıf içinde kullanılabilir. static olarak belirlenen bir özellik o sınıftan üretilen tüm nesneler için aynıdır (aynı hafıza bölgesini kullanır).

Yapıcı ve Yıkıcı Yöntemler Bir sınıfın içinde sınıf ile aynı isimde bir yöntem yazılırsa o sınıftan bir nesne yaratıldığı anda o yöntem çağrılacaktır. Buna yapıcı yöntem denir. Farklı sayıda veya farklı veri türlerini parametre olarak alan çok sayıda yapıcı yöntem aynı sınıf içinde tanımlanabilir (o sınıfa ait bir nesne yaratılırken hangi parametreler kullanıldıysa, ilgili yapıcı yöntem çağrılacaktır). Sınıf ile aynı isimde olan ve parametre almayan yöntem isminin başında ~ işareti varsa nesne yok edilirken çağrılır. Bunlara da yıkıcı yöntem denir.

Yapıcı , Yıkıcı Metodlar Public int alan(int en, int boy) { İnt sonuc; sonuc = en * boy; return sonuc; } Public ~Dikdortgen() {  Public class Dikdortgen { Public int en, boy; Public Dikdortgen() {  }   Public Dikdortgen(inten,int boy) en = 2 * en; boy = 2 * boy; Public int cevre (int en, int boy) {int sonuc; sonuc = 2*en+2*boy; returnsonuc;

Kalıtım Bir sınıfın yöntem ve özelliklerinin tümünü yada birkaçını başka bir sınıfa geçirmek için kalıtım mekanizmasını kullanabiliriz. Örneğin Kare adında bir sınıf oluştururken; class Kare : Dikdortgen şeklinde yazdığımızda, Kare sınıfı Dikdortgen sınıfındaki public veya protected olarak tanımlanmış olan özellik ve yöntemleri miras olarak alır.

class Dikdortgen { public int boy, en; public int Cevre() { return boy*2+en*2; } public int Alan() { return boy*en; class Kare : Dikdortgen { public int kenar; public void Kenar(){ en = kenar; boy = kenar; } class Program static void Main(string[] args) Kare A = new Kare(); A.kenar = 5; A.Kenar(); Console.WriteLine("Karenin Çevresi : " + A.Cevre()); Console.WriteLine("Karenin Alanı : " + A.Alan()); public yerine; protected yazılırsa Kare sınıfı bu değişkenleri kullanabilir ama Program sınıfı kullanamaz, private yazılırsa ikisi de kullanamaz. kenar değişkeninin değeri Kenar() fonksiyonu ile Dikdortgen’den miras alınan en ve boy değişkenlerine atanıyor Cevre ve Alan fonksiyonları Kare sınıfında tanımlı değil, Dikdortgen sınıfından miras alındı