Nesne Tabanlı Programlamaya Giriş BTP 218 Fatih Üniversitesi Bilgisayar Teknolojisi ve Programlama Bölümü Dersin Genel İçeriği  Nesne Tabanlı Programlama Temelleri  Nesne Tabanlı Tasarım  Nesne tabanlı uygulamalarda Java dilini nasıl kullanabiliriz? Ders.

Download Report

Transcript Nesne Tabanlı Programlamaya Giriş BTP 218 Fatih Üniversitesi Bilgisayar Teknolojisi ve Programlama Bölümü Dersin Genel İçeriği  Nesne Tabanlı Programlama Temelleri  Nesne Tabanlı Tasarım  Nesne tabanlı uygulamalarda Java dilini nasıl kullanabiliriz? Ders.

Nesne Tabanlı
Programlamaya Giriş
BTP 218
Fatih Üniversitesi
Bilgisayar Teknolojisi ve Programlama
Bölümü
1
Dersin Genel İçeriği

Nesne Tabanlı Programlama Temelleri

Nesne Tabanlı Tasarım

Nesne tabanlı uygulamalarda Java
dilini nasıl kullanabiliriz?
2
Ders İçin Gerekli Olan

Kitap
– Türkçe kaynak:Java 2 Herkes İçin, Alfa
Yayınları
– İngilizce kaynak: Java How to Program
,Deitel&Deitel, 5 Edition

Java Virtual Machine (1.4.2 )
– http://java.sun.com

Text Editör
– JCreator 2.5
3
Notlandırma





%20
%20
%35
%15
%5
 Vize 1
 Vize 2
 Final
 Proje
 Yoklama
– Teori % 70 , Lab % 80
4
14 Haftalık Program










Nesne Tabanlı Programalama Nedir?– Hafta 1
Sınıf Tanıtımı – Hafta 2
Miras – Hafta 3
Polimorfizm – Hafta 4, 5
Vize 1 – Hafta 6
Grafik, Java 2D – Hafta 7
GUI Bileşenleri 1 –Hafta 8,9
GUI Bileşenleri 2 – Hafta 10, 11
Vize 2 – Hafta 12
Proje Sunumları –Hafta 13,14
5
Önemli Notlar

Ders ile alakalı tüm bilgiler www.fatih.edu.tr/~zsevkli/BTP218 sayfasında
yer alacak. (ders notları, sınav sonuçları, ödevler,projeler ve duyurular)

Proje konularını 2 hafta sonra web sitesinden öğrenebileceksiniz


Projeleri her grup (2 kişi) ayrı ayrı düşünüp tasarlayacak. İnternetten
hazır kod getiren yada başka grup ile aynı koda sahip olan grupların
proje notları 0 olacaktır. (Açıklayamayacağınız kodları yazmayın)
Bu dersin sadece alt zihin becerileriyle (ezberleme, kopyalama, tekrar)
ile başarılamayacağını anlama, özellikle üst zihin becerilerini (yorumlama,
değerlendirme, problem çözme) kullanarak başarılı olacağını kabul etme.

Derse konsantre olarak gelme

Derste dikkatinizi dağıtacak işleri terk etme (cep telefonu)
6
Önemli Notlar

Lablarda ve teori derslerinde bonus sorulara cevap verenleri
ödüllendirme

Vizelere katılmayanlar için ek sınavın yapılamaycağını bilme (Vize
yüzdesini finale katma)

Mazeret sınavlarının vize ve final sınavlarından daha zor ve farklı
olduğunu bilme

Ofis saatlerini değerlendirme
– Pazartesi 13.00- 15.00 Cuma : 13.00- 14.00

Çalışmanızı ve gayretinizi hocanıza dönem içinde gösterme

Dönem sonunda hocanızdan kişisel ödev veya proje talebinde
7
bulunmama
Aklınıza Takılanlar??
Derse geçmeden önce!!
8
Zor Sorular


Nesne Tabanlı Programlama Nedir?
(Object-Oriented Programming)
Niçin bu kadar popüler?
– NTP kendisinden önce varolan tüm
dillerden farklı, devrim yaratan bir
düşüncedir.
9
NTP Neden bu kadar
Popüler?

