| 外部インタフェース/API | ![]() |
プライベートおよびパブリックデータのアクセス
Java APIクラスは、ユーザが読み込んだり、可能な場合はプライベートデータフィールドを修正するために利用できるアクセサメソッドを提供します。これらは、それぞれgetおよびsetメソッドとして参照されることがあります。
Javaクラスの中には、パブリックデータフィールドをもつものがあります。これは、ユーザコードが直接読み込んだり、修正したりできます。これらのフィールドにアクセスするには、シンタックスobject.fieldを使います。
例題
java.awt.Frameクラスは、プライベートとパブリックの両方のデータフィールドにアクセスする例を提供しています。このクラスは、読み込みのアクセサメソッドgetSizeを提供し、これはjava.awt.Dimensionオブジェクトを出力します。Dimensionオブジェクトは、パブリックで直接アクセスが可能なデータフィールドheightおよびwidthをもちます。つぎの例は、このデータにアクセスするMATLABコマンドを示します。
frame = java.awt.Frame; frameDim = getSize(frame); height = frameDim.height; frameDim.width = 42;
本章のプログラミングの例題は、データフィールドのアクセサの呼び出しも含みます。たとえば、「インターネットプロトコルアドレスの検索」のサンプルコードは、java.net.InetAddressオブジェクトのアクセサの呼び出しを使います。
hostname = address.getHostName; ipaddress = address.getHostAddress;
スタティックフィールドからデータにアクセスする
Javaでは、スタティックデータフィールドは、オブジェクトのクラス全体に適用するフィールドです。スタティックフィールドは、Javaでのクラス名に関連して最も一般にアクセスされます。たとえば、下記のコードは、オブジェクトのインスタンスでなく、パッケージとクラス名java.awt.Frameに関して参照することにより、FrameクラスのWIDTHフィールドにアクセスします。
width = java.awt.Frame.WIDTH;
MATLABでは、同じシンタックスを使うことができます。あるいは、クラスのインスタンスに関してWIDTHフィールドを参照することができます。この例題は、frameObjと呼ばれるjava.awt.Frameのインスタンスを作成し、パッケージとクラス名ではなく名前frameObjを使ってWIDTHフィールドにアクセスします。
frame = java.awt.Frame('Frame A');
width = frame.WIDTH
width =
1
スタティックフィールドの割り当て
クラスのスタティックなsetメソッドを使うか、あるいはクラスのインスタンスのリファレンスに割り当てを行うことにより、スタティックなJavaフィールドに値を割り当てることができます。詳細は、前の節 "スタティックフィールドからデータにアクセスする"を参照してください。クラスのインスタンスのリファレンスにおいてこのフィールドを参照することによって、フィールドstaticFieldNameに値を割り当てることができます。
objectName = java.className; objectName.staticFieldName = value;
| オブジェクトのパブリックデータフィールドの検索 | オブジェクトのクラスの決定 | ![]() |