Java Programlama 2015-2016 Güz Dönemi CLASS YAPISI



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

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

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

Sunum İçeriği. Programlamaya Giriş

Nesneye Dayalı Programlama

Lab7 DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI. BTEP212 Java. Uygulama1: package javaapplication58;

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

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

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

BİL-141 Bilgisayar Programlama I (Java)

Görsel Programlama (Visual Programming) 2.Hafta

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

Görsel Programlama (Visual Programming) 2.Hafta

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

İç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.

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

NESNE TABANLI PROGRAMLAMA

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

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Java Class Yapısında Finalize Metotunun Kullanımı

BMH-303 Nesneye Yönelik Programlama

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

public static int Toplam int x, int y

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

7. HAFTA. Erişim Belirleyiciler

Programlama Dillerinde Kullanılan Veri Tipleri

YZM 2105 Nesneye Yönelik Programlama

Nesneye Dayalı Programlama

Ders 8 Konu Özeti ve Problemler

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

Erişim konusunda iki taraf vardır:

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

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

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

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.

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

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

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

MOBIL UYGULAMA GELIŞTIRME

// hataları işaret eden referans

Nesne Yönelimli Programlama

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

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

Görsel Programlama DERS 01. Görsel Programlama - Ders01/ 1

11- FONKSİYONLAR (FUNCTIONS)

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

Klavyeden Basit Giriş/Çıkış İşlemleri

Nesneye Yönelik Programlama (OOP) 7.Hafta

YZM 2105 Nesneye Yönelik Programlama

NESNEYE DAYALI PROGRAMLAMA 9. HAFTA UYGULAMA DERSİ

Facade (Cephe) Tasarım Şablonu KurumsalJava.com

HSancak Nesne Tabanlı Programlama I Ders Notları

C++ Dersi: Nesne Tabanlı Programlama

Ders 8: Metotlar. barisgokce.com

Kalıtım (Inheritance)

BMÜ-112 ALGORİTMA VE PROGRAMLAMA-II LABORATUARI DENEY-2 FÖYÜ

Nesne Tabanlı Programlama

HSancak Nesne Tabanlı Programlama I Ders Notları

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

Java ile Nesneye Yönelik Programlama (Object Oriented Programming)

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

Operator Aşırı Yükleme (Operator OverLoading)

Sınıf üyeleri: değişkenler (fields) and metotlar (methods) Değişkenler: nesne içerisindeki değişkenlerdir Temel veri tipi veya sınıf tipi

C++ Dersi: Nesne Tabanlı Programlama

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

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

Nesne Yönelimli Programlama

Chain of Responsibility Tasarım Şablonu KurumsalJava.com

Dizi ( Array ) ve Dizgi ( String )

Sınıf üyeleri: değişkenler (fields) and metotlar (methods) Değişkenler: nesne içerisindeki değişkenlerdir Temel veri tipi veya sınıf tipi

1 PROGRAMLAMAYA GİRİŞ

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

Nesneye Dayalı Programlama

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Operatörlerin Aşırı Yüklenmesi

Nesne Yönelimli Programlama

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

YZM 2105 Nesneye Yönelik Programlama

BTEP243 Ders 3. class Yazım Kuralı:

Nesne Tabanlı Programlama. Ders Notları

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

Decorator Tasarım Şablonu

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

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

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

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 8: Sınıf (Class) Yapılarına Giriş

YZM 2105 Nesneye Yönelik Programlama

JAVA API v2.0 Belge sürümü: 2.0.2

Nesne Yönelimli Programlama ve Kalıtım

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO

Android Ders Notları

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

19 Şubat 2016 Cuma

BİL-141 Bilgisayar Programlama I (Java)

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

C++ Dersi: Nesne Tabanlı Programlama

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

Java da İstemci Tarafı Uygulamalar

ALGORİTMA VE PROGRAMLAMA II

Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik.

Transkript:

Java Programlama 2015-2016 Güz Dönemi CLASS YAPISI 1Muhammer İLKUÇAR, MAKÜ-2011 BURDUR

Class - Obje Nesne İnsan ırkının ortak özelliklerini oluşturan insan sınıfı Name (adı Örn: insan sınıfı) Özellikler (properties) Kilosu Boyu Ten Rengi Saç tipi Saç rengi Göz rengi Gömlek Tipi Gömlek rengi Metodlar(methods) Konuşma() Yürüme () Ağlama () Gülme () Zıplama ().. 2Muhammer İLKUÇAR, MAKÜ-2011 BURDUR

