Arama butonu
Bu konudaki kullanıcılar: 1 misafir
5
Cevap
1071
Tıklama
0
Öne Çıkarma
Kod yapısı ve metotlar hakkında bir soru
S
8 yıl
Yüzbaşı
Konu Sahibi

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ı ?



W
8 yıl
Yüzbaşı

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ı >


_____________________________

Eski kullanıcı adı: Kara Börü


T
8 yıl
Yarbay

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ı >

.
8 yıl
Teğmen

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.



C
8 yıl
Çavuş

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 >

G
8 yıl
Teğmen

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.



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.