NESNE TABANLI PROGRAMLAMA Temel Kavramlar



Benzer belgeler
NESNEYE YÖNELİK PROGRAMLAMA Temel Kavramlar

NESNE TABANLI PROGRAMLAMA

Görsel Programlama DERS 02. Görsel Programlama - Ders02/ 1

Ders 8 Konu Özeti ve Problemler

NESNEYE YÖNELİK PROGRAMLAMA. Yrd.Doç.Dr. Zeynep ORMAN

Nesne Yönelimli Programlama

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

BİL-141 Bilgisayar Programlama I (Java)

ANA SINIF TÜRETİLEN BİRİNCİ SINIF TÜRETİLEN İKİNCİ SINIF

SINIF YAPISI ve NESNE YÖNELİMLİ PROGRAMLAMA NESNE YÖNELİMLİ PROGRAMLAMA

YZM 2105 Nesneye Yönelik Programlama

Bölüm 11. Soyut veri tipleri ve kapsülleme kavramları ISBN

İsimler ve Kapsam. Hafta 4 Ders 2 BLG339 PROGRAMLAMA DİLLERİ KAVRAMI

HSancak Nesne Tabanlı Programlama I Ders Notları

1 PROGRAMLAMAYA GİRİŞ

İsimler ve Kapsam. 24 Şubat Programlama Dilleri - Pamukkale Üniversitesi 1

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance

NESNE TABANLI PROGRAMLAMA

WEB PROGRAMLAMA II. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu

NESNEYE YÖNELİK PROGRAMLAMA

Görsel Programlama-I (Visual Programming) 1.Hafta

Sunum İçeriği. Programlamaya Giriş

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM

abstract Sınıflar 1 Sınıf sınıf1 new class Ama aşağıdaki şekilde referans alınabilir;

Kalıtım (Inheritance)

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

YZM 2108 Yazılım Mimarisi ve Tasarımı

Nesne Tabanlı Programlama. Ders Notları

Arayüz soyut metotların oluşturduğu bir koleksyondur. Bir sınıf arayüzü çalıştırırken arayüzün sahip olduğu soyut metotları da miras alır.

YZM 2105 Nesneye Yönelik Programlama

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

Operatörlerin Aşırı Yüklenmesi

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 7. Bölüm Metot Tanımlama ve Kullanma

Sınıf Diyagramları Amaç: Sınıf Diyagramları Nasıl Çizilir?

YZM 2108 Yazılım Mimarisi ve Tasarımı

Nesne Yönelimli Programlama ve Kalıtım

BTEP243 Ders 3. class Yazım Kuralı:

Yazılım Kodlama ve İ simlendirme Standartları v1.0

Görsel Programlama-I (Visual Programming) 2.Hafta

YZM 2105 Nesneye Yönelik Programlama

Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır.

YZM 2116 Veri Yapıları

Bölüm 12. Nesne yönelimli programlama desteği

C++ Dersi: Nesne Tabanlı Programlama

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS

Nesne Yönelimli Programlama

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

YZM 2105 Nesneye Yönelik Programlama

1. SINIFLAR Sınıf (Class) Mantığı

1 C#.NET GELİŞTİRME ORTAMI 1 Visual Studio 2015 Arayüzü 4 Menu Window 6 Solution Explorer 7 Properties Window 8 Server Explorer 8 Toolbox 9

3. Bölüm Soyut Sınıflar (Abstract Classes) Java ile Nesne Merkezli ve Fonksiyonel Programlama Akın Kaldıroğlu

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan

YAZILIM KAVRAMINA BİR BAKIŞ. Gürcan Banger Elektrik Yük. Müh. ESOGÜ - 9 Nisan 2007

5. Bölüm Alt Sınıflar (Nested Classes) Java ile Nesne Merkezli ve Fonksiyonel Programlama Akın Kaldıroğlu

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

BİL-142 Bilgisayar Programlama II

