Başlangıç Durumuna Getirme ve Temizlik. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 1

Benzer belgeler
Başlangıç Durumuna Getirme ve Temizlik

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 3

4.Hafta. this Anahtar Sözcüğü

3.1. Başlangıç Durumuna Getirme İşlemi ve Yapılandırıcılar (Initialization and Constructor)

Dizi türündeki referanslar, dizi nesnelerine bağlanmaktadır. Dizi referansları tanımlamak bu dizinin hemen kullanılacağı anlamına gelmez...

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

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

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

Nesne Yönelimli Programlama

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

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

İçerik. Temel Kavramlar. Nesne Nedir? 1. Nesne : Örnek. Nesne Nedir? 2. Geçen hafta: Bu hafta: BBS-515 Nesneye Yönelik Programlama

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

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

Sınıfların Tekrardan Kullanılması. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 1

7. HAFTA. Erişim Belirleyiciler

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

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

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

Yrd. Doç. Dr. Caner ÖZCAN

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;

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-3 İşaretçiler (Pointer) (Kısım-2)

BTEP243 Ders 3. class Yazım Kuralı:

Yrd. Doç. Dr. Caner ÖZCAN

İki Yöntem. Komposizyon (Composition) Kalıtım (Inheritance)

Erişim konusunda iki taraf vardır:

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 4. Yrd.Doç.Dr.Hacer Karacan

public static int Toplam int x, int y

Java Dersi. Altuğ Bilgin Altıntaş

Java da Program Denetimi ve Operatörler

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

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

Java da Program Denetimi ve Operatörler. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 2 1

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

J A V A D A P R O G R A M D E N E T İ M İ V E O P E R A T Ö R L E R

Nesne Yönelimli Programlama

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

JAVADA DİZİ İŞLEMLERİ

YZM 2105 Nesneye Yönelik Programlama

BİL-141 Bilgisayar Programlama I (Java)

C++ Dersi: Nesne Tabanlı Programlama

NESNEYE YÖNELİK PROGRAMLAMA

Java String İşlemleri

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.

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 7

3.Hafta. . Kontrol Deyimleri/İfadeler

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

HSancak Nesne Tabanlı Programlama I Ders Notları

Nesne Yönelimli Programlama

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

Diziler İndisli Değişkenler

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

Nesneye Dayalı Programlama

BMH-303 Nesneye Yönelik Programlama

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

İş Parçacıkları (Threads)

Hata Ayıklamanın Ötesi... (Assertion) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 14 1

Bu parçalar arasındaki ilişkiyi kullanıp büyük çaplı programlar geliştirme tekniğine de nesne yönelimli programlama denir.

BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI. 3Hafta

BLM 112- Programlama Dilleri II. Hafta 5 İşaretçiler (Pointers)

Bölüm 9. Altprogramlar ISBN

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

11- FONKSİYONLAR (FUNCTIONS)

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

NESNEYE DAYALI PROGRAMLAMA 9. HAFTA UYGULAMA DERSİ

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

Doğu Akdeniz Üniversitesi Bilgisayar Mühendisliği Bölümü. BLGM 318 Ara Sınavı Đlkbahar Dönemi 13 Nisan Ad, Soyad Öğrenci No.

JAVA DA GİRİŞ/ÇIKIŞ İŞLEMLERİ. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 9 1

Nesne Tabanlı Programlama

Sunum İçeriği. Programlamaya Giriş

Programlama Dilleri 3

HSancak Nesne Tabanlı Programlama I Ders Notları

Lambda İfadeleri (Lambda Expressions)

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

Yeni G/Ç (new I/O) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 10 1

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

Dr. Fatih AY Tel: fatihay@fatihay.net

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

// hataları işaret eden referans

C de Detaylı Üs Alma Programı. C# Dilinde Metot Tanımlama ve Yazdırma

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

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

Metotlar. d e f metot_adı [ ( [ arg [= d e f a u l t ] ]... [, arg [, &expr ] ] ) ] deyim ( l e r ) end

D İ Z İ L E R A R R A Y S

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

C++ Dersi: Nesne Tabanlı Programlama

İÇİNDEKİLER VII İÇİNDEKİLER

Genel Programlama II

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

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 9

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 6

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

DATA STRUCTURES. Lab II Metotlar, Diziler ve Hata Ayıklama. Doç. Dr. Aybars UĞUR

İstisnalar (Exceptions) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 8 1

ELN1001 BİLGİSAYAR PROGRAMLAMA I

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

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

Transkript:

