 this anahtar sözcüğü, içinde bulunulan nesneye ait bir referans döndürür; bunun sayesinde nesnelere ait global alanlara erişme fırsatı bulunur. Şöyle.

Slides:



Advertisements
Benzer bir sunumlar
Nesneye Yönelik Programlama
Advertisements

FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
Makine Müh. & Jeoloji Müh.
EKRAN ÇIKTISI.
Zeynep Çelik Sunar….
Bölüm 2 C Dilinin Temelleri
Bölüm 4 İşlevlerve Modüler Programlama. 1 / 8 İşlev Tanımı /* İşlev açıklama satırı */ ( ) { }
Değişken Bildirimleri
Dizi (array) değişkenleri
Elektrik-Elektronik Mühendisliği Bölümü DİZİLER C Programlama Dili Yaz Stajı Cengiz TEPE SAMSUN 2007.
String Kütüphanesindeki Arama Fonksiyonları
VERİ TABANI ve YÖNETİMİ
P AKET E RIŞIMLERI SıNıFLARıN YENIDEN KULLANıMı. P AKET ( P ACKAGE ) Paketler kütüphaneleri oluşturan elemanlardır. import java.io.BufferedReader; BufferedReader.
KOPYA YAPICI FONKSİYON, STATİK ELEMANLAR, ARKADAŞ SINIF VE FONKSİYONLAR, NESNE DİZİLERİ Yılmaz Kılıçaslan.
Sınıfların Tekrardan Kullanılması
Nesneye Yönelik Programlama
Nesne Tabanlı Programlama
Bölüm 2 C Dilinin Temelleri Genel Kavramlar
NESNEYE YÖNELİK PROGRAMLAMA
DÖNGÜLER.
Erişim Denetimi, Fonksiyon
Fonksiyonlar Fonksiyon nedir?
Fonksiyonlar.
Değişkenler veri tipleri operatörler
NESNE TABANLI PROGRAMLAMA -METOTLAR-
METODLAR.
Sorular? Öneriler?. Referanslar Referanslar (Tekrar) Eğer aşağıdaki gibi yazarsak ne olur: int x; double y; char c; ???
Excel’de VBA programlama (Visual Basic Application) Ders 3
JAVADA PROGRAM DENET İ M İ VE OPERATÖRLER. int a ; a=4 ; // do ğ ru bir atama 4=a ; // yanlış bir atama!
PARAMETERELERLE ÇALIŞMAK. Prosedürler, dışarıdan girdi parametreleri (input) ile değer alabilirler ya da dışarıya değer döndürmek üzere çıkış parametreleri(output)
=>SÖZCÜKTE ANLAM<=
SINIFLAR VE DİNAMİK BELLEK YÖNETİMİ
C ile Programlamaya Giriş
FONKSİYONLAR.
SABİT NESNE VE ELEMAN FONKSİYONLAR VE ELEMAN NESNELER
Önceki Dersi Hatırlama !!
Chapter 8: Advanced Method Concepts
Kalıtım.
JAVA’DA DÖNGÜLER.
Demet AYDIN METODLAR Demet AYDIN
Class KahveFincani { public KahveFincani() { System.out.println("KahveFincani..."); } } public class YapilandirciBasitOrnek { public static void main(String[]
SINIFLAR VE DİNAMİK BELLEK YÖNETİMİ VE SINIFLARIN DİĞER ÖZELLİKLERİ Yılmaz Kılıçaslan.
C PROGRAMLAMA FONKSİYONLAR Adres ile Fonksiyon Çağırma Pointer (İşaretçiler) ile Fonksiyon Çağırma Rekürsif Fonksiyonlar.
SANAL FONKSİYONLAR VE ÇOKBİÇİMLİLİK Yılmaz Kılıçaslan.
Bölüm 5 Nesneler ve Metotlar
DİZİLER Arrays.
Değerler ve Değişkenler
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
Algoritmalar ve Programlama I Ders 10: ALTPROGRAM KAVRAMI ve FONKSİYON
Fonksiyonlar.
KALITIM(INHERITANCE) Öğr.Gör. Murat ASLANYÜREK. KALITIM KAVRAMINA GİRİŞ  Kalıtım, sınıflardan yeni sınıflar türetmeyi sağlar.  Türetilen yeni sınıflar,
10. NESNEYE YÖNELİK PROGRAMLAMA Öğr.Gör. Murat ASLANYÜREK.
Bölüm 2 C Dilinin Temelleri Genel Kavramlar Yazım ve Noktalama Kuralları C Kütüphaneleri C Dilindeki Sözcükler Değer Sabitleri Veri Tipleri Değişkenler.
Sakarya Üniversitesi Bilgisayar ve Bilişim Bilimleri Fakültesi Bilgisayar Mühendisliği Prof. Dr. Ümit Kocabıçak Prof. Dr. Cemil Öz Doç. Dr. Ahmet Turan.
JAVA 1. GİRİŞ & TARİHÇE Java, Sun Microsystems mühendislerinden James Gosling tarafından geliştirilmeye başlanmıştır. Açık kodlu. Nesneye yönelik. Düzlemden.
Nesneye Dayalı Programlama
BİLGİSAYAR PROGRAMLAMA Ders 8: Fonksiyonlar
C Programlama Yrd.Doç.Dr. Ziynet PAMUK BMM211-H11
Bölüm 2 C Dilinin Temelleri
SQL SERVER STORED PROCEDURE
Excel’de VBA Programlama (Visual Basic Application)
C++ Programming:. Program Design Including
Bölüm 6: Kullanıcı Tanımlı Fonksiyonlar I
Nesneye Dayalı Programlama 1
Bölüm 2 C Dilinin Temelleri
C ile Programlamaya Giriş
GARBAGE COLLECTOR (  ÇÖP TOPLAYICI ).
NİŞANTAŞI ÜNİVERSİTESİ
Sunum transkripti:

 this anahtar sözcüğü, içinde bulunulan nesneye ait bir referans döndürür; bunun sayesinde nesnelere ait global alanlara erişme fırsatı bulunur. Şöyle ki:

 Peki, gunEkle() yordamının içerisinde this.gun ifadesi yerine sadece gun ifadesi kullanılsaydı sonuç nasıl değişirdi?

 TarihHesaplama nesnesine ait olan global gun alanına herhangi bir değer ulaşmadığı için sonuç sıfır olacaktır.

 Bir yordamın içerisinde diğer yordamı çağırmak gayet basit ve açıktır ama sahne arkasında derleyici, çağrılan bu yordamın önüne this anahtar kelimesini gizlice yerleştirir: yani, fazladan this.sec() denilmesinin fazla bir anlamı yoktur.  Aşağıdaki örnek this anahtar kelimesinin, içinde bulunduğu nesneye ait nasıl bir referansın alındığını çok net bir biçimde göstermektedir.

 sepeteKoy() yordamı Yumurta sınıfı tipinde değer geri döndürmektedir. return this diyerek, oluşturulmuş olan Yumurta nesnenin kendisine ait bir referans geri döndürülmektedir. sepeteKoy() yordamı her çağrıldığında Yumurta nesnesine ait, toplam_yumurta_sayisi global alanın değeri bir artmaktadır. Burada dikkat edilmesi gereken husus, this anahtar kelimesi ancak nesnelere ait olan yordamlar içinde kullanılabilir.

 Bir yapılandırıcıdan diğerini çağırmak this anahtar kelimesi ile mümkündür.

 Bir yapılandırıcıdan this ifadesi ile diğer bir yapılandırıcıyı çağırırken dikkat edilmesi gereken kurallar aşağıdaki gibidir:  Yapılandırıcılar içerisinden this ifadesi ile her zaman başka bir yapılandırıcı çağrılabilir.  Yapılandırıcı içerisinden, diğer bir yapılandırıcıyı çağırırken this ifadesi her zaman ilk satırda yazılmalıdır.  Yapılandırıcılar içerisinde birden fazla this ifadesi ile başka yapılandırıcı çağrılamaz.

 Sadece global olan alanlara statik özelliği verilebilir. Yerel değişkenlerin statik olma özellikleri yoktur. Global alanları tür olarak iki çeşide ayırabiliriz: statik olan global alanlar ve nesnelere ait global alanlar. Statik alanlar, bir sınıfa ait olan alanlardır ve bu sınıfa ait tüm nesneler için ortak bir bellek alanında bulunurlar, ayrıca statik alanlara sadece bir kez ilk değerleri atanır.

 Bu uygulamada StatikDegisken sınıfına ait iki adet nesne oluşturulmaktadır; daha sonradan StatikDegisken sınıfının statik olan x alanına 10 değeri atanmaktadır. Artık oluşturulacak olan tüm StatikDegisken tipindeki nesneler için bu x değeri ortaktır. Yalnız dikkat edilecek olursa StatikDegisken nesnelerine ait olan global y alanı her bir StatikDegisken nesnesi için farklıdır.

 Statik yordamlar (sınıf yordamları) nesnelerden bağımsız yordamlardır. Statik bir yordamı çağırmak için herhangi bir nesne oluşturulmak zorunda değildir. Statik olmayan yordamlardan (nesneye ait yordamlar) statik yordamları rahatlıkla çağırabilmesine karşın, statik yordamlardan nesne yordamlarını doğrudan çağrılamaz.

 Bu örneğimizde görüldüğü üzere topla() yordamının amacı sadece kendisine gelen iki double değerini toplamak ve sonucu geri döndürmektir. topla() yordamı Toplama sınıfına ait bu nesnenin durumu ile ilgili herhangi bir görev üstlenmediği için statik yordam (sınıf yordamı) olarak tanımlanması gayet mantıklıdır. Ayrıca topla() yordamını çağırmak için Toplama sınıfına ait bir nesne oluşturmak da çok gereksiz durmaktadır. Şimdi Toplama sınıfı içerisindeki statik olan topla() yordamını kullanan bir uygulama yazalım. ()

 ToplamaIslemi sınıfı, kullanıcıdan aldığı parametreleri öncelikle double tipine dönüştürmektedir. Daha sonra bu değerleri Toplama sınıfının topla() yordamına göndererek, toplatmaktadır. Dikkat edileceği üzere topla() yordamını çağırmak için Toplama sınıfına ait bir nesne oluşturma zahmetinde bulunmadık.