Arayüz (Interface) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 7 1

Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2

İçerik. Kapsülleme ( Encapsulation ) Java da Kalıtım: Örnek 2.1. Kalıtım ( Inheritance ) Tekrar Ziyaret. Java da Kalıtım: Örnek 2.2.

3. NESNE TABANLI PROGRAMLAMANIN PRENSİPLERİ

Kapsülleme ( Encapsulation ) BBS-515 Nesneye Yönelik Programlama

NESNEYE YÖNELİK PROGRAMLAMA

C++ Dersi: Nesne Tabanlı Programlama

7. HAFTA. Erişim Belirleyiciler

ALGORİTMA VE PROGRAMLAMA II

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

Erişim konusunda iki taraf vardır:

EĞİTİM ÖĞRETİM MÜNEVVER ÖZTÜRK ORTAOKULU II. DÖNEM BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ DERS NOTLARI

public static int Toplam int x, int y

Nesne Yönelimli Programlama

Sınıflar ve Yapılar Arasındaki Farklılıklar. Değer ve Referans Türde Olan Aktarımlar

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

Nesneye Dayalı Programlama

PAKET ERİŞİMLERİ SINIFLARIN YENİDEN KULLANIMI. BMU-112 Algoritma ve Programlama-II Yrd. Doç.Dr. İlhan AYDIN

YZM 2105 Nesneye Yönelik Programlama

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi

Nesneye Yönelik Programlama (OOP) 7.Hafta

enum bolumler{elektronik, insaat, bilgisayar, makine, gida};

Paket Erişimleri. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 1

YZM 2105 Nesneye Yönelik Programlama

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6

Programlama Dillerinde Kullanılan Veri Tipleri

Java Programlama Güz Dönemi CLASS YAPISI

Temel Bilgisayar Programlama

NESNEYE YÖNELİK PROGRAMLAMA

BLG Sistem Analizi ve Tasarımı. Öğr. Grv. Aybike ŞİMŞEK

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama

Üst Düzey Programlama

BİLİŞİM TEKNOLOJİLERİ 6. SINIF DERS NOTLARI 2

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

(Fabrika Şablonu) Factory Pattern. Tasarım şablonlarının Creational (Yaratıcı) Sınıflandırmasına aittir. Fabrika(Factory) Şablonu

Nesneye Dayalı Programlama

YZM 2105 Nesneye Yönelik Programlama

... ROBOTİK VE KODLAMA EĞİTİMİ ÇERÇEVESİNDE ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ DERSİ ÜNİTELENDİRİLMİŞ YILLIK DERS PLANI

Genel Programlama II

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 12: Grafik Kullanıcı Arayüzü (Graphical User Interface-GUI)

C++ Dersi: Nesne Tabanlı Programlama

Hafta 13 Fonksiyonlar

Transkript:

NESNE TABANLI PROGRAMLAMA Temel Kavramlar Özkan BİNGÖL Gümüşhane Üniversitesi Not: Bu sunumda, Yrd. Doç. Dr. Özlem AYDIN ve Doç. Dr. Yılmaz KILIÇASLAN ın Nesneye Yönelik Programlama dersi sunumlarından, ayrıca Turkcell Geleceği Yazanlar eğitim setlerinden faydalanılmıştır.

Derse ilişkin genel bilgiler Dersin Amacı Nesneye Yönelik Programlama dersinin iki ana amacı vardır: Nesneye yönelik programlamanın temel ilke ve kavramlarını öğrenmek Bu ilke ve kavramları C# programlama dili ile etkin olarak kullanabiliyor olmak.

