Bir Java Programı Nasıl Görünür
Önceki sayfada Java'yı çalıştırdınız. Şimdi kodun kendisinin gerçekte nelerden oluştuğuna bakalım. Java katı ve açıktır: her programın izlemesi gereken sabit bir biçim vardır ve derleyici, tek bir satır bile çalışmadan önce bu biçimi denetler.
İşte mümkün olan en küçük eksiksiz Java programı. Çalıştırın:
Tek bir satır yazdırmak için bu hayli fazla kelime ve Python ya da JavaScript'in aksine bunların hiçbirini atlayamazsınız. Her parça gereklidir, bu yüzden her birinin ne yaptığını anlamaya değer. Onu dıştan içe doğru parçalara ayıracağız.
Her Şey Bir Sınıfın İçinde Yaşar
Java'da bir dosyanın en üst düzeyinde gezinen "başıboş" kod yoktur. Tüm kod, class anahtar kelimesi ve bir adla bildirilen bir sınıfın içinde yaşar:
public class Main {
// everything goes in here
}
Açılış { ve ona karşılık gelen kapanış }, sınıfın gövdesini sınırlar. Main adı sizin seçiminize bağlıdır, ancak önemli bir kuralla: normal bir .java dosyasında, public bir sınıf dosya adıyla tam olarak eşleşmelidir. Bir public class Main, Main.java dosyasına aittir. Büyük/küçük harfi yanlış yazın, derleyici onu derlemeyi reddeder.
Sınıfların gerçekte ne olduğunu Sınıflar bölümünde öğreneceksiniz. Şimdilik public class Main { ... } ifadesini, kodunuzun etrafındaki zorunlu sarmalayıcı olarak görün.
main Metodu Başlangıç Çizgisidir
Bir Java programını çalıştırdığınızda, çalışma zamanı yürütmeye başlamak için belirli bir metot arar:
public static void main(String[] args) {
// your code starts here
}
Bu imza pazarlık konusu değildir. Her kelimenin bir görevi vardır:
public- çalışma zamanı ona sınıfın dışından erişebilir.static- sınıfın bir nesnesini önceden oluşturmadan çalışır.void- bittiğinde geriye hiçbir şey vermez.main- çalışma zamanının aradığı tam ad.String[] args- programa geçirilen tüm komut satırı argümanlarının bulunduğu bir dizi.
Tek bir kelime bile hatalıysa (static yerine Static, String[] args yerine String args), kodunuz yine de derlenebilir ama başlattığınızda Error: Main method not found in class Main hatasıyla başarısız olur. Bu mesaj neredeyse her zaman bu satırda bir yazım hatası olduğu anlamına gelir.
İfadeler Noktalı Virgülle Biter
Bir ifade, eksiksiz bir komuttur. Java'da her ifade noktalı virgülle ; biter. Derleyici, bir komutun nerede bitip diğerinin nerede başladığını anlamak için noktalı virgülü kullanır; satır sonları onun için önemli değildir.
Satır sonları yok sayıldığından, üç ifadenin tümü tek bir satırda durabilir ve yine çalışır; gerçi kimse Java'yı böyle yazmaz:
int score = 90; score = score + 5; System.out.println(score);
Bir noktalı virgülü unutun, derleyici programınız çalışmadan önce sizi durdurur:
int score = 90
System.out.println(score);
error: ';' expected
int score = 90
^
Eksik bir noktalı virgül, yeni başlayan biri olarak karşılaşacağınız en sık derleme hatasıdır. Derleyici bir satırı işaret ettiğinde, bir üstündeki satırı da kontrol edin; gerçek eksiklik çoğu zaman oradadır.
Bloklar ve Süslü Parantezler
Süslü parantezler { } ifadeleri bir blok içinde gruplar. Bir sınıf gövdesi bir bloktur, bir metot gövdesi bir bloktur ve bir if ya da döngünün gövdesi bir bloktur. Bloklar başka blokların içine iç içe yerleştirilebilir:
İfadelerden farkına dikkat edin: bir bloğu açan satır noktalı virgülle değil { ile biter ve bir metot, sınıf, if veya döngünün kapanış } işaretinden sonra noktalı virgül koymazsınız. Bunu karıştırmak klasik bir başlangıç hatasıdır:
public static void main(String[] args) {
System.out.println("hi");
}; // <- this semicolon is unnecessary (and after a class/method, wrong)
Örneklerdeki girinti tamamen insanlar içindir. Java onu yok sayar, ama tutarlı girinti, sizin ve herkesin hangi { işaretinin hangi } ile eşleştiğini takip etme biçimidir. Düzenleyicinizin otomatik girintilemesine izin verin, parantezler sizin için hizalanır.
Java Büyük/Küçük Harfe Duyarlıdır
Java, büyük ve küçük harfleri tamamen farklı şeyler olarak ele alır. score, Score ve SCORE üç ayrı addır. Aynı şey anahtar kelimeler ve yerleşik adlar için de geçerlidir:
system.out.println (küçük s) yazsanız ya da String Name yazıp sonra name kullanmaya çalışsanız, derleyici bunu reddederdi. Yeni başlayanların sıkça yanlış büyük/küçük harfle yazdığı birkaç ad:
System- büyükS.system.out.println(...)derlenmez.String- büyükS. Küçük harfli ilkel türlerin aksine bir sınıftır.void,int,public,static- tümü küçük harf. Bunlar anahtar kelimedir.
Çoğu "cannot find symbol" hatası, bir büyük/küçük harf kaymasından kaynaklanır. Hata bile bulamadığı sembolü size söyler; onun büyük/küçük harfini yazdığınızla karşılaştırın.
Parçaları Bir Araya Getirmek
İşte bu sayfadaki her şeyi kullanan biraz daha büyük bir program: bir sınıf, main metodu, birkaç ifade, iç içe bir blok ve tutarlı büyük/küçük harf kullanımı:
Yukarıdan aşağıya okuyun: sınıf her şeyi sarar, main yürütmenin başladığı yerdir, her komut ; ile biter, if gövdesi kendi bloğunda gruplanmıştır ve her yerleşik ad doğru büyük/küçük harfle yazılmıştır. Bu, yazacağınız hemen hemen her Java programının iskeletidir.
Sonraki: Yorumlar
Artık bir Java dosyasının yapısını okuyabiliyorsunuz. Eklenecek bir sonraki şey, insanlara yönelik notlardır: derleyicinin tamamen yok saydığı metin. Bir sonraki sayfa yorumları ele alır: tek satırlık // biçimi, blok /* */ biçimi ve bir yorumun kodda yerini ne zaman gerçekten hak ettiği.
Sıkça Sorulan Sorular
Bir Java programının temel söz dizimi nedir?
Her Java programı bir sınıfın içinde yaşar ve çalışma, tam olarak public static void main(String[] args) imzasına sahip bir metotta başlar. İfadeler noktalı virgülle biter ve kod blokları süslü parantezlerle { } gruplanır. En küçük program şudur: public class Main { public static void main(String[] args) { System.out.println("Hi"); } }.
Java neden public static void main(String[] args) gerektirir?
Bu, Java çalışma zamanının aradığı tam giriş noktasıdır. public, çalışma zamanının onu dışarıdan çağırmasına izin verir; static, önce bir nesne oluşturmadan çalıştığı anlamına gelir; void, hiçbir şey döndürmediği anlamına gelir; String[] args ise komut satırı argümanlarını alır. Herhangi bir kelimeyi (büyük/küçük harf bile olsa) değiştirin, program derlenir ama başlamaz ve Error: Main method not found hatası verir.
Tüm Java ifadeleri noktalı virgül gerektirir mi?
Her ifade noktalı virgülle biter: değişken bildirimleri, atamalar, metot çağrıları. Ama bir blokla biten satırlar (if, for, while, bir sınıf ya da metot başlığı) bunun yerine { ile biter ve bu blokların kapanış } işaretinden sonra noktalı virgül koymazsınız. Noktalı virgülü unutmak, Java'da yeni başlayanların en sık yaptığı derleme hatasıdır.