●クラス(宣言方法とそのメンバ)


クラス宣言の構文
[修飾子] class 識別子 [extends節] [implements節] {クラス本体}
*[]内は省略可能
クラス宣言に使える修飾子(アクセス制御)
 public ・・・・・・クラスの内部、同一のパッケージ、サブクラス、無関係のクラス
 修飾子なし・・・クラスの内部、同一のパッケージ
クラス宣言に使える修飾子(アクセス制御以外)
abstract
  他のクラスのスーパークラスになることを強制する。
final
  他のクラスになることを禁止する
strictfp
  浮動小数点数の機能拡張。範囲を厳密に規定する特殊な用途に使う
クラスメンバの宣言に使える修飾子(アクセス制御)
public ・・・・・・ クラスの内部、同一のパッケージ、サブクラス、無関係のクラス
protected ・・・ クラスの内部、同一のパッケージ、サブクラス
修飾子なし・・・ クラスの内部、同一のパッケージ
private・・・・・・ クラスの内部
クラスの構成要素(クラス内で宣言されるもの)
 フィールド
プリミティブ型の変数、参照型の変数(クラス、インターフェイス、配列への参照)
〔オブジェクトの持つデータ。ローカル変数に対して、
 フィールド変数やメンバ変数と呼ばれることもある〕
 メソッド
メソッド(処理手続きとローカル変数)
〔オブジェクトの持つ手続き〕
 ネストしたクラス
通常のクラスと同様(フィールドやメソッド)
〔関連性の高いクラスをクラスの内部に作る。イベント処理で利用する〕
 コンストラクタ
オブジェクト作成時の初期化処理を記述する特別なメソッド
〔クラスと同じ名前を付ける。戻り値の型を記述しない〕
 初期化子(静的初期化子)
クラスの初期化処理
〔クラスの初期化時に実行される〕
 初期化子(インスタンス初期化子)
オブジェクト作成時の初期化処理
〔そのクラスのコンストラクタの前に実行される〕


クラス宣言の例
---------------------------------------------------------------------------------

class Point{

----------------------------
// フィールド
int x; // X座標
int y; // Y座標
----------------------------
// メソッド
int getX(){
return x;
}

void move(int addx, int addy){
x = x + addx;
y = y + addy;
Nest obj = new Nest();
obj.info();
}
----------------------------
// ネストしたクラス
class Nest{
void info(){
System.out.println("X = " + x + " Y = " + y);
}
}
----------------------------
// コンストラクタ
Point(int x, int y){
this.x = x;
this.y = y;
}
----------------------------
// 初期化子
static{
// クラスの初期化処理
}
----------------------------
// 初期化子
{
// オブジェクトの初期化処理
}
}
--------------------------------------------------------------------------------
---------------------------------------------------------------
public class MainClass {
public static void main(String[] args) {
// Pointクラスのオブジェクトの生成
Point obj = new Point(10, 20);
// Pointを利用する
System.out.println("X = " + obj.getX());
// Pointを利用する
obj.move(1, 2);
}
}

class Point {
// フィールド
int x;
int y;
//・・・

// メソッド
int getX() {
return x;
}

void move(int addx, int addy) {
x = x + addx;
y = y + addy;
Nest obj = new Nest();
obj.info();
}
//・・・

// ネストしたクラス
class Nest {
void info() {
System.out.println("X = " + x + " Y = " + y);
}
}
//・・・

// コンストラクタ
Point(int x, int y) {
this.x = x;
this.y = y;
}
//・・・

// 初期化子
static {
// クラスの初期化処理
}
// 初期化子
{
// オブジェクトの初期化処理
}
}
---------------------------------------------------------------


独習Javaサーバサイド編/山田 祥寛

¥3,780
Amazon.co.jp

明解Javaによるアルゴリズムとデータ構造/柴田 望洋

¥2,520
Amazon.co.jp

SUN教科書 Javaプログラマ(SJC-P) 5.0・6.0両対応(試験番号310-055、310-065)/ポール・サンヘラ

¥3,990
Amazon.co.jp