Birkaç sebep:
– Üretkenliğini ve verimliliğini hızlı bir
şekilde kanıtladı.
– Varolan dillerden kolaylıkla geçiş yapıldı.
– Problemlerin çözümüne nesnesel bakmayı
yani insan anlayışı bakışı getirdi.
10
Yeni Model

Model :Örnek/Modeldünyayının
nasıl çalıştığı anlamamıza yardım eder.
– Bir örnek cümle fiil çekiminin nasıl
yapıldığını hatırlatır.
– Newton modeli (kuralları) niçin elmanın
ağaçtan düştüğünü açıklar.

Bunları programlama dili ile nasıl
anlatabiliriz?
11
NTP Modeli




Bilgisayar Bilimlerinde bir model
elementlerin nasıl bilgisayar programında
tasarlandığını ve elementlerin birbirleriyle
nasıl haberleştiğini açıklar.
NTP bir modedirDünyayı algılama yolu
NTP iletişim halinde olan topluluklar gibi
yapılanırobjeler.
Her obje bir hizmet (service) yada diğer
üyelerin kullanacağı bir olay (action)
gerçekleştirir.
12
NTP’ prensiplerinin
Açıklaması
Herşey bir objedir.
Objeler birbirlerine ulaşan mesajlar yada istekler
oluştururlar.
Her objenin kendi hafızası vardır.
Her obje bir sınıfın örneğidir. Sınıf benzer
objeleri gruplayan tasarıdır.
Sınıf, obje ile ilgili davranışların tanıtıldığı yerdir.
Sınıflar tek köklü ağaç yapıları içinde organize
edilirler.Bu yapıya miras hiyerarşisi denir.
13
NTP içeriğini açıklayan bir örnek –
Şehirdışındaki bir arkadaşa çiçek
yollamak


Bunu kendim yapamam. Öyleyse kendi
Çiçekçimi kullanayım.Çiçekçime (adı Flo)
arkadaşımın adresini verdim, ne kadarlık bir
çiçek yaptırmak istediğimi, ne tür çiçek
istediğimi söyledim.
Flo arkadaşımın şehirindeki çiçekçi ile kontak
kurdu.O da çiçekleri yaptırdı ve taşımacı ile
anlaşarak çiçeği teslim etti.
14
Çiçekçi Örneği Devam


Eğer düşüncemizi daha geniş tutsa idik
başka insanlarda bu işlemin içine
gireceklerdi. Çiçek yetiştiricisi,
aranjmanı yapan kişi ve daha başka
insanlar...
Problemimizin çözümü için insanların
birbiri ile iletişimde olması gerektiğini
gördük.
15
Objeler

Herşey bir obje

Örnekler olayları oluşturur.

Kendim, arkadaşım, çiçekçi,
arkadaşımın şehirinde olan çiçekçi,
şöför, çiçek aranjmanı, çiftçi
16
Mesajlar


Objeler birbirlerine mesajlar iletirler.
Bir örnek bu mesajı kabul edebilir
(accept) ve geri dönüşte bir olay
gerçekleştirip bir değer geri
dönderebilir.
17
Mesajlar ve Metodlar



Olay başlatma: Bir objeye ait bir mesajı gönderme
olayın sorumluluğu altındadır.
Mesaj, olay için istek olarak kodlanır ve isteğin
taşınması için gerekli başka bilgiler mesaja eklenir.
Mesaj giden obje alıcıdır. Eğer alıcı mesajı kabul
ederse, alıcı istene olayı gerçekleştirmekle
sorumludur.
18
Bilgi Soyutlama



Benim bilmem gereken sadece objenin
kabul edeceği mesaj ismidir.
Benim isteğimin nasıl gerçekleştiğinin,
hangi olaylarla gerçekleştiğini hakkında
bir bilgim yok.
Ama taşıyıcı obje bu işi
gerçekleştirmekle sorumlu.
19
Alıcılar

Mesajlar kullandığımız fonksiyonlardan farklı olarak
çağrılırlar:
– Mesajda mesajı kabul edecek alıcıya göre tasarlanma var.
/Bildiğimiz fonksiyonlarda alıcıya göre tasarlanma
– Alıcıya göre aynı mesaj farklı yorumlanabilir. (Polimorfizm)



