Hayir, arrayler static olmak zorunda degiller. Array'leri icinde tutan bir singleton class' i tanimlanir, onu cagiran fonksiyonlar da arraylere yine o class'in metodlari uzerinden ulasabilirler. Bu class'in tek gorevi programin geri kalaninda ulasilacak verileri guvenli bir sekilde tutmasi olacaktir. Ayrica bir tane class yazarken baska bir class okumaya calisiyorsa ( eger multithread bir uygulama ise ) yine hata alinir. Soyle bir kod ile temiz bir sekilde halledebilirsin:
Ama nasıl çözüldü? Gidip static mi yaptın yoksa? Önüne gelen aynı şeyi söylüyor. Yahu veri static olduğu zaman o sınıfın sadece tek örneği çıkabilir. O durumda da "nesne" olmaz o, bildiğin fonksiyon tabanlı kod olur.
Adamlar nasıl yapmış diye merak edip sdk reference falan okusaydınız doğrusunu öğrenmiş olurdunuz.
Hayir, arrayler static olmak zorunda degiller. Array'leri icinde tutan bir singleton class' i tanimlanir, onu cagiran fonksiyonlar da arraylere yine o class'in metodlari uzerinden ulasabilirler. Bu class'in tek gorevi programin geri kalaninda ulasilacak verileri guvenli bir sekilde tutmasi olacaktir. Ayrica bir tane class yazarken baska bir class okumaya calisiyorsa ( eger multithread bir uygulama ise ) yine hata alinir. Soyle bir kod ile temiz bir sekilde halledebilirsin:
Ama nasıl çözüldü? Gidip static mi yaptın yoksa? Önüne gelen aynı şeyi söylüyor. Yahu veri static olduğu zaman o sınıfın sadece tek örneği çıkabilir. O durumda da "nesne" olmaz o, bildiğin fonksiyon tabanlı kod olur.
Adamlar nasıl yapmış diye merak edip sdk reference falan okusaydınız doğrusunu öğrenmiş olurdunuz.
bütün programda kullanacağım 1 arraya ihtiyacım vardı public statik tanımladım
public class Arac{ String marka; String model; double deger; int stok; }
//-------------------------
public class Main { public static Arac[] car = new Arac[1]; public static void main(String[] args) {
Bu sekilde ustteki dataHolder uzerinden herhangi bir class integerArrayine ulasabilir. Ornek:
Ancak ustteki kod tam anlamiya multithread dostu degil, ama o kadar ince bir tasarim da gerekmiyor sanirim : )
Bu mesaja 1 cevap geldi. Cevapları Gizle