| この記事の要点 |
|
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:
Stringとstringは別物 (後者は型として存在しない) - キーワード (
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_CASE | ACTIVE, 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<String> 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 環境で文字化けの原因になります。
<!-- Maven pom.xml -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>
9. 推奨スタイルガイド
| ガイド | 特徴 |
|---|---|
| Google Java Style Guide | 2 スペースインデント、行 100 文字。OSS 系で多い |
| Oracle Code Conventions | 古いが基本。4 スペースインデント、行 80 文字 |
| Checkstyle / SpotBugs / PMD | 静的解析でルール強制 |
| google-java-format | Google スタイルで自動整形 (IntelliJ プラグイン有) |
FAQ
Q: ファイル名とクラス名は必ず一致?
A: public クラスは一致が必須。public でないクラスを補助的に同じファイルに置くのは可能ですが、可読性のため 1 ファイル 1 公開クラスが推奨。
Q: セミコロンを忘れた場合のエラーは?
A: error: ';' expected。次の行も巻き込んで複数のエラーが出ることが多いので、最初の 1 件を直してから再コンパイル。
Q: String[] args は String args[] でも良い?
A: 両方コンパイル可能ですが、型の後ろに [] が現代スタイル。
子ページ
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- MariaDB Monitor (mysql コマンド) の使い方 2026-10-14 15:21:02
- MariaDB の管理ツール (phpMyAdmin / DBeaver 等) 2026-10-14 15:21:02
- Google Custom Search JSON API|新規受付終了・移行期限と既存実装の確認 2026-10-14 14:50:13
- MySQL rootの初期パスワード確認|導入方式・Docker既存DB・復旧の注意 2026-10-14 14:39:34
- MySQL root パスワードの変更方法(ALTER USER / mysqladmin / パスワード忘れ時の復旧) 2026-10-14 14:39:34
- MySQL ALTER USER の使い方|パスワード変更・アカウントロック 2026-10-14 14:39:34
- MySQL ERROR 1129|ホスト遮断の原因・カウンタ・解除前の確認 2026-10-14 14:04:49
- MySQL ERROR 1820・1862|期限切れパスワードの安全な更新と確認 2026-10-14 14:04:49
- MySQL ERROR 1698|ソケット認証・OSユーザー・接続経路の確認 2026-10-14 14:04:49
- mysql_configが見つからない|mysqlclientの旧ビルドとpkg-configの確認 2026-10-14 13:36:32
- MySQLエラー一覧|番号・SQLSTATE別の原因と安全な確認手順 2026-10-14 13:36:32
- インストール直後にNetbeansが反応しない 2026-10-14 13:07:02
- NetBeans でよくあるエラー一覧と対処法 — JDK / Tomcat / PHP / メモリ不足 2026-10-14 13:07:02
- Apache NetBeans入門|起動JDK・プロジェクト作成・関連手順 2026-10-14 13:07:02
- 【Laravel】ページング(ページネーション)をする方法 2026-10-14 12:31:44