Class - Obje Nesne insan sınıfından(nesnesinden) türetilip, özellikleri değiştirilerek elde edilen nesne 3Muhammer İLKUÇAR, MAKÜ-2011 BURDUR

Class - Obje Nesne Name (adı) : ARAC Properties(Özellik) Markası Hızı Vites Tekerlek Renk Hızlanma () Vites_Degistirme() Frenleme () Markası Hızı Vites Tekerlek Renk Events( Olaylar) Kliklenince Oluşunca Metodlar (Fonksiyon) Constructure (Yapıcı Metod) Hızlanma() Vites_Degistirme() Frenleme() 4Muhammer İLKUÇAR, MAKÜ-2011 BURDUR

Java Programlama dilinde class yapısı <Erişim izni> class <sınıf adı> <Erişim izini> <tipi> <değişken adi>; <Erişim izini> <Tipi> <adı> ( parameters ) // metod içeriği public class ogrenci public double ortalama; public void Hesapla ( int v, int f ) ortalama = v*0.2+f*0.8; 5Muhammer İLKUÇAR, MAKÜ-2011 BURDUR

Java programlama dilinde class yapısı 6Muhammer İLKUÇAR, MAKÜ-2011 BURDUR

Yeni class oluştuma 1 2 7Muhammer İLKUÇAR, MAKÜ-2011 BURDUR

Java Erişim izinleri Erişim izinleri kullanarak bir sınıfın güvenliği sağlanmış olur. Eğer bir üyeye sınıfımız içindeki metotlar dışında herhangi bir erişim yapılmasını istemiyorsak veya projemiz dışında herhangi bir yerden bu üyeye erişim izni vermek istemiyorsak erişim izinleri kullanılmalıdır. Erişim İzinleri private protected public Public Protected Private Açıklama Kendi sınıfı içerisinden erişilebilir. Sadece üyenin ait olduğu proje, kendinden türemiş alt sınıflardan ve kendi içerisinden erişilebilir. İstenilen her yerden üyeye erişim açıktır. Access Levels (Erişim Seviyeleri) Class (Tanımlan dığı sınıf) Package (Aynı paket) Subclass (türetilmiş Class) public Yes Yes Yes Yes protected Yes Yes Yes No tanımlanmamış Yes Yes No No private Yes No No No World(farklı paketlerden) 8Muhammer İLKUÇAR, MAKÜ-2011 BURDUR Kaynak: https://docs.oracle.com/javase/tutorial/java/javaoo/accesscontrol.html (23/12/2015

Java class yapısı x değişkeni private olduğu için sadece ogrenci class ı içerisinden erişilebilir y ve x değişkenlerine ait olduğu proje içerisinden de erişilebilir 9Muhammer İLKUÇAR, MAKÜ-2011 BURDUR

Java class yapısı 10 Değişkene herhangi bir erişim izni bildirimi bulunulmazsa ise kendi içinden ve ait olduğu paketten erişilebilir; Örneğin : int k;

Constructure Method(Yapıcı) Construecture (yapıcı) : Nesne ile aynı isime sahip olan olan metod dur. Direk çağrılamazlar. Nesne belleğe yüklendiğinde (new ) otomatik olarak çağrılırlar. Erişim izinleri vardır Parametreleri varsa nesne oluşturulurken ( parametreye değer gönderilir) Tipi yoktur ( void, int, string, double, bool, olamaz ) static olamazlar Overloading (parametre sayısı veya tipi farklı fonksiyon) özelliğe sahip olabilirler Destructure (yıkıcı) : javada destructure yoktur. Onun yerine belirli aralıklarla kullanılmayan nesneleri bellekten atan Garback Collectior (GC) vardır. 11

Constructure Method(Yapıcı) class bina public int kat; public int alani; public int kapasitesi; public bina() Console.Write("bina Nesnesi Oluşturuldu"); class Program public static void main(sstring[] args) bina b = new bina() ; 12

Constructure Method(Yapıcı) class bina public int kat; public int alani; public int kapasitesi; public bina( String msg) System.out.ptint( msg + " Nesnesi Oluşturuldu"); class Program public static void main(sstring[] args) bina b = new bina( " Deneme" ) ; 13

Overloading Constructure Method class bina public bina( ) System.out.print( Nesnesi Oluşturuldu"); public bina( string msg) System.out.print( msg + Nesnesi Oluşturuldu"); class Program static void main(string[] args) bina b = new bina ( ); bina b1 = new bina ( Deneme ); // birincisi // ikincisi 14

