💭

Java Silver 勉強①

2025/03/04に公開

就活をしつつ、勉強も必要なのでモチベーションを上げるために
Java Silverの勉強を始めてみようかと思います。

JavaSilver項目

  • Javaの基本データ型と文字列の操作
  • 演算子と制御構造
  • 配列の操作
  • クラスの宣言とインスタンスの使用
  • メソッドの作成と使用
  • カプセル化の適用
  • 継承による実装の再利用
  • インタフェースによる抽象化
  • 例外処理
  • モジュール・システム

JAVA基礎

【Javaの特徴】

フォームに依存しない
JVM(Java仮想マシン)

OSの種類を気にせずにさまざまな環境で実行可能
WORA(Write Once Run AnyWhere)
一度書くとどのOSでも再コンパイルせずに実行可能

オブジェクト指向
データーや処理の集まり

【Javaの実行環境】

JDKは、Javaプログラムを開発するためのツールセットです。JDKには、コンパイラ、デバッガ、JVM、APIなどが含まれており、Javaアプリケーションの作成、コンパイル、デバッグ、実行ができます。

  1. ソースファイル作成(コーディング)
  2. コンパイル (Javaコマンドで実行)文法などチェック
    2-1. クラスファイル(中間ファイル)この時、エラーが発生するとコンパイルエラー
  3. JVM上で実行 (Javaコマンドで実行)
    3-1. この時エラーが発生すると実行エラー

【ソースコードの要素】

Class宣言
・Classとはオブジェクトが持つ属性やメソッドを定義するもの
・ソースファイル内では必ず1個以上のクラスが必要
・クラスを識別するクラス名は識別子という識別子は命名ルールに従うこと(*予約語注意)

メインメソッド
・Javaアプリケーションにおいて特別な意味を持つメソッド
・記述は必ず下記の通りにする

public static void main(String[] args){  
    プログラム実行; →文の最後は「;」をつける

    コメント種類
    //
    /*  */
    /**   */
  }


パッケージとインポート
・パッケージはフォルダで分ける。
・インポートは他のクラスを参照する場合利用

【パッケージと import】

1. パッケージ (Package) とは?

パッケージとは、クラスやインターフェースを整理するためのフォルダのような仕組みである。
同じ機能や目的を持つクラスをグループ化することで、コードの管理がしやすくなり、名前の衝突を防ぐことができる。

パッケージの定義方法

クラスの最初に package 文を記述することで、そのクラスが属するパッケージを指定できる。

package mypackage;  // mypackage というパッケージに属するクラス
public class MyClass {
    // クラスの定義
}

package 文は必ずファイルの先頭に記述する必要がある。

パッケージの利用方法

他のパッケージにあるクラスを使用する場合は import 文を使う。

2. import 文とは?

import 文を使用すると、異なるパッケージのクラスを簡単に利用できるようになる。

import の基本形
import パッケージ名.クラス名;

または

import パッケージ名.*;

* を使うと、そのパッケージ内のすべてのクラスをインポートできるが、明示的にクラス名を指定する方が推奨される。

import の例
import java.util.ArrayList;  // java.util パッケージの ArrayList クラスをインポート

public class Example {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("Hello");
        System.out.println(list.get(0));
    }
}

import java.util.ArrayList; を書かない場合、 java.util.ArrayList と完全修飾名を使わなければならない。

import static の使用

static メンバー(定数やメソッド)をインポートする場合は import static を使う。

import static java.lang.Math.PI;
import static java.lang.Math.pow;

public class MathExample {
    public static void main(String[] args) {
        System.out.println(PI);          // 3.141592653589793
        System.out.println(pow(2, 3));   // 8.0
    }
}

import static を使うことで、 Math.PIMath.pow() のようにクラス名を省略できる。

3. デフォルトのパッケージ (無名パッケージ)

package 文を記述しない場合、そのクラスは「無名パッケージ(default package)」に属する。
しかし、無名パッケージに属するクラスは他のパッケージのクラスからアクセスできないため、通常は使用しないことが推奨される。