Karen (arkadaşıma) çiçek yollayabilir
Flo (arkadaşıma) çiçek yollayabilir (metodlar farklı)
Alice(arkadaşıma) çiçek yollayamaz
– Metod yok
– İsteği anladı ama hatalı cevap verdi.
20
Farklı Olaylar
public class ActionTester {
Florist flo = new Florist();
Wife beth = new Wife();
Dentist ken = new Dentist();
HumanBeing myFriend = new HumanBeing();
public static void main(String[] args) {
flo.sendFlowersTo(myFriend); // will work
beth.sendFlowersTo(myFriend); // probably will work
ken.sendFlowersTo(myFriend); // probably will not
work
}
}
21
Bilgisayarlar ve
Programlar


Mesajın hangi alıcıya gideceği program
çalışma anına kadar bilinmez.
Mesaj ile kod arasındaki bu işe late
binding yani geç bağlanma denir.
22
Sorumluluklar


NTP temel konu sorumlu olunan
davranışları tanımlama
Geleneksel programlar genellikle
veriler üzerinde kodlama yaparlar
– Bir dizide değer değiştirme..

NTP ise veriler (objler) bir hizmet
oluşturmak için talep edilir.
23
Sorumluluklar
“Ask not what you can do to your data
structures, but what your data structure can
do for you”
24
Tekrarlanan Tasarı


Her objenin kendi hafızası vardır.
Her obje minyatür bilgisayar gibi işler
– her özel işlemci aytı bir iş yapar.
25
Sınıflar





Flo  Bir çiçekçiden istediğim tüm davranışarı
sergileyebilmeli
Çiçekçi  Genel bir model
Flo ise bu modelin bir örneği, tüm kurallara itaat
eden
Her obje bir sınıfın örneğidir.Sınıflar objeleri
gruplarlar.
Sınıf objelere ait davranışların tanımlandığı yerdir.
Tüm objeler bir sınıfın örneğidirler. Ve tüm
objeler sınıfta tanımlanan aynı metodları
kullanırlar.
26
Sınıf Hiyerarşisi
27
Miras

Sınıflar tek köklü ağaçt yapısıyla organize
olurlar.Buna miras hiyerarşisi denir.
–
–
Bir sınıf için tanımladığım bilgi (veri ve/veya
davranış) ondan türeyen daha alt düzeydeki
sınıflar için de tanımlıdır.
Flo is-A Florist is-A Shopkeeper Flo is a more
specialized form of the category Shopkeeper.
Any Knowledge about Shopkeeper is also
true for Florist and hence Flo
28
Overriding (İptal etme)

Subclasses can alter or override information
inherited from parent classes:
– All mammals give birth to live young
– A platypus is an egg-laying mammal

Subclass have a method with the same
name as the method in parent class and
states the search rule to match a specific
method
– If no appropriate method in subclass go up to
parents until either a method is found or the
parent class chain is exhausted.
29
Özet



NTP programlama dillerine eklenecek kadar
kolay bir özellik değildir. Yeni bir düşünme
yoludur.
NTP programa birbiri ile ilişkideki topluluklar
gözü ile bakar. Belli bir amaç için vaolan ve
bir görevi olan herşeye obje der.
Obje veri ve davranışları ile kapsüllenmiş
olarak oluşur.
32
Özet



Sınıf, bir grup nesne tarafından
paylaşılacak olan yapı ve davranışları
tanımlar.
Belli bir sınıfın her nesnesi, sanki o
saınıfın bir kalıb ile damgalanmış gibi
sınıf tarafından tanımlanan yapı ve
davranışı gösterirSınıf örnekleri
Sınıfın kod ve verilerine üye denir.
33
Özet



Sınıf tarafından tanımlanan veriye üye
değişken denir
Bu veri üzerinde iş göre koda üye
metot denir.
Sınıfın davranışarı metotlar tarafından
tanımlanır.
34
Özet


Miras, bir nesnenin diğer bir nesnenin
özelliklerini kazanmasıdır.
Polimorfizm ise bir arabirim- çok
metot kavramı ile açıklanır. Aynı
metodun farklı alıcılara göre farklı
davranması
– Köpek – koklama
Koklama(kedi)  havlar, kovalar
 Koklama (yiyecek)  salya akar, kaba koşar.

35