Here's the part four! Today (or tonight, depending on where do you live) a couple of questions:
Open book #2 exam, question 22
The question is:
What is the result?
The answer was:
D fin Then a runtime exception
But actually if you execute the code, no exception (and no RuntimeException at all) is thrown. If you print the stack trace, it looks like this:
java.lang.Throwable
at Battery.main(Battery.java:6)
And inspecting the thrown object, it is a plain Throwable whose cause is itself. (BTW, I'm of the opinion that the Throwable class should be abstract).
Open book #2 exam, question 44
Given a class House, which are true (Choose all that apply)
A House has-a Roof would be considered tight coupling
...
D House has-a Door would be considered low coupling
...
A is incorrect and D is correct. What I don't understand is how, withouth examining the source code of at least one of the classes, can we say if a composition scheme is coupled or not.
The reference says nothing about why D is correct. About why A is incorrect, it says:
A is incorrect because a House almost certainly will have a Roof, so this is not considered tight coupling.
But I don't understand why. Perhaps it means that in absence of source code, every composition should be considered loose coupling?