"Hey, en basit programlarda bile her gün bir sürü hata yapan genç çaylak!

"Şey... Merhaba Diego. İnsanları nasıl neşelendireceğini gerçekten biliyorsun!"

Söylenmesi gerekenleri nasıl söyleyeceğinizi öğrenin. Dediğim gibi, 'her gün'. ."

"Oooh, o zaman teşekkür ederim, en metalik öğretmenim! .

"Bu dersten sonra bana teşekkür edeceksiniz. Burada derleyici tarafından not edilen en popüler hataları listeleyeceğim.

noktalı virgülü unutmak

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

"Gerçek şu ki... Bu suçu defalarca işledim."

"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?");

Alıntıları kapatmayı unutmak

"Java'ya yeni gelenler 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 da çift tırnak işaretleri (") içine alınmalıdır. Başlangıç ​​düzeyindeki programcılar genellikle metnin başına tırnak işaretleri koyarlar, ancak sonunda bunları kapatmayı unuturlar.

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.";

Dizeleri birbirine yapıştırırken artı işareti eklemeyi 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 kodda uzun bir ifadede birleştirildiğinde yaygındı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);

Kıvırcık parantezleri kapatmayı unutmak

"Bu çok yaygın bir hata. Bunun tipik olduğu iki durum var:

  1. Kodu bir yerden kopyalamaya karar verdiniz ve yanlışlıkla bazı kaşlı ayraçları kaçırdınız.
  2. Her açık parantezin bir kapanış paranteziyle eşleştiğinden emin olmak için kendinizi rahatsız etmiyorsunuz."

"İkinci seçenek, yaptığım şey. Bazen kendimi o kadar kaptırıyorum ki unutuyorum!" .

"Bu hatalardan kaçınmak için, genellikle yeni başlayan programcılara 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!");
      }
   }
}

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!");
   }
}

mainYöntem bildirimini yanlış yazmak

"Kanlı yöntemi ilan ettikleri anda main! Acemileri bu kötü yöntem kadar şaşırtan başka bir şey yoktur muhtemelen. Daha da önemlisi, o zaman hep şaşırırlar ve programlarının neden başlamadığını merak ederler? Ve tabii ki programcı 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

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. Ve daha önce de belirtildiği gibi, harflerin durumu burada önemlidir:

Dosya adı Sınıf adı Not
Çözüm.java Çözüm Herşey yolunda
.java çözümü _ Çözüm Gereksiz bir 's' harfi olarak dosya adı
çözüm.java _ Çözüm Dosya adı küçük harfle başlar
Çözüm. txt Çözüm Dosya uzantısı .java yerine .txt'dir.
Çözüm.java çözüm Sınıf adı küçük harfle başlar

public"Aslında, .java uzantılı bir dosyada birkaç sınıf bildirilebilir, ancak bunlardan yalnızca biri sı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
{
}

"Ayrıca, 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. publicBir dosyada bir genel sınıf (değiştiriciye sahip bir sınıf) bildirilirse ve dosya adıyla aynı ada sahipse, o zaman bu public sınıfın içinde istediğiniz kadar sınıf tanımlayabilirsiniz.Bunlar artık sıradan sınıflar olmayacak, bunun yerine dahili veya iç içe sınıflar olacaklar.Örnek:

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

   public static class Pineapple
   {
   }
}

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 gruplamak adettendir. Dosyaların tam olarak gruplanma packageşekli klasörlere."

"Ah-ha, bu yüzden her sınıf ait olduğu paketin bir göstergesiyle başlamalıdır."

"Kesinlikle. İşte bir örnek:

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

public class Solution
{
}

eklemeyi unutmakimport

import"Başka birinin sınıfını programımızda kullanmak istiyorsak iki seçeneğimiz var: kodumuzun her yerinde sınıf adından önce paket adını da yazmalıyız. Alternatif olarak, tam sınıf adını anahtar kelimeyle bir kez yazabiliriz. . Ö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();
}

Scanner"Her iki seçenek de çalışır, ancak kodunuza eklemeden yazarsanız import, derleyici sınıfı hangi paketten alması gerektiğini anlayamaz Scannerve programınız derlenmez."

"Teşekkürler Diego. Bu ders dikkatimi daha fazla vermemi sağlayacak."

"Ben de buna güveniyordum. İyi şanslar!"