Şimdi Ara

Class Oluşturma

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
6
Cevap
0
Favori
963
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Java'da class oluştururken

    ClassIsmi Obje = new ClassIsmi(); şekilnde oturuyoruz.

    Örneğin

    araba bmw = new araba();

    şeklinde.

    Gelelim Sorulara

    1-) sadece araba bmw şeklinde yazarsak. Sanırım sadece objeyi oluşturuyoruz ve bellekte herhangi bir yer kaplamıyor.
    2-) new JLabel("Buton"); şeklinde yazarsak. Bellekte bir yer kaplıyor fakat herhangi bir objeye ait olmadığı için sanırım fonksiyonlarına ulaşılamıyor ?



  • "stack memory" ve "heap memory" kavramlarını bilmen gerek.

    stack memory'de int, boolean... gibi basit veriler ve nesne referansları tutulur.

    heap memory'de ise nesneler tutulur.
    -------


    Araba bmw = new Araba( );

    burada denklemde sağ tarafta kurucu metot çağrılır yani nesne oluşur. sol tarafta ise Araba türünden nesne referansı alacak bir değişken oluşur. yani "bmw" kendisi nesne değildir; nesne referans adresini taşıyan bir değişkendir.

    bu konuyu daha derin öğrenmek istersen java başlığının en altlarında bana ait bir konu vardı orda farklı türde veriler için bellek yapılarını anlatmıştım.

    1-) sadece "Araba bmw;" yazarsan adres bilgisi taşıyacak kadar yer kaplar fakat içindeki değer null olur.

    2-) sadece new Araba( ) yazarsan nesne oluşur. bunun kaplayacağı alan basit veri tiplerinde olduğu gibi kalıplaşmış değildir; esnektir. fakat bu nesnenin adresini gösteren bir değişken olmadığı için nesne garbageCollector tarafından silinir.
    Böyle olması nesneye ulaşılamaz demek değildir. nesneyi oluşturduğun anda onunla işlem yapılabilir fakat daha sonra onunla işlem yapmak için onu işaret eden bir değişkene ihtiyaç vardır.



    < Bu mesaj bu kişi tarafından değiştirildi Guest -- 10 Şubat 2013; 13:03:02 >
    < Bu ileti mobil sürüm kullanılarak atıldı >




  • Javada stack, heap gibi şeyleri bilmek gerekmez. new Araba() sadece bir sözdizimi. Nesnenin nerede oluşturulacağına derleyici karar verir. Özellikle metod içi yerel nesneleri genelde stack ta tutar.

    Ek bilgi olarak "Araba bmw;" c++ ta mümkündür.
  • quote:

    Orijinalden alıntı: elektro_gadget

    Javada stack, heap gibi şeyleri bilmek gerekmez. new Araba() sadece bir sözdizimi. Nesnenin nerede oluşturulacağına derleyici karar verir. Özellikle metod içi yerel nesneleri genelde stack ta tutar.

    Ek bilgi olarak "Araba bmw;" c++ ta mümkündür.

    new Araba( ); yazarak zaten nesnenin nerede oluşacağına karar vermiyoruz. derleyici onu bellekte belli bir adrese koyuyor fakat oluşan bu nesnenin adresini "Araba bmw" şeklinde tanımadığınız Araba türünde bmw değişkeninde tutarız. aksi taktirde ilk kullanımdan sonra nesneye ulaşamayız.

    System.out.printline(
    bmw ); yazarsanız ekranda nesnenin adresini görebilirsiniz.

    Araba bmw; java'da da mümkün yukarda yazmışım ama içerisinde adres bilgisi olmaz.

    stack, heap, static memory kavramlarını programlama yapmak için bilmek gerekmez fakat arkadaşıma sorduğu sorunun cevabı oradaydı. bu bilgilerin gerekip gerekmediği oracle sertifika sınavlarında görülebilir.

    < Bu ileti mobil sürüm kullanılarak atıldı >




  • Teşekkürler cevaplarınız için

    Benim merak ettiğim, new komutu gelinceye kadar hafızada herhangi bir yeri işgal ediyormuydu.

    Nesne, Sınıf Kavramları ve Bellek Yapısı konunuz galiba. O Konuyuda okuyorum.



    < Bu mesaj bu kişi tarafından değiştirildi EYC -- 10 Şubat 2013; 15:32:26 >
  • quote:

    Orijinalden alıntı: EYC

    Teşekkürler cevaplarınız için

    Benim merak ettiğim, new komutu gelinceye kadar hafızada herhangi bir yeri işgal ediyormuydu.

    Nesne, Sınıf Kavramları ve Bellek Yapısı konunuz galiba. O Konuyuda okuyorum.

    bardak, içi boş olsa da masa üzerinde bir yer kaplar.

    nasıl ki "int a = 7;" ile int b = 524;" hatta "int c;" bellekte 4 bit yer kaplar.

    kaç bit olduğunu bilmiyorum ama karşısına "new Araba( );" demesen de "Araba bmw" stack memory'de yer kaplar. zaten tanımladığın bir şeyin yer kaplamaması düşünülemez.

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.