1. Noktalı virgülü unutmak

Gelecek vadeden Java programcılarının yaptığı en yaygın hata, noktalı virgülü içerir. Daha doğrusu olması gereken yerde olmaması.

Bir yöntem içindeki her ifade noktalı virgülle bitmelidir. Noktalı virgül, ifadeleri veya komutları ayıran şeydir: Java derleyicisine bir komutun nerede bitip diğerinin nerede başladığını bu şekilde söyleriz.

Hata örnekleri:

Yanlış kod Doğru kod
int a
int b = 5
int c = a + b
int a;
int b = 5;
int c = a + b;
System.out.println("Hello")
System.out.println("Hello");
if (2 > 3)
   System.out.println("Are we in Australia?")
if (2 > 3)
   System.out.println("Are we in Australia?");


2. Alıntıları kapatmayı unutmak

Java'ya yeni başlayanlar için en yaygın ikinci hata, koda bir dize yazıp ardından alıntıyı kapatmayı unutmak.

Koddaki her dize hazır bilgisi, her iki tarafta çift tırnak işaretleri (") içine alınmalıdır. Başlangıç ​​seviyesindeki programcılar genellikle metnin başına tırnak işaretleri koyarlar, ancak sonunda bunları kapatmayı unuturlar.

İşte bazı örnekler:

Yanlış kod Doğru kod
String s = "Hello;
String s = "Hello";
System.out.println("Hello);
System.out.println("Hello");
String s = "Hello";
String message = s + " and by. ;
String s = "Hello";
String message = s + " and bye.";


3. Dizeleri birbirine yapıştırırken artı işareti koymayı unutmak

Dizelerle çalışırken yapılan diğer bir yaygın hata, dizeleri birbirine yapıştırırken artı işareti yazmayı unutmak. Bu hata, özellikle metin ve değişkenler koddaki uzun bir ifadede birleştirildiğinde görülür.

İşte bazı örnekler:

Yanlış kod Doğru kod
String s = "Hello";
String message = s  " and bye.";
String s = "Hello";
String message = s + " and bye.";
int age = 35;
System.out.println("Age=" age);
int age = 35;
System.out.println("Age=" + age);
int age = 35;
System.out.println("Age=", age);
int age = 35;
System.out.println("Age=" + age);


4. Kıvrımlı parantezleri kapatmayı unutmak

Bu çok yaygın bir hatadır. Bunun tipik olduğu iki durum vardır:

Birinci durum: Bir yerden kod kopyalamaya karar verdiniz ve yanlışlıkla bazı kaşlı ayraçları kaçırdınız. İkinci durum: Her açık parantezin bir kapanış paranteziyle eşleştiğinden emin olmak için kendinizi rahatsız etmiyorsunuz.

Bu hatalardan kaçınmak için, yeni başlayan programcılara genellikle kapanış kaşlı ayracı açılışın altına yazmaları önerilir.

Örnekler:

Yanlış kod Doğru kod
if (2 < 3)
{
   if (3 < 4)
   {
      System.out.println("Mathematics!");
   }
if (2 < 3)
{
   if (3 < 4)
   {
      System.out.println("Mathematics!");
   }
}
{
   if (2 < 3)
   {
      if (3 < 4)
      {
         System.out.println("Mathematics!");
      }
   }
{
   if (2 < 3)
   {
      if (3 < 4)
      {
         System.out.println("Mathematics!");
      }
   }
}


5. Parantez eklemeyi unutmak

Çoğu zaman bu hata, benzer durumlarda parantez gerektirmeyen programlama dillerini bilen geliştiriciler tarafından yapılır.

Bir olasılık, bir yöntem çağrısının sonuna parantez koymayı unutmalarıdır:

if-elseBaşka bir olasılık da, bir ifadenin koşulunu parantez içine almayı unutmalarıdır .

Örnekler:

Yanlış kod Doğru kod
System.out.println("Hello!");
System.out.println;
System.out.println("And bye!");
System.out.println("Hello!");
System.out.println();
System.out.println("And bye!");
if 2 < 3
{
   if 3 < 4
   {
      System.out.println("Mathematics!");
   }
}
if (2 < 3)
{
   if (3 < 4)
   {
      System.out.println("Mathematics!");
   }
}


6. mainYöntem bildirimini yanlış yazmak

Kanlı yöntemi ilan ettikleri anda main! Muhtemelen yeni başlayanları bu zayıf yöntem kadar şaşırtan başka bir şey yoktur. Daha da önemlisi, o zaman her zaman şaşırırlar ve programlarının neden başlamadığını merak ederler.

Ve tabii ki, programcı suçlu değil ama program, derleyici, kod doğrulayıcı, Java makinesi vb. Günah keçilerinin listesi sonsuzdur.

Örnekler:

Yanlış kod Açıklama
static void main(String[] args)
publickayıp
public void main(String[] args)
statickayıp
public main(String[] args)
voidkayıp
void main(String[] args)
publicve statickayıp
public static void main(String args)
[]kayıp
public static void main()
String[] argskayıp
public static int main(String[] args)
intyerine bizde varvoid


7. Dosya adı sınıf adından farklı

Java standardına göre, tüm Java sınıfları, sınıf adıyla aynı ada sahip bir dosyada saklanmalıdır. Daha önce de belirtildiği gibi, harflerin durumu burada önemlidir:

Dosya adı Sınıf adı Not
Solution.java
Solution
Herşey yolunda
Solutions.java
Solution
Dosya adında gereksiz bir harf vars
solution.java
Solution
Dosya adı küçük harfle başlar
Solution.txt
Solution
Dosya uzantısı .txtyerine.java
Solution.java
solution
Sınıf adı küçük harfle başlar

Aslında, .java uzantılı bir dosyada birkaç sınıf bildirilebilir, ancak bunlardan yalnızca biri publicsınıf adından önce kelimeye sahip olabilir. Ve bu, dosya adıyla eşleşmesi gereken addır.

Bir .java dosyası, her zaman adı dosya adıyla aynı olan bir sınıfa sahip olmalıdır ve bu sınıfın değiştiriciye sahip olması gerekir public. Örnek:

Çözüm.java
public class Solution
{
}

class Apple
{
}

class Pineapple
{
}

Ek olarak, Java dili, sınıflar içinde sınıflar yazmanıza izin verir. Bu, yukarıdaki sınırlamayı aşmanın başka bir yoludur. Bir genel sınıf (değiştiricili bir sınıf public) bir dosyada bildirilmişse ve dosya adıyla aynı ada sahipse, bu genel sınıf içinde istediğiniz kadar sınıf bildirebilirsiniz. Bununla birlikte, bunlar artık sıradan sınıflar olmayacak. Bunun yerine, dahili veya iç içe sınıflar olacaktır. Örnek:

Çözüm.java
public class Solution
{
   public class Apple
   {
   }

   public static class Pineapple
   {
   }
}


8. Yazmayı unutmakpackage

Programların genellikle binlerce sınıfı olduğundan, hepsi için basit, anlaşılır ve benzersiz adlar bulmak zor olabilir. Bu nedenle Java'da sınıfları, anahtar kelimeyi kullanarak paketler halinde gruplandırmak gelenekseldir package. Tam olarak dosyaların klasörler halinde gruplanma şekli.

Bu nedenle her sınıf, ait olduğu paketin bir göstergesi ile başlamalıdır. Örnek

paketsiz kod Düzeltilmiş örnek
public class Solution
{
}
package com.codegym.tasks.task0001;

public class Solution
{
}


9. Eklemeyi unutmakimport

Programımızda başka birinin sınıfını kullanmak istiyorsak iki seçeneğimiz var: kodumuzun her yerinde sınıf adından önce onun paket adını da yazmalıyız. Alternatif olarak, tam nitelikli sınıf adını anahtar kelimeyle bir kez yazabiliriz import.

Örnek:

İçe aktarmayı kullanmadan içe aktarmayı kullanma
public class Solution
{
   java.util.Scanner scanner = new java.util.Scanner();
}
import java.util.Scanner;

public class Solution
{
   Scanner console = new Scanner();
}

ScannerHer iki seçenek de çalışır, ancak kodunuza eklemeden yazarsanız import, derleyici sınıfı hangi paketten alması gerektiğini anlayamayacak Scannerve programınız derlenmeyecektir.