PROGRAMLAMA YAKLAŞIMLARI Programlama dilleri programlamaya yaklaşım açısından 4 gruba ayrılabilir: Prosedür yönelimli diller (örn. Fortran, Pascal) Fonksiyon yönelimli diller (örn. Lisp) Nesne yönelimli diller (örn. C++, C#, Java) Mantık yönelimli diller (örn. Prolog)

Prosedür yönelimli (yapısal) yaklaşım Prosedür yönelimli programlamada amaç problemi alt parçalara bölerek bu parçaların çözümlerinin birleştirilmesidir. Nesne yönelimli programlama yaklaşımlarını kullanan dillerin neredeyse tamamı yapısal programlamayı da bünyelerinde barındırmaktadır.

Fonksiyonel yönelimli yaklaşım Fonksiyonel yönelimli yaklaşımda bir veri işleme işinde yapılacak işler sadece fonksiyon çağrıları ile ifade edilir. Kod tekrarını engellemekte ve aynı kodun farklı şartlar için tekrar tekrar çalışmasını sağlamaktadır Kodun okunabilirliğini arttırmakta ve kod analizini daha kolay hale getirmektedir. Programın tasarlanması aşamasında tasarımcıya modüler yaklaşım yapmasını sağlamaktadır.

Prosedür yönelimli (yapısal) yaklaşım

Prosedür yönelimli (yapısal) yaklaşım Geliştirilen uygulama parçalanamayan bir bütün halindeydi. Bu yüzden, uygulama üzerinde çalışan her geliştirici; uygulamanın hemen her yapısına hakim olmalıydı. Projelere yeni yazılımcıların katılması önemli bir adaptasyon süreci gerektiriyordu. Ufak değişiklikler uygulamanın farklı noktalarında büyük sorunlara yol açabiliyordu. Yıllarla birlikte müşteri ihtiyaçları ve donanım kabiliyetleri arttı. Geliştirilen uygulamaların kapsamları ve boyutları büyüdü. Başlanan projelerin çoğu istenen sürelerde yetiştirilememeye ve geliştirme zorluklarından ötürü iptal olmaya başladı.

Prosedür yönelimli (yapısal) yaklaşım Uygulama maliyetleri giderek artmaya başladı.

Mantık yönelimli yaklaşım Mantık yönelimli yaklaşımda bir problemin çözümünde uygun mantıksal terimler kullanılarak bir algoritma kurulabileceği görülmektedir. Burada problemin çözümünün nasıl bulunacağı değil, problemin ne olduğunun tanımlaması yapılır.

Nesne Yönelimli Yaklaşım 1960 larda OOP fikrini ilk ortaya atan Alan Kay, önerdiği metodolojiyi şu şekilde ifade etmiştir: Uygulama, nesneler ve onların ilişkileri çerçevesinde belirli bir iş yapmak için geliştirilebilmelidir. Her nesnenin bir sınıfı olmalıdır ve sınıflar nesnelerin ortak davranışlarını ifade etmelidir. Nesneler birbirleri ile iletişime geçebilmelidir.

PROSEDÜR YÖNELİMLİ DİLLERE ALTERNATİF OLARAK NESNE YÖNELİMLİ DİLLER Geleneksel prosedür yönelimli programlama yaklaşımında, bir program gerçekleştirilecek bir dizi işlem adımını, yani bir algoritmayı, tanımlar. Nesneye-yönelik yaklaşımda ise, bir program birbiriyle etkileşim halinde olan bir nesneler sistemini tanımlar. C# ı prosedürel bir dil olarak kullanabiliriz; fakat, ancak nesneye-yönelik bir yaklaşımla bu dilin bütün potansiyelini açığa çıkarabiliriz.

PROSEDÜR YÖNELİMLİ DİLLERE ALTERNATİF OLARAK NESNE YÖNELİMLİ DİLLER Prosedürel programlamada bulunan soyut program geliştirme mantığını rafa kaldırıp, gerçek dünya modellemesi ile program geliştirme çabası olarak da düşünebiliriz. Gerçek dünya modellemesiyle anlatılmak istenen şudur: Bir fabrika örneğini ele alalım. Bu fabrikada işçiler, makineler gibi birçok nesne bulunur ve bu nesnelerin ilişkisi çerçevesinde fabrika çeşitli işler yapıp çıktılar üretebilir. OOP ile programlama mantığında da, bu örnektekine benzer şekilde program kurgulanır. Çeşitli nesneler geliştirilip birbirleriyle ilişkilendirilerek, belirli amaçlara hizmet eden uygulamalar geliştirilir.

PROSEDÜR YÖNELİMLİ DİLLERE ALTERNATİF OLARAK NESNE YÖNELİMLİ DİLLER Bu yapının önemli getirileri şunlardır: Yazacağınız sınıflar birbirinden bağımsız olarak geliştirilebilir. Bu sayede program böl, parçala, fethet mantığı çerçevesinde çok kolay bir şekilde parçalanır ve her parça ayrı ayrı ele alınabilir. OOP, yapısı gereği kod tekrarlarının önüne geçer (doğru bir şekilde kullanılırsa) Bu durum, özellikle ilk dönemlerde yazılımcıların hızlı bir şekilde OOP yapılarına geçmesinin temel nedenlerinden biri olmuştur.

NESNE YÖNELİMLİ DİLLER Projelerin yönetilebilirliğini büyük miktarda artırdığı için daha büyük projeler çok daha az çaba ile yönetilebilir hale gelmiştir. Yine aynı getiriler sayesinde, projeler rahat bir şekilde büyütülebilmiştir.

SINIFLAR Nesneye-yönelik programlama, prosedürel soyutlama ve veri soyutlamasını sınıflar biçiminde birleştirir. Bir sınıfı tanımlarken, yüksek-düzeyli soyut bir yapıya ilişkin her şey belirlenir. Bu sınıfa ait bir nesneyi kullanırken, sınıf içinde bildirilmiş veri tipleri ve onlar üzerinde tanımlanmış işlemler göz ardı edilebilir.

Nesne OOP temelde nesneler ve onların ilişkisi üzerine kurulu bir metodoloji olarak tanımlanmıştır. Nesneler sınıflardan türetilir ve yetenekleriyle yapabilecekleri sınıflarla belirtilir. Nesne-Sınıf ilişkisi için şöyle bir örnek verilebilir: İnsan bir sınıftır, her bir kişi, insan sınıfının bir nesnesidir. Örneğin, günlük kullanımda Ali bir insandır diyebiliyor olsak da, şu denklem yanlıştır: İnsan=Ali. Eğer sözlükte insan maddesinin yanında tanım olarak Ali den bahsedilmiyorsa, bu eşitlik hiçbir zaman doğru olamaz. İnsan sınıfı bize Ali gibi her insanın yapabileceklerini, yeteneklerini ve özelliklerini belirtir. İnsan konuşabilir, el sallayabilir, koşabilir v.s. dediğimiz her seferinde, bu işlerin Ali için de geçerli olduğunu kabul etmiş oluruz. Her insanın bir göz rengi vardır dersek, Ali nin de bir göz renginden bahsedebiliriz.

NESNEYE-YÖNELİK PROGRAMLAMANIN TEMEL İLKELERİ Nesneye-yönelik programlamanın temel ilkeleri şunlardır: Soyutlama (Abstraction) Sarmalama (Encapsulation) Kalıtım (Inheritance) Çok biçimlilik (Polymorphism)

NESNEYE-YÖNELİK PROGRAMLAMANIN TEMEL KAVRAMLARI Nesneye-yönelik programlamanın temel kavramları, 1. büyük programlar yazmayı kolaylaştıran soyutlama ve programları değiştirmeyi ve korumayı kolaylaştıran saklama 2. kalıtım ve çok biçimliğe izin veren ve programları kolayca genişletilebilir kılan sınıf hiyerarşisidir. Herhangi bir programlama dilinde bu kavramları uygulayabilirsiniz; fakat, nesneye-yönelik programlama dilleri salt bu amaçla tasarlanmışlardır.

SOYUTLAMA Soyutlama önemli özelliklere odaklanabilmek için ayrıntıları göz ardı etme sürecidir. Geleneksel olarak, bir programlama dili soyutlama yapmaya izin verdiği ölçüde yüksek-düzeyli (high-level) kabul edilir. C# (ve diğer nesneye-yönelik programla dilleri) verilen bir işi C den daha soyut bir tarzda tanımlama imkanı verir.

SOYUTLAMA Soyutlama, belirli bir bakış açısından, önemli özelliklere odaklanabilmek için ayrıntıları göz ardı etme sürecidir.

SARMALAMA Programımızın tasarımını kendi işlem kümelerine sahip soyut veri tipleri etrafında yaparak kendimizi kodlama / gerçekleme detaylarından daha fazla arındırırız. Bu da bizi nesneye-yönelik programlamanın bir diğer avantajına, sarmalamaya, götürür.

SARMALAMA / BİLGİ SAKLAMA Sarmalama, soyutlamayı desteklemek yada güçlendirmek için bir sınıfın iç yapısının gizlenmesidir. Bu gizleme, bir sınıfın görünür arayüzü ile özel gerçeklemesi arasında keskin bir ayrım yapmamızı gerektirir. Bir sınıfın arayüzü o sınıfın ne yapabileceğini, gerçeklemesi ise bunu nasıl yapabileceğini gösterir. Gerçek bir sarmalama, verileri fonksiyonlarla gizlemeyi gerektirir.

Erişim Belirleyiciler Erişim belirleyiciler (access modifiers), sınıflara nerelerden ve ne şekilde erişileceğini belirtir. Public: Her yerden erişilebilir. Private: Sadece tanımlandığı sınıf içerisinden erişilebilir. Internal: Sadece bulunduğu projede erişilebilir. Protected: Sadece tanımlandığı sınıfta ya da o sınıfı miras alan sınıflardan erişilebilir. Protected Internal: Sadece tanımlandığı sınıfta ya da o sınıfı miras alan sınıflardan erişilebilir. Ayrıca tanımlamanın aynı proje içerisinde olma şartı yoktur. Protected'dan farkı budur. Eğer erişim belirleyici belirtilmemişse, sınıflar internal dır.

SARMALAMA Bir insanı örnek verelim. Vücudumuzun yaptığı işler sarmalanmıştır ve biz buna müdahale edemeyiz. Örneğin, biz sadece solumakla ilgileniriz; ciğeri şişirmek, kana oksijen karıştırmak, kirli kanı temizlemek gibi işlemler içeride yapılıyor olsa da, bizim için durum sadece solumaktan ibarettir. Diğer işlemler sarmalanmıştır.

Gecerlitarih isimli property e atılan değer dönüştürülerek DateTime tipindeki tarih isimli değişkene atılmaktadır. GunOlaraktarihFarki isimli metod parametre olarak almış olduğu farkalinacaktarih isimli değişkenden tarih isimli değişkeni çıkarmaktadır. Kullanılan TotalDays özelliği çıkarılan iki tarih arasındaki farkı gün olarak hesaplamaktadır.

KALITIM / MİRAS ALMA (INHERİTANCE) Kalıtım nesne yönelimli programlamada önemli bir özelliktir. Kalıtım yolu ile eldeki sınıflardan yeni sınıflar türetilir. Türeyen sınıflar türedikleri sınıfın özelliklerini kalıtım yoluyla devralırlar ve kendisi de yeni özellikler tanımlayabilir. Türetme ile sınıflar arasında hiyerarşik bir yapı kurulabilir. Bir sınıf hiyerarşisi tanımlamanın 2 pratik faydası vardır: Türetilmiş sınıf üst-sınıfın kodunu paylaşabilir; Türetilmiş sınıf üst-sınıfın arayüzünü paylaşabilir. İnsan memeli ilişkisinde, insanın memeli sınıfını miras aldığı söylenebilir. Bu sayede insan sınıfını yazarken memelilerin özelliklerini tekrar yazmamıza gerek kalmaz. Elinizde bir taşıt sınıfı varsa; otomobil, kamyon, motosiklet gibi alt sınıfları üretmek çok daha az çaba gerektirir.

KOD KALITIMI Eğer yeni bir sınıf tanımlıyorsanız ve mevcut bir sınıfın işlevselliğinden yararlanmak istiyorsanız, yeni sınıfınızı mevcut sınıftan türetirsiniz. Bu durumda kalıtım mekanizmaları size mevcut kodu yeniden kullanma imkanı sağlar. Örnek: Veri Girişi Formlarının tasarlanması.

ARAYÜZ KALITIMI Bir diğer kalıtım stratejisi, türetilmiş sınıfın üstsınıfının eleman fonksiyonlarının yalnızca isimlerini kalıtım yoluyla almasıdır. Türetilmiş sınıf bu fonksiyonlar için kendi kodunu kullanır. Arayüz kalıtımının temel faydası çok-biçimliliğe izin vermesidir. Örnek: Farklı veri tiplerindeki form girişleri ayrı ayrı alınır.

ÇOK BİÇİMLİLİK Genel anlamı ile bir adın birbiriyle alakalı fakat teknik açıdan farklı iki veya daha fazla amaç için kullanılabilmesi yeteneğidir. NYP de ise oluşturulan nesnelerin gerektiğinde başka bir nesne gibi davranabilmesine denir. Çok biçimlilikle programdaki her nesne kendi davranışını değiştirmeden, kalıtım hiyerarşisine göre farklı biçimlerde görülebilir.

Çok Biçimlilik Statik ve dinamik olmak üzere ikiye ayrılır. Statik çokbiçimlilik; metot ve operatörlerin aşırı yüklenmesi (overload) olarak belirtilir. Dinamik çokbiçimlilik; özet sınıflardan miras alma yoluyla işlemlerin gerçekleştirilmesi işlemine verilen isimdir.

Sınıf İçindeki Yapılar

FIELDS Genellikle, nesnenin özellikleri (property) için değer saklama alanıdır. Varsayılan durumda private yapılardır. Field, global alanda tanımlanmış bir değişken olarak da düşünülebilir. Yani class içerisindeki tüm metotlardan erişilebilecek bir değerdir.

PROPERTIES Nesnenin özellikleridir. Kendi içinde iki metot barındırabilir: Set metodu: Bir property ye yeni bir değer atamak için kullanılır. Set metodu olmayan property ler readonly durumundadır. Get metodu: Bir property nin değerini okumak için kullanılır Genelde bir field da bulunan değeri değiştirmek / okumak için kullanılır.

METHODS Nesnenin yapabildiği işlerdir. Virtual, override, abstract metotlar oluşturulabilir. Bu sayede, miras alan sınıfın bu metot ile yapabileceği işler belirlenebilir. Static olarak oluşturulabilir. Bu sayede, metot nesnenin değil sınıfın metotu haline gelir. Static metotlar o metoda başka sınıflardan instance alınmadan ulaşılmasına olanak sağlar.

CONSTRUCTOR Constructor ismi, class ın ismi ile aynı olmak zorundadır. Nesne ortaya çıkartılırken yapılacak işlemleri barındırır. Farklı parametreleri alarak aşırı yüklenebilir (overload).

EVENTS Nesnelerin tepkileridir. Delegate ler ile birlikte kullanılır. Düğmenin tıklanması bir event tir. Daha önce düğmeyi tıklayınca bir tepki vereceği öngörülmüştür. Aşağıdaki örnekte, Kettle sınıfına SuKaynama Eventi eklenmiş ve su derecesi 100 ü geçerse bu event in tetikleneceği belirtilmiştir.