Başlangıç Durumuna Getirme ve Temizlik Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 1

Hataların sebepleri... Nesnelerin yanlış biçimde başlangıç durumlarına getirilmesi Uygulamayı yazan kişi bilmediği kütüphaneye ait nesneleri yanlış şekilde başlangıç durumuna getirmesi nedeniyle hatalarla karşılaşabilir. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 2

Hataların sebepleri Temizlik işleminin doğru bir şekilde yapılmaması Oluşturulmuş ve kullanılmayan nesnelerin, sistem kaynaklarında gereksiz yere var olması ile bellek problemleri ortaya çıkabilir. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 3

Başlangıç durumuna getirme işlemi ve yapılandırıcılar Bir nesnenin başlangıç durumuna getirilme işlemi (initialization), bir sanatçının sahneye çıkmadan evvelki yaptığı son hazırlıkgibidüşünülebilir. Oluşturulacak olan nesne kullanıma sunulmadan evvel bazı bilgilere ihtiyaç duyabilir veya bazı işlemleri gerçekleştirmesi gerekebilir (JDBC, konfigurasyon dosyası yüklenmesi gibi). Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 4

Yapılandırıcılar (Constructor) Yapılandırıcılar içerisinde nesne oluşturulmadan önceki son hazırlıklar yapılır. Yapılandırıcılar normal yordamlardan (method) farklıdırlar. Yapılandırıcılar, Java tarafından otomatik olarak çağrılırlar. Karşımıza çıkan iki problem Java Yapılandırıcının ismini nasıl bilecektir? Yapılandırıcının ismi başka yordamların isimleriyle çakışmamalıdır. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 5

Problemin Çözümü Bu problemlere ilk çözüm C++ dilinde bulunmuştur. Yapılandırıcının ismi ile sınıf ismi bire bir aynı olmalıdır. Böylece Java, yapılandırıcının ismini önceden tahmin edebilecektir. İsim karışıklığı minimuma indirgenmiş olur. YapilandirciBasitOrnek.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 6

Yapılandırıcılar (Constructor) - 2 Yapılandırıcılara parametreler aktarılabilir. Yapılandırıcı içerisinden herhangi bir şekilde return ifadesi ile değer döndürülemez. (return 5, return true gibi) Yapılandırıcılardan çıkmak istiyorsak sadece return yazılması yeterlidir... YapilandirciBasitOrnekVersiyon2.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 7

Adaş Yordamlar (Overloaded Methods) İyi bir uygulama yazmak her zaman iyi bir takım çalışması gerektirir. Uygulamalardaki yordam (method) isimlerinin, yordam içerisinde yapılan iş ile uyum göstermesi önemlidir. Bu sayade bir başka kişi sadece yordam ismine bakarak, içerisinde oluşan olayları anlayabilme şansına sahiptir. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 8

Örnek - 1 Elimizde bulunan muzik resim text formatındaki dosyaları açmak için yordamlar yazmak istersek, bu yordamların isimlerinin ne olması gerekir? Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 9

Örnek - 1 (devam) Yordam isimleri olarak muzik dosyası için muzikdosyasiac() resim dosyası için resimdosyasıac() text dosyası için textdosyasıac() Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 10

Örnek - 1 (devam) Sonuçta işlem sadece dosya açmaktır, dosyanın türü sadece bir ayrıntıdır. MetodOverloadingDemo1.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 11

Adaş yordamlar nasıl ayırt edilir? Java aynı isimde olan yordamları (overloaded methods) nasılayırt edebilmektedir? Her yordamın kendisine özel/tek parametresi veya parametre listesi olmak zorundadır. MetodOverloadingDemo2.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 12

Adaş yordamlar dönüş değerlerine göre ayırt edilebilir mi? Akıllara şöyle bir soru gelebilir : "Adaş yordamlar dönüş tiplerine göre ayırt edilebilir mi? " void toplamayap(); double toplamayap(); double y = toplamayap() ; toplamayap() ; // sorun var Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 13

Varsayılan yapılandırıcılar (Default constructors) Eğer uygulamamıza herhangi bir yapılandırıcı koymazsak Java bu işlemi kendi otomatik olarak yapmaktadır. Varsayılan yapılandırcılar (parametresiz yapılandırcılar, default constructor veya "no-args" constructor) içi boş bir yordam olarak düşünülebilir. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 14

