UPDATED ACTUAL Exam Questions and
CORRECT Answers
operator overloading - CORRECT ANSWER - AKA ad hoc polymorphism, a specific case
where different operators have different implementations depending on their arguments . An
example is the + operator which can be used in addition and string concatenation
method overloading - CORRECT ANSWER - ability to create multiple methods of the
same name with different parameters. The add method is a good example of this, the implicit
parameters determine which way the method is called/used. COMPILE TIME
method override - CORRECT ANSWER - have the exact same method name, return type,
number of parameters, and types of parameters as the method in the parent class, and the only
difference would be the definition of the method. RUN TIME
programming by contract - CORRECT ANSWER - aka design by contract "no suprises"
Metaphor for Business Contract
It is a software design approach that uses preconditions, postconditions and invariants.
check input parameters
check data structures/object after method call
law of demeter - CORRECT ANSWER - methods should not operate on global objects
that are part of another object
A design guideline that states that a method should not operate on global objects or objects that
are a part of another object
Method should only use...
, -instance fields of it's own class
-parameters
-objects that it constructs.
design by contract - CORRECT ANSWER - different groups of software programmers
agree to contract detailing how their software each groups should be able to write code without
knowing internals of other programmers code.
encapsulation - CORRECT ANSWER - hiding the details of an object from the other parts
of the program. The object can be used only through its access methods, which are carefully
written to keep the object consistent and secure. Encapsulation makes objects look like a black
box: the insides of the box are hidden from view. Controls are on the outside of the box. The user
can change the operation of the box only by using the controls.
accessor - CORRECT ANSWER - any method that returns info about an object should not
affect the state of that object
mutator - CORRECT ANSWER - any method that changes the state of the object
you typically want to avoid mutators, because of the side effects.
side effect - CORRECT ANSWER - an effect of a method that results in data modification
when the method is called a side effect is where you change some value that is not scoped
directly to just the method, but outside the method and you alter some value to some
class/variable outside the method. Therefore any other method, class, or variable cannot assume
that the value outside the method scope is going to be the same.
Quality of an interface - the "five Cs" - CORRECT ANSWER - Cohesion
Completeness
Convenience
Clarity