JAVA入門⑦ アクセス制御 簡単JAVA説明⑯ 1.カプセル化 クラスの中にデータ(フィールド)と機能(メソッド)を ひとまとめにし、保護したいメンバにprivateをつけて 勝手にアクセスできなくすることをカプセル化といい ます。 一般には フィールドー> private メソッドー> public と指定することが行われています。 簡単JAVA説明⑯ 例 // Testクラスのクラス class Test{ private int no; private double score; public void setResult(int n, double s);{ if ( s >= 0 && s =< 100){ no = n; score = s; System.out.println("Noは" + no+ "点数は" + score); }else{ System.out.println("点数" + score+ "は正数で登録して ください"); System.out.println("点数を変更できませんでした。 "); } } } 簡単JAVA説明⑯ // Testクラスのインスタンス作成 class Sample1{ public static void main(String args[]){ Test test = new Test(); test. setResult( 1, 60.0 ); System.out.println("点数" + score+ "は正数で登録してください"); } } 簡単JAVA説明⑯ 2.修飾子 前回JAVA入門⑥でprivateとpubblicという2つの修飾子を取り扱い ました。概略は private・・・「自クラスからのアクセスしか許さない」 pubblic・・・「すべてのクラスからの参照を許す」 でした。 上記の他、フィールド・メソッドにはさまざまな修飾子をつけることが出来ま す。 次頁に一覧をあげます。 修飾子 クラス インター フェイス メソッ ド コンスト ラクタ 変数 説明 public ○ ○ ○ ○ ○ アクセス修飾子 protected ○ ○ ○ ○ ○ アクセス修飾子 private ○ ○ ○ ○ ○ アクセス修飾子 static ○ ○ ○ × ○ スタティック final ○ × ○ × ○ ファイナル 修飾子 abstract ○ ○ ○ × × 抽象修飾子 native × × ○ × × ネイティブ修飾子 Synchroniz ed × × ○ × × 同期修飾子 修飾子 簡単JAVA説明⑯ 解説 final ・最終的なもの、もう変更できないことを表す。 ・クラス・インターフェイスでは拡張できないこと ・インスタンスフィールド、クラスフィールドの場合、定数 ・メソッドの場合、上書き定義(オーバーライド)の禁止 abstract ・抽象クラス、抽象メソッドであること static ・クラスフィールド、クラスメソッドであること synchronized ・synchronizedメソッドであること ・synchronized 修飾子付きのメソッドがマルチスレッド環境で実行される場 合、メソッドのインスタンスを対象として排他制御が行われます。 native ・JAVA以外の言語で書かれたメソッドであること 簡単JAVA説明⑯ 例 final class Rectangle{ final int INIT_WIDTH = 10; final int INIT_HIGHT = 20; int width; int height; Rectangle(){ width = INIT_WIDTH; height = INIT_HIGHT; } } 簡単JAVA説明⑯ 解説 final int INIT_WIDTH = 10; final int INIT_HIGHT = 20; のように、フィールドにfinalをつけると、そのフィールド には数値を代入できず、値の変わらない変数=定数 を作れます。 参考:プログラム作法 上記のように10、20という数値を取り扱う場合、プログラムに埋 め込むのではなく、シンボル化しておきます。 理由1:シンボルなら意味がつきます。 理由2:値変更(10→50、20→70)の際、便利です。2箇所以上 で使用している場合など。
© Copyright 2024 ExpyDoc