まとめ

パッケージ はクラスを整理するためのフォルダのようなもの。
package 文はファイルの先頭に記述し、クラスの所属パッケージを指定する。
他のパッケージのクラスを使う場合は import 文を記述する。
import static を使うと、static メンバーをクラス名なしで利用できる。
package 文を省略するとデフォルトのパッケージに属するが、基本的には避けるべき。

命名について

1. キャメルケース (CamelCase)

Javaでは、変数名、メソッド名、クラス名、インターフェース名など、各種識別子に対して命名規則がありますが、基本的にはキャメルケース(CamelCase)を使います。

  • キャメルケース: 最初の単語は小文字、2番目以降の単語の最初の文字を大文字にする形式です。
    • 例: myVariable, calculateTotalAmount(), UserAccount

2. クラス名

  • クラス名はパスカルケース(PascalCase)を使用します。パスカルケースは、キャメルケースの最初の文字も大文字にした形式です。

    • 例: StudentManager, AccountController, UserDetails
  • クラス名は名詞で始めるのが一般的です。例えば、StudentEmployee など、クラスの意味が伝わりやすい名詞を使います。

3. メソッド名

  • メソッド名もキャメルケースを使用しますが、動詞で始めることが一般的です。メソッドは「動作」を表すため、動詞を使うことでその機能が分かりやすくなります。
    • 例: calculateTotal(), getName(), setUser()

4. 変数名

  • 変数名はキャメルケースを使用し、意味のある名前を付けます。略語を避け、できるだけ何を表しているか分かるようにしましょう。

    • 例: totalAmount, userAge, productPrice
  • 一般的に、変数名には短縮形や略語を使わず、明確で意味がわかりやすい名前を選びます。

5. 定数名

  • 定数名(final変数)は全て大文字で記述し、単語の区切りにアンダースコア(_)を使います。
    • 例: MAX_SIZE, DEFAULT_VALUE

6. インターフェース名

  • インターフェース名は、通常クラス名と同様にパスカルケースを使用しますが、インターフェースを示すために、Iをプレフィックスに付けることがあります(ただし、Iを付ける規則は必須ではありません)。
    • 例: Runnable, Serializable
    • Iを使う例: IUserService, IDataProcessor

7. パッケージ名

  • パッケージ名は全て小文字を使い、複数の単語をドット(.)で区切ります。パッケージ名は、プロジェクト内で一意であることを意識し、組織名やドメイン名を逆にしたものを使うことが一般的です(例:com.example.project)。
    • 例: com.example.app, org.mycompany.service

8. アクセサメソッド名

  • アクセサメソッド(getter / setter)は、getsetの後にプロパティ名をつけ、キャメルケースを使用します。
    • 例: getFirstName(), setUserAge()

9. 配列やコレクションの命名

  • 配列やコレクションの場合、変数名には複数形を使用することが一般的です。
    • 例: students, items, userList

10. 略語や頭字語の取り扱い

  • Javaでは略語や頭字語(例えば、URL, XML, HTMLなど)の場合も、キャメルケースを使います。基本的に、すべて大文字の略語をそのまま大文字で使用するか、適切に大文字と小文字を区別します。
    • 例: getXmlData(), parseHtmlContent(), userUrl

11. 明確で意味のある名前をつける

命名規則に従うことは大事ですが、最も重要なのはコードが誰にでも理解できるような名前をつけることです。できるだけ直感的で、コードの目的が伝わるような名前を心がけましょう。

例:

  • 良い名前: calculateTotalAmount, getUserInfo, saveFile
  • 悪い名前: doSomething, temp, value

12. プライベートメソッドや変数の命名

  • プライベートな変数やメソッドには、一般的にアンダースコア(_)を使ったり、m(member変数の略)をプレフィックスとして使うことがあります。プライベートな変数やメソッドはクラス内部でしか使用しないため、その使用方法が分かりやすくなるような名前をつけます。
    • 例: private String _name;(プレフィックス使用)
    • 例: private int mCount;(プレフィックス使用)

Discussion