Örnek - 2 class Kedi { int i; } public class VarsayilanYapilandirici { public static void main(string[] args) { //Varsayılan yapılandırıcı çağrıldı Kedi kd = new Kedi(); } } Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 15

Örnek - 2 (devam) class Kedi { int i; /* varsayılan yıpılandırıcı. Bu yapılandırıcıyı eğer biz koymasaydık Java bizim yerimize zaten koyardı */ public Kedi() {} } public class VarsayilanYapilandirici { public static void main(string[] args) { // varsayılan yıpılandırıcı Kedi kd = new Kedi(); } } Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 16

Büyünün Bozulması Eğer kendimiz yapılandırıcı yazarsak, Java bizden varsıyılan yapılandırıcı desteğini çekecektir. Kendimize ait özel yapılandırıcılar tanımlarsak Java ya "Ben ne yaptığımı biliyorum, lütfen karışma" demiş oluruz. VarsayilanYapilandiriciVersiyon2.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 17

this anahtar kelimesi this anahtar kelimesi, içinde bulunulan nesneye ait bir referans döner. Bu referans sayesinde nesnelere ait global alanlara erişme fırsatı buluruz. TarihHesaplama.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 18

Yordam cağrımlarında this kullanımı -2 Yumurta.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 19

Bir yapılandırıcıdan diğerini çağırmak 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. Her zaman yapılandırıcılar içerisinden this ifadesi ile başka bir yapılandırıcı çağrılır. Yapılandırıcılar içersinde birden fazla this ifadesi ile başka yapılandırıcı çağrılamaz. Tost.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 20

Ekran çıktısı Tost(int sayi,string malzeme) Tost(int sayi) parametresiz yapilandirici Tost sayisi =5 malzeme =Sucuklu Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 21

Statik Alanlar (Sınıf Alanları) Sadece global olan alanlara statik özelliğini verebiliriz. Yerel değişkenlerin statik olma özellikleri yoktur. Statik alanlar, bir sınıfa ait olan tüm nesneler için aynı bellek alanında bulunurlar. StatikDegisken.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 22

Kuş bakışı görüntü Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 23

Statik Yordamlar (methods) Statik yordamlar (sınıf yordamlar), nesnelerden bağımsız yordamlardır. Statik bir yordamı çağırmak için herhangi bir sınıfa ait nesne oluşturma zorunluluğu yoktur. Statik olmayan yordamlardan (nesneye ait yordamlar), statik yordamları rahatlıkla çağırılabilmesine karşın statik yordamlardan nesne yordamlarını doğrudan çağıramayız. StatikTest.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 24

Bir yordamın statik mi yoksa nesne yordamı mı olacağına neye göre karar vereceğiz? Nesnelerin durumları (state), uygulamanın gidişine göre değişebilir. MutluAdam.java (*) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 25

Statik yordamlar Statik yordamlarlar atomik işler için kullanılırlar. Uygulamalarınızda çok fazla statik yordam kullanıyorsanız, tasarımınızı baştan bir kez daha gözden geçirmeniz tavsiye olunur. Toplama.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 26

Temizlik İşlemleri: finalize() ve çöp toplayıcı (Garbage Collector) Java dilinde, C++ dilinde olduğu gibi oluşturulan nesnelerimizi işleri bitince yok etme özgürlüğü kodu yazan kişinin elinde değildir. Bir nesnenin gerçekten çöp olup olmadığına karar veren mekanizma çöp toplayıcısıdır(garbage collector). Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 27

finalize() yordamı Akıllarda tutulması gereken diğer bir konu ise eğer uygulamanızçokfazlasayıda çöp nesnesi (kullanılmayan nesne) üretmiyorsa, çöp toplayıcısı (garbage collector) devreye girmeyebilir. Birbaşka önemli nokta; System.gc() ile çöp toplayıcısını tetiklemezsek, çöp toplayıcısının ne zaman devreye girip çöp haline dönüşmüş olan nesneleri bellekten temizleneceği bilinemez. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 28

System.gc() Temizle.java Temizle2.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 29

Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 30

Çöp toplayıcısı (Garbage Collector) nasıl çalışır? Çöp toplayıcısının temel görevi, kullanılmayan nesneleri bularak bunları bellekten silmektir. Sun Microsystems tarafından tanıtılan Java HotSpot VM (Virtual Machine) sayesinde heap bölgesindeki nesneler nesillerine göre ayrılmaktadır. Eski Nesil Yeni Nesil Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 31

Çöp toplayıcısı (Garbage Collector) nasıl çalışır? Nesnelerin bellekten silinmesi görevi kodu yazan kişiye ait değildir. Bu görev çöp toplayıcısına aittir. Java 1.3.1 ve daha sonraki Java versiyonları iki noktayı garanti eder; Kullanılmayan nesnelerin kesinlikle bellekten silinmesi. Nesne bellek alanının parçalanmasını engellemek ve belleğin sıkıştırılması. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 32

Çöp toplama teknikleri Eski yöntem Referans Sayma Yöntemi Yeni Yöntemler Kopyalama yöntemi (Copy) İşaretle ve süpür yöntemi (Mark and Sweep) Artan (sıra) yöntem (Incremental) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 33

Heap Bölgesine Bakış Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 34

Heap bölgesinin boyutları nasıl kontrol edilir. Heap bölgesine minimum veya maksimum değerleri vermek için -Xms veya -Xmx parametlerini kullanırız. java -Xms32mb Temizle Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 35

Kopyalama yönteminin gösterimi Birazdan gösterilecek olan şeklimizde, canlı nesneler kırmızı renk ile ifade edilmiştir. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 36

Aşama 1 Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 37

Aşama 2 Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 38

Aşama 3 Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 39

İşaretle ve süpür yönteminin gösterimi Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 40

Kopyala yöntemin ve işaretle ve süpür yöntemi HeapGosterim.java java -verbosegc HeapGosterim Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 41

Uygulamanın Çıktısı Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 42

Alanlara ilk değerleri atama Java uygulamalarında üç tür değişken çeşiti bulunur: Yerel (local) değişkenler. Nesneye ait global alanlar. Sınıfa ait global alanlar (statik alanlar). Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 43

Örnek - 3 DegiskenGosterim.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 44

Yerel Değişkenler public int hesapla () { // yerel değişkenlere ilk değerleri her zaman //verilmelidir. } int i ; i++; //! Hata! ilk deger verilmeden üzerinde işlem yapılamaz return i ; Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 45

Nesneye ait global alanlar ilkel tipler IlkelTipler.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 46

Nesneye ait global alanlar - sınıf tipleri NesneTipleri.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 47

Sınıflara ait global değişkenler - ilkel tipler Önemli Nokta: Statik olan alanlara sadece bir kere değer atanır. IlkelTiplerStatik.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 48

Sınıflara ait global değişkenler sınıf tipleri StatikNesneTipleri.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 49

İlk değerleri atarken yordam kullanımı KarisikTipler.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 50

İlk değer verme sıralaması Nesneye ait global alanlara ilk değer hemen verilir, hatta yapılandırıcıdan bile önce... Alanların konumu hangi sırada ise ilk değer verme sıralaması da aynı sırada olur. Defter.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 51

Statik ve statik olmayan alanların değer alma sıralaması Statik alanlar sınıflara ait olan alanlardır ve statik olmayan (nesneye ait alanlar) alanlara göre ilk değerlerini daha önce alırlar. Kahvalti.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 52

Statik alanlara toplu değer atama Statik alanlarımıza toplu olarak değer atama. StatikTopluDegerAtama.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 53

Statik olmayan alanlara toplu değer atama NonStatikTopluDegerAtama.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 54

Diziler (Arrays) Diziler nesnedir. Dizi nesnesi, içinde belli sayıda eleman bulundurur. Dizi içerisindeki ilk elemanın konumu 0 'dan başlar, son elemanınyeriise n-1 'dir. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 55

Dizi tipindeki değişkenler double[] dd ; // double tipindeki dizi double dd[] ; // double tipindeki dizi float [] fd ; // float tipindeki dizi Object[] ao ; // Object tipindeki dizi Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 56

Dizileri oluşturmak double[] d = new double[20] ; double dd[] = new double[20]; float [] fd = new float [14]; Object[] ao = new Object[17]; String[] s = new String[25] ; Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 57

Dizilerin tekrardan boyutlandırılması int liste[] = new int[5] ; // yeni bir dizi nesnesine bağlandı liste = new int[15] ; Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 58

Dizi içerisindeki elemalara ulaşım DiziElemanlariGosterimBir.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 59

Diziler içerisinde elemanların sıralanması DiziSiralama.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 60

Dizilerin dizilere kopyalanması DizilerinKopyalanmasi.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 61

Çok Boyutlu Diziler Dizi içerisinde dizi tanımlanabilir. int[][] t1 = { { 1, 2, 3, }, { 4, 5, 6, }, }; Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 62

Çok boyutlu dizileri oluşturmanın diğer bir yolu int [][] t1 = new int [3][4] ; int [][] t1 = new int [][4] ; //!Hata! CokBoyutluDizilerOrnekBir.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 63

Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 64

Değişik boyuta sahip diziler CokBoyutluDiziler.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 65

Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 66

Sorular... Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 67