CHAPTER 10: Object-Oriented Thinking
True or False : a code defined in the main method can be reused
False, you would need to define a static method in order to reuse the code
Why are both aggregation and composition together referred to as composition ?
They are represented using classes in the same way.
Composition
This is when an object consists of other objects. Aggregation between two objects is also referred to as composition.
What is the wrapper class used for?
To wrap primitive type values in an object because primitive type values are not objects.
What is unboxing
Unboxing is conversion from a primitive value type to an object.
To add b1 to b2, you write ___. A. b1.add(b2); B. b2.add(b1); C. b2 = b1.add(b2); D. b2 = b2.add(b1); E. b1 = b2.add(b1);
c and d
The subject object is called an _____ object and its class is called an _____ class.
aggregated, aggregated
The owner object is called an ____ object and its class is called an ___ class.
aggregating, aggregating
What are the common relationships among classes
association, aggregation, composition and inheritance
Object oriented paradigm
couples data and methods together into objects
which method can throw an Arithmetic Exception and how can you solve it?
divide. Use : ivide(BigDecimal d, int scale, int roundingMode) method to specify a scale and a rounding mode to avoid this exception, where scale is the maximum number of digits after the decimal point. For example, the following code creates two BigDecimal objects and performs division with scale 20 and rounding mode BigDecimal.ROUND_UP.
What is UML notation of aggregation
empty diamond on aggregating class
t/f the following code changes the the value of "s" : String s = "Java"; s = "HTML";
f, it creates a new string object and assigns its reference to "s" and now the first one cannot be accessed.
T/F BigInteger and BigDecimal both accept type "integer"
false, they accept type string
In UML, an aggregating class is denoted as a _____to denote the composition relationship with an aggregated class
filled diamond
Association
general binary relationship that describes an activity between two lasses
Multiplicty: m...n
indicates the number of objects between m and n inclusively
Suppose a reference variable of type Integer called myInt is already declared. Create an object of type Integer with the initial value of 1 and assign it to the reference variable myInt.
myInt = new Integer(1);
To create an instance of Big integer for 454 what do you write?
new BigInteger("454");
What is the output of the following code?public class Test { public static void main(String[] args) {String s1 = new String("Welcome to Java");String s2 = s1;s1 += "and Welcome to HTML";if (s1 == s2)System.out.println("s1 and s2 reference to the same String object");elseSystem.out.println("s1 and s2 reference to different String objects");}} A. s1 and s2 reference to the same String object B. s1 and s2 reference to different String objects
b
What is the term used to describe converting a primitive value to a wrapper object
boxing
Which two classes can represent integers or decimal numbers of any size and precision
BigInteger and Big Decimal
What is UML notation of compositon
solid diamond on aggregating class
t / f : The compiler will automatically box a primitive value that appears in a context requiring an object, and will unbox an object that appears in a context requiring a primitive value.
t
t / f biginteger and bigdecimal are immutable
t
t/f string objects are immutable
t
t/f strings are objects
t
Class contract
the collection of methods and fields that are accessible from outside a class, together with the description of how these members are expected to behave.
Class encapsulation
the details of implementation are encapsulated and hidden from the user | combining of methods and data into a single data structure
Multiplicity *
unlimited number of objects
What is the output of the following code? public class Test { public static void main(String[] args) { java.math.BigInteger x = new java.math.BigInteger("3"); java.math.BigInteger y = new java.math.BigInteger("7"); x.add(y); System.out.println(x);
3, remember its immutable
Procedural Paradigm
An approach to programming where the programmer defines the steps for solving a problem | it focuses on designing methods (behaviors)
___________ is attached to the class of the composing class to denote the aggregation relationship with the composed object.
An empty diamond
What is the syntax to create a string from a string literal?
String newString = new String(stringLiteral) where string literal is a sequence of characters enclosed inside double quotes
What is the output of the following code?public class Test { public static void main(String[] args) {String s1 = new String("Welcome to Java!");String s2 = s1.toUpperCase();if (s1 == s2)System.out.println("s1 and s2 reference to the same String object");else if (s1.equals(s2))System.out.println("s1 and s2 have the same contents");elseSystem.out.println("s1 and s2 have different contents");}} A. s1 and s2 reference to the same String object B. s1 and s2 have the same contents C. s1 and s2 have different contents
a
Which of the following statements is preferred to create a string "Welcome to Java"? A. String s = "Welcome to Java"; B. String s = new String("Welcome to Java"); C. String s; s = "Welcome to Java"; D. String s; s = new String("Welcome to Java");
a
An aggregation relationship is usually represented as __________ in ___________.
a data field/the aggregating class
Multiplicity
a number or an interval that specifies how many of the class's objects are involved in the relationship
aggregation
a special form of association that represents an ownership relationship between two classes. It models has-a relationships. An object can be owned by several other aggregating objects.
Class abstraction
a technique in software development that hides detailed implementation. It hides the implementation of the class from the client. If you decide to change the implementation the client program will not be affected.
What are autoboxing and autounboxing? Are the following statements correct? a. Integer x = 3 + new Integer(5); b. Integer x = 3; c. Double x = 3; d. Double x = 3.0; e. int x = new Integer(3); f. int x = new Integer(3) + new Integer(4);
a. Correct, this is same as x = new Integer(3 + 5); b. Correct c. Wrong, this is same as Double x = new Integer(3); d. Correcte. Correct f. Correct