1.忘記分號

有抱負的 Java 程序員最常犯的錯誤與分號有關。或者更確切地說,它不在應該在的地方。

方法中的每個語句都必須以分號結尾。分號用於分隔語句或命令:這就是我們告訴 Java 編譯器一個命令結束和下一個命令開始的方式。

錯誤示例:

不正確的代碼 正確的代碼
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.忘記關閉報價

Java 新手第二個最常見的錯誤是在代碼中寫了一個字符串,然後忘記關閉引號。

代碼中的每一個字符串文字都必須用雙引號 (") 括起來。初學者經常把引號放在文本的開頭,但他們忘記在末尾將引號括起來。

這裡有些例子:

不正確的代碼 正確的代碼
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. 將字符串粘合在一起時忘記包含加號

使用字符串時的另一個常見錯誤是在將字符串粘合在一起時忘記寫加號。當文本和變量在代碼中的長表達式中連接時,此錯誤尤其普遍。

這裡有些例子:

不正確的代碼 正確的代碼
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. 忘記關閉大括號

這是一個很常見的錯誤。有兩種情況是典型的:

第一種情況:您決定從某處複製代碼,但不小心遺漏了一些大括號。第二種情況:您只是不想麻煩自己確保每個左括號都與右括號匹配。

為避免這些錯誤,通常建議初學者在左大括號下方寫上右大括號。

例子:

不正確的代碼 正確的代碼
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.忘記加括號

大多數情況下,這個錯誤是由了解在類似情況下不需要括號的編程語言的開發人員犯的。

一種可能是他們只是忘記在方法調用的末尾加上括號:

另一種可能是他們忘記將語句的條件括if-else在括號中。

例子:

不正確的代碼 正確的代碼
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.main方法聲明寫錯

他們一宣布血腥main手段!可能沒有什麼比這種糟糕的方法更讓新手感到困惑的了。重要的是,他們總是很驚訝,想知道為什麼他們的程序無法啟動?

當然,程序員不應該受到指責,但程序、編譯器、代碼驗證器、Java 機器等等。替罪羊的名單是無窮無盡的。

例子:

不正確的代碼 解釋
static void main(String[] args)
public不見了
public void main(String[] args)
static不見了
public main(String[] args)
void不見了
void main(String[] args)
public並且static失踪了
public static void main(String args)
[]不見了
public static void main()
String[] args不見了
public static int main(String[] args)
我們有int而不是void


7.文件名與類名不同

根據 Java 標準,所有的 Java 類都必須存儲在一個與類名同名的文件中。如前所述,字母的大小寫在這裡很重要:

文件名 班級名稱 筆記
Solution.java
Solution
一切安好
Solutions.java
Solution
文件名有一個多餘的字母s
solution.java
Solution
文件名以小寫字母開頭
Solution.txt
Solution
文件擴展.txt名不是.java
Solution.java
solution
類名以小寫字母開頭

實際上,可以在一個擴展名為.java 的文件中聲明多個類,但其中只有一個public類名前可以有這個詞。這是必須與文件名匹配的名稱。

.java 文件必須始終有一個名稱與文件名相同的類,並且該類需要有修飾符public。例子:

解決方案.java
public class Solution
{
}

class Apple
{
}

class Pineapple
{
}

此外,Java 語言允許您在類中編寫類。這是繞過上述限制的另一種方法。如果在文件中聲明了一個公共類(帶修飾符的類public)並且與文件名同名,那麼你可以在這個公共類中聲明任意多個類。也就是說,這些將不再是普通課程。相反,它們將是內部類或嵌套類。例子:

解決方案.java
public class Solution
{
   public class Apple
   {
   }

   public static class Pineapple
   {
   }
}


8.忘記寫package

由於程序通常有數千個類,因此很難為所有類找到簡單、易懂且唯一的名稱。這就是為什麼在 Java 中習慣使用package關鍵字將類分組到包中。正是文件分組到文件夾中的方式。

這就是為什麼每個類都應該以它所屬的包的指示開始。例子

無包代碼 更正示例
public class Solution
{
}
package com.codegym.tasks.task0001;

public class Solution
{
}


9.忘記添加import

如果我們想在我們的程序中使用別人的類,我們有兩個選擇:在我們的代碼中的任何地方,我們也必須在類名之前寫上它的包名。import或者,我們可以用關鍵字寫一次完全限定的類名。

例子:

不使用導入 使用導入
public class Solution
{
   java.util.Scanner scanner = new java.util.Scanner();
}
import java.util.Scanner;

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

這兩個選項都有效,但是如果您只是簡單地編寫Scanner代碼而不添加import,那麼編譯器將無法理解它需要Scanner從哪個包中獲取類,並且您的程序將無法編譯。