Working with objects

Figure 189. The new operator: Creating rectangle instances Slide presentation
Rectangle dashedRectangle = new Rectangle();

Rectangle solidRectangle = new Rectangle();

...

Figure 190. Syntax creating instances Slide presentation
new class-name ([argument 1[, argument 2] ...] )
Wording examples:
  • Create an instance of class Rectangle.

  • Create a Rectangle object.

  • Create a Rectangle.


Figure 191. Assigning attribute values to class instances Slide presentation
Rectangle dashedRectangle = new Rectangle();

dashedRectangle.width = 28;
dashedRectangle.height = 10;
dashedRectangle.hasSolidBorder = false;

Syntax accessing object attributes:

variable.attributeName = value;

Figure 192. Instance memory representation Slide presentation
Instance memory representation

Figure 193. References and null Slide presentation
Rectangle r = new Rectangle();// Creating an object

r.width = 28; // o.K.

r = null;// removing reference to object

r.width = 28; // Runtime error: NullPointerException (NPE)
Exception in thread "main" java.lang.NullPointerException
  at de.hdm_stuttgart.mi.classdemo.App.main(App.java:17)

Figure 194. Checking for object presence Slide presentation
Rectangle r;

... // possible object assignment to variable r.

if (null == r) {
  System.out.println("No rectangle on offer");
} else {
  System.out.println("Width:" + r.width);
}