Şimdi Ara

Kod yapısı ve metotlar hakkında bir soru

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
6
Cevap
0
Favori
965
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba. Genel kod yapısı ile ilgili bir sorum var. Bildiğiniz gibi kodlar yukarıdan aşağı doğru okunup derleniyor. Bir döngü durumu olmadığı sürece de tekrar başa dönme durumu yok.

    public class denemeler {


    public static void main(String[] args) {

    hello();

    }

    public static void hello(){
    System.out.println("helo !");
    }

    }


    Yukarıda gördüğünüz üzere main classımın içinde hello() fonksiyonunu çağırıyorum ama henüz o satırda, o fonksion teknik olarak tanımlı değil. Buna rağmen ekranda "hello" çıktısını alabiliyorum. Bu arada kodda bir sıkıntı yok. Aksine, java öğreten kaynaklar tamamen böyle gösteriyor. Benim de kafam karıştığı için fonksiyonu şu şekilde tanımlayıp çağırıyorum.

    ublic class denemeler {

    public static void hello(){
    System.out.println("helo !");
    }

    public static void main(String[] args) {

    hello();

    }



    }

    Görüldüğü gibi fonksiyonu önce tanımladım, sonra çağırdım. Acaba bu şekilde çalışmak ileride sıkıntı çıkarır mı ?







  • benim bildiğim kadarıyla yorumlayıcı çalışmadan önce kodlara bir kez bakıyor . önce de tanımlasan sonra da tanımlasan bir kere baktığı için var olup olmadığını varsa nerede olduğunu biliyor.

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • O olay C'de gerekli yani fonksiyon tanımı, fonksiyonu kullanmadan önce yapılmak zorunda. Fakat C++ ve Java'da öyle bir zorunluluk yok, fonksiyon kodun en sonunda da tanımlanabilir. C'de öyle olmasının sebebi C'nin assembly'ye yakın dil olması.

    < Bu ileti mini sürüm kullanılarak atıldı >
  • C ile karıştırıyorsunuz. Tam karşılığını hatırlamamkla birlikte C te tek geçişte derleniyor yani satır satır makina kodun çevriliyor. JAVA da ise durum farklı fonksiyonunun prototipini öncesinde tanımlamak zorunda değilsiniz. JAVA da yazdığınız kodlar direk makina diline çevrilmiyor BYTE kod diye bilinien ara bir forma dönüştürülüyor ki platform bağımsız olmasını buna borçlu. JVM ,Javanın sanal makinası, bu kodu yorumluyor bu sayede JVM yüklü her ortamda kodunuz çalışıyor ki bu JVM yazıcılara bile yüklenebiliyor. Şu an çok vaktim yok kısaca yazdım anlamadığınız bir yer varsa tekrar sorun yarın uzun uzun yazarım.
  • JAVA da, Bu bahsettiğiniz durum aynı kod bloğu içerisinde yazılmış kodlar için geçerlidir. Eğer kodlar aynı blokta değilse çalışma sırası şu şekildedir ; İlk önce global alandaki veriler yüklenir, daha sonra yapılandırıcı, sonrasında da fonksiyonlar yüklenir. Yani siz istediğiniz sırada yazabilirsiniz JVM zaten bu dediğim sırada yükleyecektir.



    < Bu mesaj bu kişi tarafından değiştirildi Charizard_11 -- 27 Kasım 2017; 4:24:21 >
  • Bu şekilde çalışmanın bir zararı olur mu?

    Fonksiyonlarını birbiriyle ilişkili sırada yazman daha mantıklı olur. Böylece hangi fonksiyon neredeydi hatırlaman kolaylaşır. Sırf kullanım önceliğine göre sıralama yaparsan, kodun karmakarışık bir hal alabilir. Başka bir zararı olacağını sanmıyorum.

    C'de bile program yazılırken, genelde main tanımı en üstte kalır. Diğer fonksiyonlar main'in altında, ilişkili olanlar yine ardışık olacak şekilde yazılır. Main'in başına ise bu fonksiyonların prototipleri koyulur.

    Yani diğer türlü alışman daha faydalı olacaktır.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.