今回はその中でも重要な「メンバへのアクセス制限」について説明しましょう。第9回、第10回のイメージがつかめている。「メンバ」とは、"フィールド(属性)"と"メソッド"を称して「メンバ」と呼びます。今回は"フィールド(属性)"について説明していきます。...なにやら始めから「クラス」「メンバ」「アクセス制限」「フィールド」...っと難しそうな言葉が並んでいますが、他の人が書いたプログラムを読む上でも必要な知識なので、ここは「ふ〜ん。いうものね」くらいの認識でも最後まで読み進めて行きましょう。フィールドは、使用用途によってアクセス制限(使用制限)を行えます。「第10回複数のクラスを扱う」で使用したプログラムを入力・実行してみましょう。}}コンパイル・実行結果は以下の通りです。bar.C:\work>1.privateここで値の代入に着目してみましょう。AnotherClassSampleクラスで値の代入を行っている(E)を見てみましょう。String」で宣言されている「name」に対して代入を行っています。これは、「name」がAnotherClassSampleクラスのprivateフィールド(またはprivate属性)である事を示します。今までの講座では、メソッド内で宣言する「変数」を扱ってきましたね。フィールドも変数の一種です。・メソッド内で宣言される変数はメソッド内でのみ使用できる・クラスのフィールドとして宣言した変数はクラス内、またはクラス外からの参照が可能。(但し、アクセス制限による)となります。「private」は何をあらわすのでしょう。これは「宣言されたクラス内でのみ参照が可能」である事をあらわします。????...具体的に試してみる必要がありそうですね。ClassSampleクラスは直接AnotherClassSampleクラスのフィールドにはアクセスせずに、setNameメソッドを利用して値の代入を行っています。ここで、AnotherClassSampleクラスのフィールドに直接代入を行うように書き換えてみましょう。個C:\work>ご覧の通り、アクセスを制限されているために、エラーとなってしまいました。2.publicでは、AnotherClassSampleクラスのフィールド「name」を「public」で宣言してみましょう。}}コンパイルすると...。AnotherClassSample.javaC:\work>早速、実行してみましょう。change.C:\work>今度は成功しました。「public」と宣言れば、宣言したクラスの外部からも参照が可能となります。してこんなアクセス制限があるのでしょう。「全部publicで良いじゃんっ!」と思う人も少なくないでしょう。これは、「クラス内で宣言されているフィールドは、宣言したクラスが責任をもつ」ために必要な事なのです。以下のプログラムを見て下さい。}}この「人間クラス」は生成に「名前」を設定します。(「コンストラクタ」はクラス生成時に実行されるもの)getNameメソッドがあるため、「名前」を確認する事はできます(名前を呼べば答えてもらえる)。更新するメソッドもありません(そもそも、「名前」を勝手に変えられてたまるか!)。他のクラスから変更させない為には「private」で宣言する必要があるのです。"他のクラスで勝手に値を変えたくないから「private」"と覚えておきましょう。「private」「public」の他にも、「protected」がありますが、これはもっと後で説明する事にしましょう。〜1.フィールドとして宣言した変数はクラス内で参照が可能となる2.フィールドは宣言の方法によりアクセス制限が行える3.クラス内で宣言されているフィールドは、宣言したクラスが責任をもつそれでは、また次回にお会いしましょう。次へ(第17回:勝手に使われたくない...メソッドへのアクセス制限)アンケート読者の皆さん、Java講座はお役に立っていますか?今後の改良の為、以下のアンケートに是非お答えください。※個人情報の取り扱いについてはAcroquestでの個人情報保護に関する基本方針をご覧下さい。(→当社の技術書紹介をご参照ください)3)ご感想を是非お寄せ下さい。ご記入いただいた『質問内容』を、匿名にてホームページ上に掲載させて頂くことがありますのでご了承ください。