最終更新:2013-01-29 (火) 16:49:55 (4076d)
Java/クラス
例
修飾子 class クラス名 extends 親クラス名{ 型 属性; 型 メソッド() { ... } }
修飾子
- public
- final
- abstract - Java/抽象クラス
- strictfp?
Java/継承?
修飾子 class クラス名 extends 親クラス名{}
Java/抽象クラス (abstract)
- 抽象クラスのオブジェクトを生成することはできない
- 抽象メソッド?は実装を持たない
- 抽象クラスをサブクラスで継承し、そのサブクラス内でメソッドを実装(オーバーライド)
- 抽象クラスには抽象メソッド?/普通のメソッドを持てる。ただし、抽象メソッド?があるクラスは必ず抽象クラスとして宣言する必要がある
- 抽象メソッド?がない、抽象クラスを宣言することもできる。かならず継承が行われ、なんらかのメソッドの変更があることを表す。
- 抽象クラスを継承したサブクラスで抽象メソッド?を実装(オーバーライド)しない場合、そのサブクラスは抽象クラスとして宣言される。
Java/インターフェイス
- 内容に抽象メソッド?しか持たないクラスのようなもの
メモ
- publicクラスは1ソースファイルにつき1つしか宣言できない
- Javaのソースファイル名は必ずそのソースファイルに宣言されているいずれかのクラス名と一致していなければならない
- すべてのクラスは、スーパークラスとしてjava.lang.Objectを持つ
親クラス
特別なメソッド
- アウタークラス名.this - インナークラス内でアウタークラスのインスタンスを取得するときに使う。(普通はthisだけ。)
- クラス名.class - クラスオブジェクト?(java.lang.Class<クラス名>)を取得。
- http://stackoverflow.com/questions/3434041/meaning-of-this-and-class-in-java
ネストしたクラス
メンバ型
static なもの
- 外側のクラスのインスタンスが無くてもアクセスすることができる
- private なフィールド変数やメソッドであっても、外側のクラスからアクセスできる
static でないもの (内部クラス? : inner class)
- 外側のクラスのインスタンスがないとアクセスすることができない
- 静的初期化子を宣言できない
- static なフィールド変数やメソッドも持つことができない
ローカルクラス
- ブロックに囲まれた名前を持ったクラス
- 常にprivate
無名クラス (匿名クラス)
- 式内(クラス、インスタンス生成式内)に宣言される名前を持たないクラス