Her dilde - son ikili kod oluşturmak için iki aşama vardır - derleme ve bağlama (elbette yükleme var, ancak burada çok fazla etkisi yoktur). Derleme sırasında sadece kancaları (çağrılacak fonksiyonların özellikleri) uygun yere koymak gerekir. Linker aslında katılıyorHer iki gerçek kod kullanılabilir olduğunda onlara . Şimdiye kadar C ++ ve Java arasında bir fark yok.
Orada olan C ++ beyanı ve tanımı ayrı olması için bir ihtiyaç, ancak,. Uygulamayı üstbilgide tutarsanız ve üstbilgi dosyası değişirse, ona bağlı olan kodun yeniden derlenmesi gerekir. Tanım, ayrı bir dosyadaymış gibi olduğunda, kodun yalnızca yeniden bağlanması gerekir.
C ++ ' ın, nesne kodunun çağıran uygulama ile birlikte sabitlendiğini ima eden statik bağlantıya sahip seçeneği olduğunu anlayın . Hem C hem de C ++ 'da, başlık dosyasında programlamanın geçersiz olduğunu ve hatta #include olmadığını unutmayın. yalnızca bu nesne dosyalarıyla bağlantı kurmanın nasıl uğraştığınız anlamına gelir.
Java'daki durum çok farklı. Her sınıf dosyası .class dosyasıyla derlenir. Gerçekten de, .class dosyasında başlık bölümü olarak işlev gören arayan sınıfı işlev derlemesine duyulan ihtiyaç. Bununla birlikte, Java'da son bağlantı yalnızca Çalışma Zamanı'nın (sanal makine) içinde, yalnızca sınıf dosyasının bayt kodu belirtimi ile yapılır.
Bkz bu ve bu