CodeGym /Java Course /All lectures for JA purposes /よくあるコンパイル エラー

よくあるコンパイル エラー

All lectures for JA purposes
レベル 1 , レッスン 551
使用可能

1. セミコロンを忘れる

Java プログラマを目指す人が犯す最も一般的な間違いは、セミコロンに関するものです。というか、あるべきところにその欠如がある。

メソッド内のすべてのステートメントはセミコロンで終わる必要があります。セミコロンはステートメントやコマンドを区切るものです。これは、Java コンパイラーに 1 つのコマンドがどこで終わり、次のコマンドが始まるかを伝える方法です。

エラーの例:

間違ったコード 正しいコード
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 の初心者にとって 2 番目に多い間違いは、コード内に文字列を記述し、引用符を閉じるのを忘れることです。

コード内のすべての文字列リテラルは、両側を二重引用符 (") で囲む必要があります。初心者プログラマはテキストの先頭に引用符を付けることがよくありますが、最後に引用符を閉じるのを忘れます。

ここではいくつかの例を示します。

間違ったコード 正しいコード
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. 文字列を接着するときにプラス記号を含めるのを忘れる

文字列を扱うときによくあるもう 1 つの間違いは、文字列を接着するときにプラス記号を書き忘れることです。このエラーは、コード内の長い式でテキストと変数が連結されている場合に特によく発生します。

ここではいくつかの例を示します。

間違ったコード 正しいコード
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. 中括弧を閉じ忘れる

これは非常によくある間違いです。これが典型的に起こる状況は 2 つあります。

最初の状況:コードをどこかからコピーしようとしましたが、誤って中括弧をいくつか見逃しました。2 番目の状況:すべての開き括弧が閉じ括弧と一致するかどうかを確認する必要はありません。

これらのエラーを回避するために、初心者プログラマーには通常、開始中括弧の下に終了中括弧を記述することをお勧めします。

例:

間違ったコード 正しいコード
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. 括弧の付け忘れ

ほとんどの場合、この間違いは、同様の状況で括弧を必要としないプログラミング言語を知っている開発者によって犯されます。

可能性の 1 つは、単にメソッド呼び出しの最後に括弧を付けるのを忘れているということです。

もう 1 つの可能性は、ステートメントの条件を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)
代わりintvoid


7. ファイル名がクラス名と異なる

Java 標準によれば、すべての Java クラスはクラス名と同じ名前のファイルに保存する必要があります。前述したように、ここでは文字の大文字と小文字が重要です。

ファイル名 クラス名 ノート
Solution.java
Solution
すべて順調
Solutions.java
Solution
ファイル名に余分な文字が含まれていますs
solution.java
Solution
ファイル名は小文字で始まります
Solution.txt
Solution
ファイル拡張子は.txt代わりに.java
Solution.java
solution
クラス名は小文字で始まります

実際には、.java 拡張子の付いたファイル内で複数のクラスを宣言できますが、publicクラス名の前にこの単語を含めることができるのはそのうちの 1 つだけです。これはファイル名と一致する必要がある名前です。

.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

プログラム内で他の人のクラスを使用したい場合、2 つのオプションがあります。コード内のどこでも、クラス名の前にそのパッケージ名を記述する必要があります。あるいは、キーワードを使用して完全修飾クラス名をimport1 回記述することもできます。

例:

インポートを使用しない場合 インポートの使用
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、プログラムはコンパイルできません。


コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION