JAVA入門

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箇所以上
で使用している場合など。