トップページ→プロ3ゼミ
→Java→Java入門講座→二学期→単位7
→5時間目
5時間目 クラスの特徴のまとめ
7−5−1.アクセス修飾子のまとめ
private修飾子・・・フィールド、メソッドに指定できる。
フィールドやメソッドに指定すると他のクラスからアクセスすることができない。
public修飾子・・・クラス、フィールド、メソッドに指定できる。
クラスに指定すると、public修飾子を指定したクラスのmainメソッドから実行される。
フィールドやメソッドに指定すると他のクラスからでもアクセスすることができる。
使用方法
class クラス名 {
private 型 フィールド名;
public 型 フィールド名;
private 戻り値の型 メソッド名(引数) {
// 処理
return 戻り値;
}
public 戻り値の型 メソッド名(引数) {
// 処理
return 戻り値;
}
}
7−5−2.カプセル化のまとめ
カプセル化は、クラスのフィールドを他のクラスから直接操作されない為に、フィールドをprivate修飾子で
宣言し、フィールドを参照または設定するメソッドをpublic修飾子で宣言することをいいます。
カプセル化をすることにより、フィールドの変更があった場合やフィールドに代入する値に制限を加えたりなど
プロジェクト中で必ずしも少なくない仕様変更から容易に対応することができます。
そのことにより、プログラムの保守性が向上します。
ちなみに、フィールドを参照するメソッドを特にセッタ、フィールドを設定するメソッドをゲッタと呼び、二
つ合わせてアクセサと呼びます。
ゲッタは、一般的に
public フィールドの型 getXxx() {
return xxx;
}
の書き方になります。
セッタは、一般的に
public void setXxx(フィールドの型 xxx) {
this.xxx = xxx;
}
の書き方になります。
xxxは、フィールド名です(メソッド名の2つ目の単語の先頭は大文字なのでXxx(Java主義)です)。
使用例
class Book {
private String title; // 本の題名
public String (引数) {
// 処理
}
public 戻り値の型 メソッド名(引数) {
// 処理
}
}
7−5−3.オーバーロードのまとめ
オーバーロードとは、メソッド名が同じでも引数の数又は型が違えばメソッドを宣言できる仕組みです。
但し、戻り値の型の違いは、メソッドを識別することができない為、戻り値の型が違っていていも同一のメソッ
ド名を宣言することができません。
7−5−4.コンストラクタのまとめ
コンストラクタは、オブジェクト生成時(インスタンス化)に呼び出されます。
コンストラクタは、クラスの宣言時に記述し、以下はコンストラクタの構文です。
class クラス名 {
識別子 クラス名(引数) {
文
}
}
クラスの宣言時にコンストラクタを記述しない場合には、インスタンス化時にデフォルトコンストラクタが呼
ばれます。
デフォルトコンストラクタは、何も処理が記述されていないコンストラクタのことです。
7−5−4.クラス変数、クラスメソッドのまとめ
クラス変数、クラスメソッドは、クラスごとに作成されるフィールド、メソッドでクラスをインスタンス化し
なくても使用することができ、クラスでフィールド、メソッドを管理します。
クラス変数、クラスメソッドを宣言するには、static修飾子を付ける必要があります。
使用方法
class クラス名 {
識別子 static 型 変数名; ←これがクラス変数
識別子 static 型 メソッド名(引数) { ←これがクラスメソッド
文;
}
}
7−5−5.単位7の課題
単位7の課題は、オブジェクト指向ではないプログラムをオブジェクト指向に対応させて下さい。
又、どこが問題なのか、つまりどこがオブジェクト指向ではないのかも答えれるとなお良いです。
プログラムです。
| Sample7_5.java |
class School {
String name; // 学校名
String studenNumber; // 生徒数
String openDate; // 開校日
}
public class Sample7_5 {
public static void main(String[] args) {
School javaHigh = new School(); // ジャバ高校
javaHigh.name = "ジャバ高校";
javaHigh.studenNumber = "3000";
javaHigh.openDate = "1980年4月1日";
System.out.println("学校情報");
System.out.println("学校名:" + javaHigh.name);
System.out.println("生徒数:" + javaHigh.studenNumber);
System.out.println("開校日:" + javaHigh.openDate);
}
}
|
|
答えは、単位7問題の答えをクリックすれば見れます。
4時間目 クラス及びインスタンスの要素に戻る
単位8 クラスのライブラリに進む
単位7 クラスの特徴に戻る
トップページに戻る