Java Ve Diziler Konusu

Diziler

Java"da diziler nesnedirler, C"deki gibi hafızada yer kaplayan pointer değillerdir. Java "da diziler, C "ye göre daha güvenilirdir. Dizilerin elemanlarına gelişigüzel değerler atayamazsınız. Java, dizi elemanlarını sırasıyla kontrol eder. Dolayısıyla arada değer atanmamış bir elemana rastlanırsa hata oluşur. Bu da C"de çıkan hafıza bozulmalarını önler. Java"da dizi kullanmak için ilk önce dizinin tipi verilir. Tip verilirken dizinin büyüklüğü belirtilmez.

int numbers[];                 // Integer diziler için
String myStrings[];         // String diziler için Diğer metod ise tipin arkasına köşeli parantez koymaktır.
String[] myStrings;         // String diziler için İkisi de tanımlamada aynıdır.
 

Her ikisi de kullanılabilir. Size hangisi daha kolay geliyorsa onu kullanın.

Java dizileri örneklerden de görüldüğü üzere tüm veri tipleri için kullanılabilir. Sonraki adım ise dizinin "new" operatörü kullanılarak yaratılmasında, bu adımda dizinin büyüklüğü de belirtilir.
int numbers[] = new int[5];         // 5 büyüklüğünde integer dizi
String myStrings[] = new String[20];         // 20 büyüklüğünde string dizi.
 

Bu adımdan sonra diziler yaratılmış oldu. Dizinin her bir elemanına varsayılan değer atanır. Varsayılan değerler integer veri tipi için "0 (sıfır)", string veri tipi için "null" değeridir. Dizi elemanlarına bu adımdan sonra değer atamak çok kolaydır. C++ "da olduğu gibi Java "da da dizilerin elemanları sıfırdan başlayan tamsayı değerleridir.

Dizinin ilk elemanına değer atamak için:

myStrings[0] = "ilk dizim";
numbers[0] = 10
 

Java"da bir dizinin eleman sayısını (büyüklüğü) bulmak için "length" metodu kullanılır. Bu metodun döndürdüğü değer "int" tipindedir.
int boyut=numbers.length     // boyut=5 olur
 

Java"da çok boyutlu diziler yoktur. Fakat bu tür diziler dizi içinde dizi oluşturularak simüle edilebilir.
int k[][] = new int[5][4];         // 5-4 boyutunda bir dizi
k[1][3] = 999;         // Değer atama 

 
Diziler (Arrays) : main() metodu parametre alarak String obje dizisi alır , bu String obje dizinin içersinde konsoldan java uygulamasına gönderilen parametreler bulunur .

args[0] : konsoldan girilen 1. parametre değerini taşır ..

args[1] : konsoldan girilen 2. parametre değerini taşır ..

args[n] : konsoldan girilen n. parametre değerini taşır ..
 
Javada diziler sıfır dan başlarlar . Dizileri ilerliyen bölümlerde yoğun bir şekilde inceliyeceğiz .

System.out.println("Selamlar !") :
 
Bu komut satırı , bilgileri konsola(ekrana) basmamızı sağlar . Java nin dokümanlarına bakarsak ,

System sınıfınına ait static bir metod olan olan out methodunun var olduğunu görürüz. Bu yüzden System sınıfını oluşturmak zorunda değiliz (new System() gibi ). out methodu bize printStream objesi oluşturur ve printStream objesinin println() methodu ile bilgileri konsola(ekrana) bastırırız.


Dizileri tanımlarken, aynı veri türünden elemanları grupladığımızdan bahsetmiştik. Farklı bir durum daha vardır. Bu da bir diziyi Java dilinin en üst sınıf olan (C# taki gibi) Object türünden tanımlamak ve elemanları birer nesne olarak belirlemektir. Bu teknikte, dizinin tüm elemanları birer nesnedir. Bu anlamda bellekteki dizilişte farklı olmaktadır. Öyleki, Object türünden bir dizi tanıladığımızda, dizinin elemanları öbekte tutulurken her bir eleman nesne olduğu için, yine öbekteki asıl alanlarına referans eden değerleri taşırlar. Ancak dizi elemanlarına eriştiğimizde, bu nesnelerin referans ettikleri öbek alanlarındaki verilere ulaşılır. Hemen bununla ilgili bir örnek yapmakta fayda var.

public class DiziObject
{
    public static void main(String[] args)
    {
        Integer eleman1=new Integer(456);
        String eleman2=new String("Ben bir stringim...");
        Double eleman3=new Double(45.45687);
        Boolean eleman4=new Boolean(true);

        Object[] dizi={eleman1,eleman2,eleman3,eleman4};
        for(int i=0;i<dizi.length;++i)
        {
            System.out.println((i+1)+". eleman="+dizi[i]);
        }
    }
}
Burada yaptığım Object türünden dizim için, new yapılandırıcılarını kullanarak sırasıyla integer, string, double ve boolean veri türlerinden birer nesne yaratmak ve daha sonra bu nesneleri Object türünden diziye aktarmak. Uygulama başarılı bir şekilde derlenicektir ve çalışacaktır.

Başlıksız İçerik______________________

Bu tekniğin bellekteki görünümü ise aşağıdaki tasvire benzer şekilde olucaktır.



Yorumunuzu Ekleyin


Yükleniyor...
Yükleniyor...