Question 1: What's wrong with the following program?Answer 1: The code never creates apublic class SomethingIsWrong { public static void main(String[] args) { Rectangle myRect; myRect.width = 40; myRect.height = 50; System.out.println("myRect's area is " + myRect.area()); } }Rectangleobject. With this simple program, the compiler generates an error. However, in a more realistic situation,myRectmight be initialized tonullin one place, say in a constructor, and used later. In that case, the program will compile just fine, but will generate aNullPointerExceptionat runtime.Question 2: The following code creates one
Pointobject and oneRectangleobject. How many references to those objects exist after the code executes? Is either object eligible for garbage collection?Answer 2: There is one reference to the... Point point = new Point(2,4); Rectangle rectangle = new Rectangle(point, 20, 20); point = null; ...Pointobject and one to theRectangleobject. Neither object is eligible for garbage collection.Question: How does a program destroy an object that it creates?
Answer: A program does not explicitly destroy objects. A program can set all references to an object tonullso that the becomes eligible for garbage collection. But the program does not actually destroy objects.
Exercise 1: Fix the program called
SomethingIsWrongshown in Question 1.
Answer 1: SeeSomethingIsRightpublic class SomethingIsRight { public static void main(String[] args) { Rectangle myRect = new Rectangle(); myRect.width = 40; myRect.height = 50; System.out.println("myRect's area is " + myRect.area()); } }Exercise 2: Given the following class, called
NumberHolder, write some code that creates an instance of the class, initializes its two member variables, and then displays the value of each member variable.#includejava NumberHolder.java
Answer 2: SeeNumberHolderDisplay#includejava NumberHolderDisplay.java