Overloading Constructure Method class Oyuncu public String Ad; public String TakmaAd; public Oyuncu ( Oyuncu oyuncu) // Kopya kurucu Ad=oyuncu.Ad; TakmaAd=oyuncu.TakmaAd; public Oyuncu( String isim) Oyuncu.Ad= isim; public Oyuncu( String isim, String takmaad) Oyuncu.Ad= isim; Oyuncu.TakmaAd= takmaad; static void main(string[] args) Oyuncu b1= new Oyuncu( «Ali»,»CAN»); Oyuncu b2= new Oyuncu(b1); b2.ad =«Ramazan»; System.out.rintln(b2. Ad, +»» + b2. TakmaAd); 15

Destructure (Yıkıcı) Destructure (yıkıcı) : Javada direkt yıkıcı metod tanımlanamaz. Onun yerine java kendisi otomatik Garbage-Collector (GC) denilen bir mekanizma tarafından belirli zamanlarda hafızada kullanılmayan nesneleri yok eder 16

static /* static tanımlı ifadeler nesne belleğe oluşturmadan nesne ismi ile direkt kullanılabilir. Aynı zamanda nesneler arası iletişim de sağlanmış olur. */ class bina public int kat; public int alan; public static int kapasite; public static void main(sstring[] args) bina b = new bina( ) ; b.kat = 5; b.alan = 78; b.kapasite = 600; // YANLIŞ. static değişkene bu şekilde ulaşılamaz. bina.kapasite = 600; // DOĞRU 17

static ifadeler static ifadelerde direkt nesne ismi ile erişilebilir. class ogrenci public static double vize, final, ort; public static void hesapla() ort = vize * 0.4 + final * 0.6; public void main(string[] args) ogrenci ogr = new ogrenci(); //ogr.vize=60; //ogr.final=80; //ogr.hesapla(); ogrenci.vize = 60; ogrenci.final = 80; ogrenci. hesapla(); System.out.print("Ortalama :" + ogrenci.ort ) ; 18

static ifadeler import static java.lang.system.out; import static java.lang.system.in; public class Ornek public static void main(string[] args) Scanner giris= new Scanner( in ); // System.in out.print("merhaba... "); // System.out.print(); 19

Properties ( Özellikler) (Okuma, Yazma) 20

Properties ( Özellikler) Bir değişkene erişimde veri koyma ve veri alma işlemlerinin farklı izinleri tabi olması için kullanılır. Örneğin bir değişkenin erişim izini public yapılırsa, o değişkene hem veri yazılabilir ( konur) hem de değişkendeki veri okunabilir (alınır). Eğer bir değişkendeki okuma ve yazma işlemlerine farklı erişim izni verilecekse o zaman 21

Properties ( Özellikler) package javaapplication3; public class OGR private double ort; // dışardan ulaşılamaz public double getort() return ort; // OKUMA izini ( GET) public void setort( double ort) this.ort = ort; // YAZMA izini (SET) public void Hesapla(int vize, int finali) ort = vize*0.4+ finali*0.6; KULLANIMI 22

Properties ( Özellikler) class ornek private String ad; //Kullanımı //Fonksiyon çağırma public void setad(string ad) this.ad = ad; ornek orn= new ornek(); orn.setad(«ali»); System.out.print( orn.getad() ); public String getad ( ) return this.ad; int x=integer.parseint( jtextfield1.gettext()); int y=integer.parseint( jtextfield2.gettext()); int z=x+y; jtextfield3.settext(string.valueof(z)); 23

Read Only Properties ( Özellikler) class ogrenci private double vize, finali, m_ort; private String m_durum = BAŞARISIZ ; ogrenci ( double vize, double finali) this.vize = vize; this.finali = finali; protected void hesapla() m_ort = vize*0.4+ finali*0.6; if(m_ort>=70) m_durum= BAŞARILI ; public string durum () return m_durum ; public double ort () return m_ort; static void Main(string[] args) ogrenci ogr = new ogrenci(79,60); ogr.hesapla(); Sytem.out.print( \nort: + ogr.ort); Sytem.out.print( \ndurum: + ogr.durum); 24

Read Only Properties ( Özellikler) 25

this this içinde bulunulan nesneyi ifade eder. class ogrenci private double vize, finali, ort; public void hesapla(double vize, double finali) this.vize = vize; this.final = finali; this.ort = this.vize * 0.4 + this.finali * 0.6; public void main(string[] args) ogrenci ogr = new ogrenci( ); ogr.hesapla(60, 70); System.out.print ("Ortalama :" + ogr.ort ) ; 26

Soru ve Önerileriniz.? 27

OOP (Object Orianted Programming) ile ilgili kavramları Okuyunuz lütfen 28

