KATOエンジニヤリング開発日誌

「アウトプット無きエンジニアにインプットもチャンスも無い」の精神で書いています

Javaのクラスとフィールドを学ぶ

「Javaプログラミング技法」の第3回目の授業まとめになります。

※ 前回授業の内容はこちら

www.kato-eng.info

クラス

クラスの概念

いくつかの変数や、変数に対する処理を1つにまとめたものをテンプレート化したものがクラスである。クラスから実際に値を持ったデータを作ることをインスタンス化といい、実際に作成されたものはインスタンスという。インスタンスが持つ変数はフィールドと呼ぶ。

クラスで宣言するもの

  • フィールド
  • メソッド
  • コンストラクタ

これらは合わせてメンバと呼ぶ。

クラスの宣言

クラスの宣言は、あるクラスがどのようなメンバを持つかをソースコードに記述することである。

クラス宣言で注意しないといけない点は下記の通り。

  • クラス名とそのクラスを記述するファイル名を同じにする
  • クラスの名前は大文字で始める
  • フィールドやメソッドの名前は小文字で始める

クラスに関する演算子として下記2つを用いる。

  • new
    • クラスからインスタンスをつくる
  • =
    • 右辺の式を評価した結果を左辺の変数に代入する
// ファイル名:Student.java

class Student {
    int id;
}

/*
    Studentクラスは「Student.java」という名前のファイルに記述する。
*/
// ファイル名:StudentManager.java

class StudentManager {
    public static void main(String[] args) {
        Student st;         // Student型の変数「st」を宣言する
        st = new Student(); // Studentクラスのインスタンスを作成し、変数stに代入する

        st.id = 123; // Studentクラスのフィールドとして定義されている「id」に123を代入する
        System.out.println(st.id); // ディスプレイにStudentクラスのidフィールドの値「123」が表示される
    }
}

/*
    StudentManagerクラスはmainメソッドを持ち、学生を管理するクラス。
    StudentManagerクラスは「StudentManager.java」という名前のファイルに記述する。
*/
  • クラスを利用するにはインスタンスを作成する
    • Student st = new Student(); のように1行で書くこともできる
  • インスタンスを作成すると、メンバ(フィールド)にアクセスできるようになる
  • インスタンスが持つフィールドには「インスタンス名.変数名」のようにドット(.)演算子でアクセスする

クラス名と変数名に関する注意点

クラス名

クラス名は大文字で始めることになっているが、全てを大文字にしないこと。

  • ○ class Student
  • ☓ class student
    • 全て小文字はダメ
  • ☓ class STUDENT
    • 全て大文字もダメ

変数名

変数名は必ず小文字で始めることになっている。

  • ○ int student
  • ○ int stdnt
  • ☓ int Student
    • クラス名と混同するのでダメ
  • ☓ int STUDENT
    • 全て大文字では定数と混同するのでダメ

2単語以上の変数名になる場合は空白を入れないで単語の切れ目で先頭文字を大文字にする

  • ○ int studentID
  • △ int studentid
    • 1単語とみなされる場合があるので場合によっては相応しくない
  • ☓ int student_id
    • C言語やpythonでは正しいが、Javaでは相応しくない

複数インスタンスの作成

「new」を実行するたびに新しいインスタンスが作成される。メンバの値は各インスタンスで独立している。

// ファイル名:Student.java

class Student {
    int id;
}
// ファイル名:StudentManager.java

class StudentManager {
    public static void main(String[] args) {
        Studnet st1 = new Student();
        st1.id = 101;

        Student st2 = new Student();
        st2.id = 201;

        System.out.println(st1.id);
        System.out.println(st2.id);
    }
}

※次回授業内容はこちら

www.kato-eng.info