オブジェクト思考で必須となる概念です。
クラスとは
クラスとは、プログラムを実行するための処理をまとめたものです。いわゆる設計書ですね。
そのクラスの構成要素は「メンバ変数」と「コンストラクタ」と「メソッド」からなります。
クラスに関するルール
- また、基本的に作成したファイル名とクラス名は一致させておく必要がある
- クラス名はアッパーキャメルケースで命名する。(詳しくは命名規則を参照)
定義の仕方は以下になります。
class クラス名 {
メンバ変数やメソッドの定義
}
メンバ変数やメソッドの定義
}
メンバ変数とは
メンバ変数とはクラス全体で使用する変数のことです。
時に、他クラスから変数を扱いたい時も使用することがあります。
定義の仕方は変数と同じです。強いて言えば、スコープの定義が入るくらいです。詳しくはスコープを参照。
メソッドとは
メソッドはクラス内に存在するひとまとまりの処理のことです。
一つのメソッド内に全ての処理を書いてしまうと、とても読みづらいプログラムができてしまいます。
なので、処理ごとに分けることが大事になってきます。
定義の仕方は以下になります。
型名 メソッド名() {
処理内容
}
処理内容
}
メソッドの型にはいくつかあります。
メソッドの型は戻り値の型になります。戻り値はメソッドを呼び出し元でメソッドを変数のように扱うことができます。
例えば、以下のような感じに。
// メソッドの定義の例 void initMemberVariable() { flag = this.switchIsUsed(!this.isUsed); } // 引数、返り値があるメソッド定義の例 int switchIsUsed(boolean isOn) { this.isUsed = isOn; return 0; }
これは呼び出し元でメソッドが正しく処理されたかどうか、計算結果を知りたいという時などに使われます。
数学が得意な人に関しては、よく関数の表記で出てきたf(x)のことを思い出してもらえればと思います。
戻り値を使わない、処理をするだけでいい時は型名を「void」にします。
クラス全体の書き方
まとめると以下のように書くことができます。
// クラス定義の例 public class ProgramMemoExample { // 定数定義の例、そして、スネークケースの例 final int MAX_LENGTH = 10; // メンバ変数の例、そしてパスカルケースの例 public int memoCount = 0; boolean isUsed = true; private String title = "開発メモの例題"; ProgramMemoExample() { System.out.println("コンストラクタ"); // メソッドの呼び出しの例 this.initMemberVariable(); } // メソッドの定義の例 void initMemberVariable() { int flag = -1; // メソッドの処理の例 this.memoCount = 0; this.isUsed = false; flag = this.switchIsUsed(!this.isUsed); } // 引数、返り値があるメソッド定義の例 int switchIsUsed(boolean isOn) { this.isUsed = isOn; return 0; } }