この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:7
ページ更新者:atom
更新日時:2026-06-11 07:07:02

タイトル: 基本的なルール
SEOタイトル: Java 基本構文ルール完全ガイド(命名規則・main・コメント・コンパイル)

この記事の要点
  • Java の基本ルール: 文末セミコロン必須、大文字小文字区別 (case sensitive)、ファイル名 = public クラス名 + .java
  • 命名規則: クラスは PascalCase変数/メソッドは camelCase定数は SNAKE_CASE
  • エントリポイント: public static void main(String[] args)
  • コメントは // (行)、/* */ (ブロック)、/** */ (Javadoc)
  • 推奨スタイル: Google Java Style Guide または Oracle Code Conventions

Java の基本構文ルール

Java は C 系の文法を継承した静的型付け / クラスベースのオブジェクト指向言語です。記述ルールを 1 つでも守らないとコンパイルエラーになるため、最初に押さえるべきポイントを整理します。

1. ファイル名とクラス名

1 つの .java ファイルには通常 1 つの public クラスを書き、ファイル名はそのクラス名 + .java と完全一致させます。

// ファイル名: Hello.java
public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

// ファイル名が hello.java や Hello.JAVA だとコンパイル失敗
// → error: class Hello is public, should be declared in a file named Hello.java

2. 文末セミコロンと大文字小文字

  • 文 (statement) の終端は必ず ;。改行だけでは終わりにならない
  • Java は case sensitive: Stringstring は別物 (後者は型として存在しない)
  • キーワード (class, public, void) はすべて小文字

3. 命名規則 (Naming Convention)

対象規則
クラス / インタフェースPascalCase (UpperCamelCase)UserService, HttpClient
メソッド / 変数camelCase (lowerCamelCase)getUserName(), userId
定数 (static final)SNAKE_CASE (UPPER_SNAKE_CASE)MAX_RETRY, DEFAULT_PORT
パッケージ全小文字、ドット区切り、ドメイン逆順com.example.app
型パラメータ (Generics)1 文字大文字T, E, K, V
列挙型 (enum) 値SNAKE_CASEACTIVE, SUSPENDED

4. main メソッド (エントリポイント)

public class App {
    // 必須シグネチャ: public static void main(String[] args)
    public static void main(String[] args) {
        // args はコマンドライン引数 (java App foo bar → args = ["foo", "bar"])
        for (String a : args) {
            System.out.println(a);
        }
    }
}

// Java 21+ では Unnamed Class & Instance Main Methods で省略可能 (Preview)
void main() {
    System.out.println("Hello");
}

5. コメント 3 種類

// 1行コメント (行末まで)

/*
 * 複数行コメント
 * ブロック全体が無視される
 */

/**
 * Javadoc コメント。クラス・メソッド・フィールドの上に書く。
 * javadoc コマンドで HTML ドキュメントを生成できる。
 *
 * @param name 利用者名
 * @return 挨拶文
 * @throws IllegalArgumentException name が null の場合
 * @since 1.0
 */
public String greet(String name) {
    return "Hello, " + name;
}

6. package と import

// ファイル先頭: パッケージ宣言 (省略するとデフォルトパッケージ)
package com.example.app.service;

// import 文 (パッケージ宣言の直後)
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import static java.lang.Math.PI;   // static import で PI を直接使える

public class UserService {
    private List users = new ArrayList<>();

    public double area(double r) {
        return PI * r * r;   // Math.PI と書かなくて良い
    }
}

7. コンパイルと実行

# 単一ファイル
javac Hello.java        # → Hello.class
java Hello              # 実行

# パッケージ付き (src/com/example/App.java)
javac -d out src/com/example/App.java
java -cp out com.example.App

# Java 11+ : ソース直接実行
java Hello.java

# Maven プロジェクト
mvn compile
mvn package             # → target/*.jar
mvn exec:java -Dexec.mainClass=com.example.App

# Gradle プロジェクト
./gradlew build
./gradlew run

8. エンコーディング

Java ソースは UTF-8 で書くのが現代の標準。javac -encoding UTF-8 を明示するか、Maven / Gradle 設定で UTF-8 を指定しないと、Windows 環境で文字化けの原因になります。



    UTF-8
    17
    17

9. 推奨スタイルガイド

ガイド特徴
Google Java Style Guide2 スペースインデント、行 100 文字。OSS 系で多い
Oracle Code Conventions古いが基本。4 スペースインデント、行 80 文字
Checkstyle / SpotBugs / PMD静的解析でルール強制
google-java-formatGoogle スタイルで自動整形 (IntelliJ プラグイン有)

FAQ

Q: ファイル名とクラス名は必ず一致?
A: public クラスは一致が必須。public でないクラスを補助的に同じファイルに置くのは可能ですが、可読性のため 1 ファイル 1 公開クラスが推奨。

Q: セミコロンを忘れた場合のエラーは?
A: error: ';' expected。次の行も巻き込んで複数のエラーが出ることが多いので、最初の 1 件を直してから再コンパイル。

Q: String[] argsString args[] でも良い?
A: 両方コンパイル可能ですが、型の後ろに [] が現代スタイル。