Merahaba.Bence bunu bir az daha derinlemesine öyrenmeliyim. Farz edelim şöyle bir kod yazdık

public class C{

   public C(){
       super();
   }

   public static void main(String args[]){
        C objeReferansi=new C();    //buraya dikkat
   }
}

burada sadece obje yaratıldı ve objeReferansı yaratılan objeyi gösteriyor.bu kadar basitmi? yani nasıl oluyor objenin yaratılması?ilk önce "new" yoksa "C()" mi çalışıyor? "new" ne iş yapıyor "C()" ne iş yapıyor ve en önemlisi bu iki kod birlikte ne iş yapıyorlar? "new" "C()"-ye nasıl tesir ediyor ve s. kısacası objenin yaratılma aşamaları nasıldır.Teşekkürler

soruldu: 16 Eki '12, 08:19

Serxan's gravatar image

Serxan
51691106107
cevap kabul oranı: 46%


kısaca new demek bir obje oluştur ve ram'e yani hafızaya at demek. Ondan sonra gelen C() ise C sınıfından obje oluştur demek ve hiç parametre almayan constructor'ı kullan demek. Bu örnek için C sınıfından obje oluşturulurken yukarıda yazılan içinde super() bulunan constructor çağırılır ve super() komutu da Java.Lang.Object sınıfının parametresiz constructor'ını çağırarak bir nesne oluşturur. Doğal olarak her sınıf bir Object sınıfından gelmekte olduğu için burada super() şeklinde çağırma gereği yoktur tabi.

permanent link

cevaplandı: 16 Eki '12, 09:13

numankaraaslan's gravatar image

numankaraaslan
1.8k253749
cevap kabul oranı: 19%

Teşekkürler.super() Java.Lang.Object sınıfının parametresiz constructorunu çağırıyor.ve daha sonra obje yaranıyor. parametresiz constructor çağırıldıktan sonra objenin yaratılması aşaması nasıl oluyor?ben Object sınıfına girdim.ama orada parametresiz bir constructor gormedim.buradan da şöyle bir soru çıkıyor.Object sınıfının constructorundaki super() ne ile ilişki kuruyor?

(16 Eki '12, 10:41) Serxan Serxan's gravatar image

object sınıfında constructor olmasa da javanın native kodları bir constructor çağırıp gerekli bilgileri belleğe atmak zorunda. Burada yazdığınız super() gerekli değil zaten ama yazmanız durumunda zaten normalde çalışan arka plandaki contructor çalışmış olur. Zaten super() yerine örneğin super("string değişken"); yazamazsnız çünkü böyle bir constructor yok. parametresiz olan da default olarak var. Bu yüzden hata vermiyor.

(17 Eki '12, 08:34) numankaraaslan numankaraaslan's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1

Soruldu: 16 Eki '12, 08:19

Görüntüleme: 613 kez

Son güncelleme: 17 Eki '12, 08:34

Benzer sorular

powered by BitNami OSQA