Nesne Tabanlı Programlama(OOP) Temelde OOP belirli bir problemin çözüm adımlarını parçalara bölerek bunları objeler haline dönüştürmektir. Buradaki temel amaç ileriki zamanlarda aynı problem ile karşılaşıldığında bu objelerin kullanılması. Tabii çözümü bir bütün olarak değil de bir parçalar olarak ele alındığından dolayı müdahalesi ve değişimi de daha hızlı olmaktadır. Örnek vermemiz gerekirse günümüz fabrikasyon üretimleri örnek olabilir. Mesela bir araba üreticisinin yeni bir araba serisi üretmek istediğini düşünün. Bu araba serisinin belirli özellikleri olduğu gibi birbirinden farklı özellikleri de olacaktır. Yapılacak araba serisi: A10, A11, A12 diye adlandırıldığını farz edelim. Her üç araba serisi içinde klima, merkezi kilit, müzik sistemi olacaktır. A11 serisinde ekstra olarak yol bilgisayarı, yağmur sensörü olacaktır. A12 serisinde ise yol bilgisayarı, yağmur sensörü, hava yastığı, sesli kontrol sistemi yer alıyor. Her üç araba serisi içinde kullanılan ortak materyaller klima, merkezi kilit, müzik sistemi, camlar, kapılar, farlar, direksiyon, v.b. materyallerdir. Firma bu materyallerin tasarımı ve üretimini bir sefer yapmaktadır. Ama aynı materyalleri üç farklı araba serisinde kullanmaktadır. OOP deki ana mantık da budur. Problemimiz araba yapmaktır, problemin çözümü için gerekli olan yol belirlenir. Daha sonra bu çözüm yolu parçalara bölünür. Bütün parçalar birer objedir. Ve objeler birleşimi problemin çözümüdür. 29

OOP nin Ortaya Çıkışı ve Faydaları OOP aslında bir mecburiyetten ortaya çıkmıştır. OOP nin en büyük avantajı büyük çaplı projelerdeki zaman ve para kaybını önlemesidir. 1960 ların sonuna doğru programların git gide büyümesi ve programlardaki değişikliklerin çok uzun zaman alması ve maliyetinin yüksek olması ile ortaya çıkmış bir programlama yaklaşımıdır. Prosedürel Programlama (sınıf yapısı olmadan, Örn: Timelinde sınıf yapısı olmadan programlamak) ile kodlanan yazılımlardaki değişiklikler çok uzun zaman alır. Mesela değiştirmek istediğiniz bir işlev için binlerce satır kod arasına girip saatlerce belki günlerce uğraşmanız gerekmektedir. OOP de ise bu mantık farklıdır. Değiştirmek istediğiniz işlevi sınıf yapısı içerisinde değiştirip hemen güncelleyebilirsiniz. Bu hem kodların daha derli toplu olmasını sağlar. Hem yapılacak olan değişiklikler için zaman kaybı olmaz ve maliyeti düşürür. Ayrıca yazılan sınıf yapılarını tekrar tekrar kullanabilirsiniz. Yani bir proje içerisinde yer alan sınıf yapısını farklı bir projede kullanabilirsiniz. 30

OOP Terimleri 1 Sınıf (Class) : Bir şeyin soyut olan özellik ve yeteneklerini tanımlar. Mesela yukarda verdiğimiz örnekteki araba. Araba ilk başta size somut gelebilir ama araba deyince herkesin aklına aynı şey gelmiyor, evet araba ama hangi araba? Siz sınıf ile tüm arabaları ele alıp hepsinin ortak özelliklerini tek bir çatı altında toplamış oluyorsunuz. Sınıfın amacı budur. Eğer tam olarak anlaşılmadıysa aşağıdaki madde kafanızdaki tahmin ettiğim soru işaretlerine cevap olacaktır. 2 Nesne (Object) : Bir sınıftan oluşmuş somut olan varlıktır. Bir sınıftan nesne yaratmaya programlamada nesne örnekleme denir.az önce yukarıdaki maddede arabaya soyut dedik ve bunun nedenini belirtirken de araba deyince herkesin aklına farklı bir şey gelmesidir dedik. Şimdi size Ferrari F50 desem aklınıza farklı bir araba geleceğini hiç sanmıyorum. Artık ortada somut olan herkesin ne olduğunda uzlaştığı bir nesne vardır. İşte biz nesne kavramı ile bu somut olan şeyleri tanımlıyoruz. Bir başka deyişle her Ferrari F50 bir arabadır ama her araba bir Ferrari F50 değildir diyebiliriz. 31 http://aydinunlu.blogspot.com/2008/10/c-ile-nesne-ynelimli-programlama_9149.html

