Data Fields of Java Objects
Access Public and Private Data
Java® classes can contain member variables called fields which might have public or private access.
To access public data fields, which your code can read or modify directly, use the syntax:
object.field
To read from and, where allowed, to modify private data fields, use the accessor methods defined by the Java class. These methods are sometimes referred to as get and set methods.
For example, the java.awt.Frame
class has both private and public
data fields. The read accessor method getSize
returns a
java.awt.Dimension
object.
frame = java.awt.Frame; frameDim = getSize(frame)
frameDim = java.awt.Dimension[width=0,height=0]
The Dimension
class has public data fields height
and width
. Display the value of height
.
height = frameDim.height
height = 0
Set the value of width
.
frameDim.width = 42
frameDim = java.awt.Dimension[width=42,height=0]
Display Public Data Fields of Java Object
To list the public fields of a Java object, call the fieldnames
function. For example, create an
Integer
object and display the field names.
value = java.lang.Integer(0); fieldnames(value)
ans = 'MIN_VALUE' 'MAX_VALUE' 'TYPE' 'SIZE'
To display more information about the data fields, type:
fieldnames(value,'-full')
ans = 'static final int MIN_VALUE' 'static final int MAX_VALUE' 'static final java.lang.Class TYPE' 'static final int SIZE'
Access Static Field Data
A static data field is a field that applies to an entire class of
objects. To access static fields, use the class name. For example, display the
TYPE
field of the Integer
class.
thisType = java.lang.Integer.TYPE
thisType = int
Alternatively, create an instance of the class.
value = java.lang.Integer(0); thatType = value.TYPE
thatType = int
MATLAB® does not allow assignment to static fields using the class name. To assign a
value, use the static set
method of the class or create an instance of
the class. For example, assign value
to the following
staticFieldName
field by creating an instance of
java.className
.
objectName = java.className; objectName.staticFieldName = value;