宣言、初期化、スコープ No.3

アクセス修飾子とアクセス制限

デフォルトアクセス(アクセス修飾子なし)
→ 同じパッケージ内のクラスからはアクセス可能
protected
→ べつのパッケージでも、サブクラスからは(継承してれば)アクセス可能

インナークラス

指定できる修飾子

  • abstract
  • final


指定できない

  • アクセス修飾子
  • static

インターフェイス

  • 変数は static final が自動的につくイメージ
  • 読み出したときに値を変更することは不可能(変数++など)
  • 何かしら値を定義しないと、コンパイルエラーになる。

enum

  • 列挙型を用いるメリットは、プログラムのバグを減らすこと
  • 列挙型の各値を使用すると、それぞれそのインスタンスが使用されるのと同意になる。
  • 別のクラスで定義されたenumを呼び出す場合は、「そのクラス名.enum名.データ値となる。(staticからも呼び出し可能らしい)
enum Size {
    SMALL,
    MEDIUM,
    BIG{
        public int getSize(){
            return 1000;
        }
    };
    public int getSize(){
        return 100;
    }
}


というenumが定義された場合、
Size sSmall = Size.SMALL;
Size sMedium = Size.MEDIUM;
Size sBig = Size.BIG;
で呼び出し、


getSize()を使用する場合、
sSmall.getSize() ・・・ 100
sMedium.getSize() ・・・ 100
sBig.getSize() ・・・ 1000
が返ってくる。


BIGだけgetSizeをオーバーライドしている、という
扱いになる。