OOP Terimleri 3 Yöntem (Method-Fonksiyon) : Bir nesnenin sahip olduğu yeteneklere yöntem denir. Anadol umuzun korna çalabilmesi onun bir yeteneğidir. Veya camının açılabilmesi, cam sileceklerinin çalışabilmesi bunların hepsi ve aklıma gelmeyen bunlara benzer yeteneklerin her biri nesnemizin yöntemleridir. 4 Kalıtım (Inherithance) : OOP nin en temel kavramlarından biridir. Sınıflar arasındaki hiyerarşinin kurulmasını sağlar. Ayrıca bunu yaparken de bir sınıfın, bir başka sınıftan türeyebilmesini de sağlar. Kalıtım işlemi sonucunda, türeyen sınıfa (derived class), temel sınıftaki (base class) tüm özellikler ve yetenekler aktarılır. Ayrıca birden fazla sınıf, aynı sınıftan türeyebilir. 32 http://aydinunlu.blogspot.com/2008/10/c-ile-nesne-ynelimli-programlama_9149.html

OOP Terimleri 5 Sarmalama (Encapsulation) : Bir sınıf içinde bulunan üyelerin (üyeler özellik ve yeteneklerin genel adıdır), o sınıfı kullananlar tarafından erişilip, erişilemeyeceğini belirlemeye yarar. Örnek vermek gerekirse arabamızı çalıştırdığımızı düşünelim, biz sadece anahtarı yerine sokup çeviriyoruz değil mi, o anda arka planda olan hiç bir işleme karışmıyor ve müdahale edemiyoruz, yani ben anahtarı çevirince o motora giden enerjiyi açıyor, benzini pompalıyor ve buna benzer bir dizi işlemi sırayla yapıyor ama biz bununla ilgilenmiyoruz ve buna erişemiyoruz, işte bu mekanizma bizim erişemememiz için kapsüllenmiştir. Aksi taktirde kaputu açıp enerjiyi biz vermeye kalksaydık istenmeyen durumlarla karşılaşabilirdik. Bu çok uç bir örnek oldu farkındayım o yüzden daha basit bir örnek vermek gerekirse hepimiz cep telefonu kullanıyoruz, mesaj yazarken birini ararken tuşlara basıyoruz ama telefonun içindeki devrelere erişmemiz engellenmiştir. Bu işlemi yapabilmemiz için tuş takımı geliştirilmiştir. Yani bu devreler bir nevi kapsüllenmiştir. Modelleme yaparken de bazen sınıfımızın üyelerine dışarıdan erişilebilmesini engellemek veya buna sınırlamalar getirmek isteyebiliriz, işte encapsulation kavramı bize bunu sağlıyor. 33 http://aydinunlu.blogspot.com/2008/10/c-ile-nesne-ynelimli-programlama_9149.html

OOP Terimleri 6 Çok Biçimlilik (Polymorphism) : Bir yeteneğin sınıfa has düzeyde olmasını sağlar. Örneğin yukardaki Araba sınıfımıza bir de VitesDeğiştir diye bir method ekleyelim. Ve bu yetenek başlangıç olarak DuzVites modunda çalışsın. Bu yetenek tahmin edebileceğiniz gibi Arabadan türeyen sınıflarımız olan OndenCeker, ArkadanCeker ve DortCeker e de kalıtım sayesinde geçecektir ve Arabada nasıl tanımlandıysa o şekilde yani düz vites çalışma mantığıyla geçecektir. Vites değiştirme işlemi DortCeker sınıfım için düz değil de, otomatik şekilde olsun. İşte polymorphism ile bu yapı desteklenebilir. Yani VitesDegistir yeteneğini farklı davranmasını istediğim sınıf içinde istediğim şekilde tekrar yorumluyorum ve o metod artık Araba sınıfından geldiği DuzVites hali ile değil de, yeni tanımladığım otomatik haliyle çalışabiliyor. 7 Soyutlama (Abstraction) : Bu kavramı basitçe şöyle tanımlayabiliriz; bir sınıf var ama bu sınıftan bir nesne yaratamıyorsunuz. Soyut olan bu sınıfı sadece yeni sınıflar türetebilmek amacıyla onlara rehberlik olsun diye kullanıyorsunuz. Bir başka deyişle, bir sınıfın oluşmasına rehber olacak özellik ve yeteneklerin soyut bir sınıf dahilinde tanımlanmasıdır. 34 http://aydinunlu.blogspot.com/2008/10/c-ile-nesne-ynelimli-programlama_9149.html