3 Mart 2009 Salı

Object nedir (What is an object)?

http://java.sun.com/docs/books/tutorial/java/concepts/index.html

java.sun'ın sitesinden öğrendiklerim, bir nevi çeviri gibi oldu, anlayabildiğim kadarıyla...

What Is An Object (Nesne NEdir?) (State and Behavior olmalı)

Object (Nesne'ler), object-oriented technolojinin anahtarı gibidir. Bildiğimiz gibi java ile ilgili ne kadar araştırma yaparsanız yapın her yer de hava nesne tabanlıdır object oriented teknolojidir gibi laflar okumuşsunuzdur.

Diyor ki, Etrafınıza bir göz atın, gerçek dünyadaki çevrenizdeki nesneleri düşünün, sıran, masan, köpeğin, televizyonun, bisikletin... gerçek dünyadaki nesneler iki karekter taşır.: State ve Behaviour. Hepsininde bir state'i ve behaviour'ı olmak zorundadır ve vardır.

Mesala Köpek:
State'leri
  • isim (name)
  • renk (color)
  • doğurganlık (breed)
  • aç (hungry)
Behaviour'ları
  • havlama (barking)
  • tipi (fetching)
  • kuyruk sallaması (wagging tail)
Mesala Bisiklet;

State'leri
  • current gear, (geçerli vites)
  • current pedal cadence, (geçerli pedal)
  • current speed (geçerli hız)
Behaviour'ları
  • changing gear, (vites değiştirme)
  • changing pedal cadence, (pedal ayarını değiştirme)
  • applying brakes (fren değiştirme)
object-oriented (nesneye Yönelik)programlamayı düşünmek için gerçek dünyadaki nesnelerle bağlantı kurmak en iyi yoldur.

gerçek dünyadaki nesnelere odaklanın, düşünün ve kendinize şu iki soruyu sorun:
Bu nesnenin ne gibi durumları (state) var? ve
Bu nesne ne gibi davranışlar (behaviour) sergileyibilir?

Bunları bir kağıda yazmayı deneyin.

Mesala masa lambası örneğini verimiş:

Masalambası iki duruma (state) sahiptir : açık, kapalı (on,off)
iki davranışa (behaviour'a): açmak, kapatmak (turn on, turn off)

ama masaüstü radyonuz varsa bunlara ilaveten ekstra state'leri vardır. ( on ,off, current volume, current station,

ayrıca ekstra behaviour'ı (turn on, turn off, increase volume (ses açma), decrease volume(ses kısma), seek (arama), scan (tarama), and tune (ayar)

ayrıca bazen, bazı nesnlerin özelliklerini başka nesnelerinde içerdiğini görürsünüz.

Bir yazılım nesnesi

.....

Bir bisiklet düşünün :

Bisiklet yazılım nesnesi olarak modellenmiştir.

State'lerini alalım : (geçerli vites - current gear, pedal ritmi- current pedal cadence, geçerli hız - current speed)

Bisikleti kullanacak diğer kullanıcıları kontrol için State (durum) değiştirmek için bir metod(method) geliştirmeliyiz. Mesala bisiklet 6 vitesli olsun. (Kullanıcıların bunun altına indiğinde veya üstüne çıktığında uyarılmasını istiyoruz gibi.)

kullanıcı vitesi değiştirdiğinde , 1'den az ve 6'dan fazla girildiğinde reddedecek bir method yazabiliriz.

Nesneye yönelik kod yazılmasının birkaç faydası vardır.

  1. Birimsellik: bir nesne için kaynak kodu yazılır ve bağımsız başka nesneler için kaynak kod korunur.

  2. Bilgi gizleme: Bir nesnenin yöntemleri ile etkileşimlie olarak, kendi iç uygulama detayları dış dünyadan gizli kalır.

  3. Kodu yeniden kullanım: Eğer bir nesne zaten yazılı varsa, kendi programınızda bu nesneyi kullanabilirsiniz.

  4. Hata ayıklama kolaylığı: Eğer bir nesne sorunlu olunca sadece nesneyi kaldırabilirsini. tüm maikne yerine sadece bir civatayı çıkarmış olursunuz.
alıntı. kaynak: java.sun

Hiç yorum yok:

Yorum Gönder