外部インタフェース/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;
![]() | オブジェクトのパブリックデータフィールドの検索 | オブジェクトのクラスの決定 | ![]() |