2011年7月19日火曜日

Javaの私的まとめ1

オラクルのJavaプログラマ資格取得のために、勉強を開始した。特にアクセス修飾子が頭に入っていないので、書いて覚える、見て覚えるを実践するために以下にまとめてみた。

  1. 宣言

    プログラムはパッケージ宣言、インポート宣言、クラス・インタフェースの定義の順で書く。どれかが欠けててもコンパイル自体はできる(クラスがないとコンパイルしてもファイルはできないが)。

    パッケージとは、クラス・インタフェースをグループにまとめることである。ファイル中にpackage a;と宣言し、myclassというクラスを用意すると、a.myclassという完全修飾名が得られる。package宣言は1ファイルにつき、1つだけ許されている。

  2. 識別子

    使える識別子は先頭が$、_、英字のみ。キーワード(publicとか)やリテラル(ソース内の値の表現0x10などの数値表現)は識別子として利用できない。

  3. 基本データ型

    Javaの基本データ型は符号付き(C言語でいうとunsignedが"つかない"もの)である。基本データ型はboolean、byte(-128~127)、char、short、int、long、float、doubleがある。charのみ数値と見れば、符号なし整数とみなすことができる。

  4. 修飾子

    修飾子は矛盾しない場合は、いくつつけても良い。何につけるかによって、使えるものや意味が異なる。

    クラス修飾子は4種類ある。

    クラス修飾子 意味
    publicどこからでもアクセス可能
    abstract抽象クラス(定義が不完全)
    finalサブクラスを持てないクラス
    strictfpIEEE754の仕様に沿った浮動小数点の計算を行う

    フィールド(クラスが持つ変数)の修飾子は4種類ある。

    フィールド修飾子 意味
    final値をいったん定義すると変更できない
    staticクラスに付随する変数にする(複数のインスタンスで共有)
    transientシリアライズのときに保存しない。シリアライズというのは、メモリ上のバイトデータを読み書きできるよう変換するすること。
    volatile コンパイラの最適化を行わない

    インタフェースは2種類の修飾子が利用できる。

    インタフェース修飾子 意味
    public
    abstract

    メソッド(クラス内の関数)の修飾子は5種類ある。

    メソッド修飾子 意味
    abstract抽象メソッド(定義のないメソッド)
    finalサブクラスで変更不可のメソッド
    staticクラスに付随するメソッドにする(インスタンスに付随させない)
    synchronized実行前にロックを取得する
    nativeプラットフォーム依存のコードで定義が書かれる。nativeと書かれたメソッドは、Java以外の言語で実装され、コンパイルされていることを示している。

    コンストラクタの修飾子は3種類(何もつけないデフォルトの状態を含めると4種類)

    コンストラクタ修飾子 意味
    publicどこからでもアクセスできる
    protected同じパッケージ内のすべてからと、他のパッケージでも、そのクラスのサブクラスからのアクセスを許可する
    privateそのクラスの内部からのみアクセスできる
    デフォルト(何もつけない)同じパッケージ内からのアクセスを許可する
  5. 静的インポート宣言

    静的インポート宣言は、staticなフィールドの修飾部分を省略するために用いられる。例えば、

    import static java.lang.Math.PI;
    import static java.lang.System.out;
    とすれば、プログラム中でPI、outのように省略して書くことができる。
    import static java.lang.Math.*;
    とすれば、Mathクラスのすべてのメソッドを省略して用いることができるが、修飾部分を除いて同じ名前のものがあるとコンパイルエラーになってしまうことには注意。

  6. アプレット
    アプレットとは、ブラウザ内で実行されるプログラムである。ブラウザ内のJava仮想マシンがjava.applet.Appletのサブクラスのインスタンスを生成し、実行する。

0 件のコメント:

コメントを投稿

フォロワー

ブログ アーカイブ

ページビューの合計