Document 6540124
Transcription
Document 6540124
Test 2008 Midterm Spring Sample Instructions: This is a closed book, notes, neighbor examination. Select the best answer. No, it is not a typo, all code appears as intended. Any text in this font is as intended. Do not ask the instructor about any "typos" that is in this font. All output is to be considered what appears in the console. DO write on the examination. 1. Two different objects belonging to the same class: A. Share data B. Share the structure. They can share data too, through the static keyword C. Share data and methods D. Share only methods E. 2. In Java, if no access specifier is placed in front of a class member what will be the access to that member? A. public, everyone can access the member B. friendly, the other classes in the same package can access the member C. private, only the class can access the member D. protected, only the class and any derived classes can access the member E. None of the above 3. What makes difference between Composition versus Inheritance A. Object created from a existing Class towards a New Class is called composition . Object created from a existing type Class with modification to some of their attributes B. Object created from a existing Class towards a New Class with modification to some of their attributes is called composition . Object created from a existing Class is called Inheritance C. Object created from a existing Class towards a New Class is called composition . Object created from a existing Class is called Inheritance D. Composition and Inheritance as same . E. None of the above 4. What results from attempting to compile and run the following code? public class Ternary { public static void main(String args[]) { int a = 5; System.out.println("Value is - " + ((a < 5) ? 9.9 : 9)); } } A. Prints: Value is - 9 B. Prints: Value is - 5 C. Compilation error D. None of these E. 5. The class Child inherits data and method members for the class Parent. The proper syntax for writing the beginning of the child class is : A. class Child inherits Parent { ... } B. class Child {Parent} { ... } C. class Child extends Parent { ... } D. All of the above. E. None of the above 6. What is displayed when the following is executed? class Parent { private void method1() { System.out.println("Parent's method1()"); } public void method2() { System.out.println("Parent's method2()"); method1(); } } class Child extends Parent { public void method1() { System.out.println("Child's method1()"); } public static void main(String args[]) { Parent p = new Child(); p.method2(); } } A. Compile time error B. Run time error C. prints : Parent's method2() Parent's method1() D. prints : Parent's method2() Child's method1() E. 7. What is the difference between inheritance and composition in object oriented programming. A. inheritance: money, property,and Java codes that you receive from someone who has died. composition: a short piece of writing about object oriented programming. B. inheritance: is_a relationship. You're taking a general purpose class and specializing it for a particular need. composition: has_a relationship. You want the features of an existing class inside your new class, but not interface. C. inheritance:has_a relationship. you want the features of an existing class inside your new class, but not interface. composition: is_a relationship. You're taking a general purpose class and specializing it for a particular need. D. inheritance: the derived class can not access the "protected" and "private" data member and method member of the base class. composition: Inside your new class you can access the "protected" data member or method member of the existing class E. None of the above 8. class A { A() {} ... } class B extends A { B() {} ... } class C extend B { C() {} ... } Somewhere in main: C x = new C(); In what order will the constructors be called? A. Class A's constructor Class B's constructor Class C's constructor B. Class C's constructor Class B's constructor Class A's constructor C. Only C's constructor will be called D. No constructors will be called. E. None of the above 9. What is the output of the following code? public class PrivateOverride { private void f( ) { System.out.println("private f( )"); } public static void main(String args[]) { PrivateOverride po = new Derived( ); po.f( ); } } class Derived extends PrivateOverride { public void f( ) { System.out.println("public f( )"); } } A. public f( ) B. private f( ) C. No output -- Causes compiler error because there are 2 methods of the same name with the same parameter lists D. No output -- Causes compiler error because overriding private methods of a derived class is not allowed E. None of the above 10. The Java language and libraries from Sun Microsystems are: A. available for a low cost to students B. cannot be used without a run time license fee C. free and can be downloaded at http://java.sun.com D. are supported only on Microsoft XP E. None of the above 11. Which statement is not a basic characteristic of object-oriented programming in Java? A. Everything is an object and Every object has a type. B. A program is a bunch of objects telling each other what to do by sending messages. C. Each object has its own memory made up of other Objects. D. All objects of a particular type can receive the same messages. E. None of the above 12. Java 2 refers to which JDK(s): A. JDK 1.1 or greater B. JDK 1.2 or greater C. JDK 2.0 or greater D. JDK 2.3 or greater E. None of the above 13. What will happen when you attempt to compile and run the following code? class Base { int i = 99; public void amethod() { System.out.println("Base.amethod()"); } Base() { amethod(); } } public class Derived extends Base { int i = -1; public static void main(String argv[]) { Base b = new Derived(); System.out.println(b.i); b.amethod(); } public void amethod() { System.out.println("Derived.amethod()"); } } A. Derived.amethod() -1 Derived.amethod() B. Derived.amethod() 99 Derived.amethod() C. 99 Derived.amethod() D. Compile time error @ E. 14. Where can the keyword final be used? A. on data members B. on methods C. on classes D. All of the above E. None of the above 15. What will be the result of executing the following code? 1: public static void main(String args[]) { 2: char digit = 'a'; 3: for (int i = 0; i < 10; i++) { 4: switch (digit) { 5: case 'x': { 6: int j = 0; 7: System.out.println(j); 8: } 9: default: { 10: int j = 100; 11: System.out.println(j); 12: } 13: } 14: } 15: int i = j; 16: System.out.println(i); 17: } A. 100 will be printed 11 times. B. 100 will be printed 10 times and then there will be a runtime exception. C. The code will not compile because the variable i cannot be declared twice within the main() method. D. The code will not compile because the variable j cannot be declared twice within the switch statement. E. None of the above. 16. All of the following are true, except: A. When you start a design in object oriented programming, you should generally prefer composition during the first version because it is more flexible than inheritance. B. Use inheritance only when it is clearly necessary. C. By using inheritance, you can change the behavior of composed objects at run-time. D. By rapidly developing using composition and inheritance, you will need to redesign the class hierarchy before allowing programmers to become dependent on it. E. None of the above 17. Which of the following options will run the PropertyCheck class and produce the output SCJA ? public class PropertyCheck { public static void main(String args[]) { String myprop = System.getProperty("myprop"); System.out.println(myprop); } } A. java -Dmyprop = SCJA PropertyCheck B. java PropertyCheck -Dmyprop=SCJA C. java -Dmyprop=SCJA PropertyCheck D. java - Dmyprop=SCJA PropertyCheck E. java -Dmyprop=SCJA PropertyCheck.class 18. C# and the .NET platform A. may be run on many different operating systems including Microsoft Window XP, Linux, and Apple OS X B. have made Java obsolete C. compete with Java on Linux platforms D. are a Microsoft competitive response to Java and have some of the same advantages as Java has over C++ E. None of the above 19. Polymorphism: A. Is highly utilized in procedural programming. B. Is commonly known as method overloading in Java. C. Must not be used with data abstraction or inheritance. D. Causes code to be more complicated and reduces readability. E. None of the above 20. What results from the following code? 1: class MyClass { 2: void myMethod(int i) { 3: System.out.println("int version"); 4: } 5: void myMethod(String s) { 6: System.out.println("String version"); 7: } 8: public static void main(String args[]) { 9: MyClass obj = new MyClass(); 10: char ch = 'c'; 11: obj.myMethod(ch); 12: } 13: } A. Line 5 will not compile as void methods can't be overridden. B. An exception at line 11 C. Line 11 will not compile as there is no version of myMethod, which takes a char as argument. D. The code compiles and produces output: int version. E. The code compiles and produces output: String version. 21. A class with default access appears as what type of class to external packages? A. Friendly B. Public C. Private D. Protected E. None of the above 22. How to Avoid Collisions of Classes when two libraries are imported via * ? A. Use class names only B. Use class names including their qualification to avoid Collisions, like java.util.count c = new java.util.Count(); C. Use class name with a custom Tool library D. Use custom Tool library E. None of the above 23. In method binding, which of the following statement is false? A. Early binding is when the binding is performed before the program is run. B. All method binding in Java uses late binding whether or not a method is declared final because ordinarily it will occur and happens automatically. C. Late binding means that the binding occurs at run-time based on the type of object. D. All method binding in Java uses late binding unless a method has been declared final. E. None of the above 24. Which of the following is NOT an access specifier for Java? A. public B. protected C. friendless D. private E. None of the above 25. The data member VALUE in the statement public static final int VALUE = 100;... A. is usable outside the package, exists only once, and is a constant int. B. can be changed at runtime C. is not a compile time constant D. is a string E. None of the above 26. A variable that is declared in a class (and not in any method) is referred to as a A. member variable B. static member variable C. local variable D. static local variable E. None of the above 27. Which one of the following operators have the highest precedence? A. Arithmetic (and shift) * / % + - << >> B. Relational > < >= <= == != C. Logical (and bitwise) && || & | ^ D. Unary + - ++ -E. None of the above 28. Members with which access specifier are accessible only to the methods of that class? A. private B. public C. friendly D. protected E. None of the above 29. The garbage collector: A. Is a feature of Java. B. Finds objects no longer being referenced and releases the memory used by those objects. C. Makes programming in Java easier than C++. D. All of the above. E. None of the above 30. If no access specifier is used, what is the default? A. friendly B. private C. public D. protected E. None of the above 31. Java was created as a more efficient version of what other programming language? A. PASCAL B. C C. FORTRAN D. C++ E. None of the above 32. Supporting polymorphism requires that Java implement: A. late (aka run time) binding. B. early binding. C. book binding. D. All of the above E. None of the above 33. How does Java avoid the issue of name collision? A. By building classes into libraries. B. By making all names of all files the same or similar. C. By allowing the library designer to change the internal workings of the class without worrying about how it will affect the client programmer. D. By controlling the names with the package keyword, the package naming scheme, and the import keyword. E. None of the above 34. In the following code, what does the keyword "final" indicate? void convert(final int feet, int inches){ //... } A. The data in the "feet" argument cannot be modified within the method. B. The "feet" argument must be initialized immediately within the method. C. The method cannot be called from another package. D. The argument name "feet" cannot be changed. E. None of the above 35. The final keyword can be used with: A. Compile and run time constants which are primitives and object references. B. Methods to prevent an inheriting class from changing its meaning. C. Classes to disallow inheritance. D. All of the above E. None of the above 36. Java is most closely related to: A. Javascript B. C/C++ C. BASIC D. Visual Basic E. None of the above 37. What is function overloading? A. Happens when you declare too many functions in a Java block of code. In java this limit is fixed to 65536 functions B. It's the assigning of many tasks to one (or more) methods. It's an OOP milestone C. It's the assigning of the same name to many methods. It can be useful in presence of similar methods which behaves differently or have different parameters D. 38. What happens in this code fragment? 1: 2: 3: 4: 5: 6: 7: ... String a = new String("Test"); String b = new String("test"); if (a==b) System.out.println(" Same"); else System.out.println(" Different"); A. Prints "Different", because a and b points to strings which are different for letter casing, and Java is case-sensitive B. Prints "Same", because the "==" operator is overridden in the String class C. Prints "Different", and it should do the same with any value D. Prints "Same", and it should do the same with any value E. None of the above. 39. When an object of a derived class is created, the default constructor for the base class is called: A. always, and before the constructor for the derived class. B. always, and after the constructor for the derived class. C. only if it explicitly called by the derived class constructor. D. only if no other base class constructor is called by the derived class constructor. E. None of the above 40. Java uses dynamic binding which A. occurs during compile time B. occurs at run-time C. occurs after compilation and before file linking D. occurs during an object upcast E. None of the above 41. Which of the following is NOT true with respect to Java access modifiers A. private methods are accessible from only that class which defined the method B. public methods can be accessed from other classes C. protected methods can be accessed from the class which defined the method and also from the classes derived from it. D. Friendly classes can be accessed from all the classes in the current package. E. None of the above 42. Which of the following is NOT true about cleanup and the garbage collector? A. Java does have the C++ concept of a destructor. B. In Java, the practice is to forget about objects rather than destroy them. C. If you want to do your own cleanup, you need to explicitly write a special method to do it. D. To guard against an exception, you must put any cleanup in a finally clause. E. None of the above 43. Which of the following statements is true? A. You can only have one main method per file. B. You can only have one class per file. C. You can have only one public class per file D. You can have as many public classes per file as required E. None of the above 44. Where can the key word final be used? A. on member variables B. on member methods C. on class definitions D. All of the above E. None of the above 45. Like any Human language Java provides a way to A. stay awake at night B. express concepts C. wake up in the morning D. talk to people from long distances E. None of the above 46. Polymorphism is also known as: A. Dynamic binding B. Late binding C. Run-time binding D. All of the above E. None of the above 47. Assume you have just entered some Java code into a source file with no public classes. You now wish to save a compile it. Which of the following will work? A. Save it in a file called MyClass.jav and compile it with javac MyClass.jav B. Save it in a file called 1999Work.java and compile it with javac 1999Work.java C. Save it in a file called MyClass.java and compile it with javac MyClass D. All of the above E. None of the above 48. Given: 1: package payroll; 2: final public class EmployeeNames { 3: public static final String[] names = {"Paul", "Adam", "Jansky"}; 4: public static String[] getNames() { 5: return names; 6: } 7: } And the following: 8: package client; 9: class TraderNames extends EmployeeNames { 10: public static String[] traders = {"Ziggy", "Niko", "Chris"}; 11: } Which of the following statements is true? A. The file with class EmployeeNames will not compile. B. The file with class TraderNames will not compile. C. The files will both compile, but an error will occur when the class TraderNames is instantiated. D. The files will compile and when either class is instantiated, it will work fine. E. None of the above. 49. What will happen when you attempt to compile and run the following code snippet? public static void main(String[] args) { Boolean b = new Boolean("TRUE"); if (b.booleanValue()) { System.out.println("Yes : " + b); } else { System.out.println("No : " + b); } } A. The code will not compile. B. It will print - Yes : true C. It will print - Yes : TRUE D. It will print - No : false E. It will print - No : FALSE 50. The Creator of Java is? A. Dennis M Ritchie B. James Gosling C. Bruce Eckel D. Brian W. Kernighan E. None of the above 51. the Java programming language is derived from A. Pearl B. C/C++ C. BASIC D. JavaScript E. None of the above 52. What is connecting a method call to a method body is called? A. Binding B. Wind C. Stringed D. Brass E. None of the above 53. What will be printed when you execute the following code? class X { Y b = new Y(); X() { System.out.print("X"); } } class Y { Y() { System.out.print("Y"); } } public class Z extends X { Y y = new Y(); Z() { System.out.print("Z"); } public static void main(String[] args) { new Z(); } } A. Z B. YZ C. XYZ D. YXYZ E. None of the above. 54. What is pure substitution? A. Substitution of one method for another with exactly the same interface. B. A derived class that has exactly the same interface as the base class. C. Substitution of one plugin for another with exactly the same functionality. D. A derived class with exactly the same methodology as another derived class. E. None of the above 55. Package access allows A. access from any private class. B. access from any class in the same library. C. access from any class in the same directory. D. B and C. E. None of the above 56. What is the order of constructor calls for a complex object? A. 1. The body of the derived-class constructor is called. 2. Member initializers called in order of declaration. 3. Base class constructor is called. B. 1. Base class constructor is called. 2. Member initializers called in order of declaration. 3. The body of the derived-class constructor is called. C. 1. Member initializers called in order of declaration. 2. Base class constructor is called. 3. The body of the derived-class constructor is called. D. 1. Member initializers called in order of declaration. 2. The body of the derived-class constructor is called. 3. Base class constructor is called. E. None of the above 57. Which of the following statements are true? A. A constructor may not be declared as private B. A Constructor with no arguments will be the default constructor C. Constructors cannot be overloaded D. A call to a constructor in a parent class can only be made from within a constructor. E. None of the above. 58. Without exception, in Java a compilation unit(file) must have: A. A public class with the same name as the file. B. A private class with the same name as the file. C. A public class with a constructor name the same as the file. D. A public class with the same name as the file and a main method. E. None of the above 59. Can methods be overloaded on return values? A. No. Because all methods have a unique name. B. Yes. You can overload methods using return values. C. No. Because methods can be called ignoring the return value. D. No. Because this leads to ambiguous code. E. None of the above 60. Any private methods in a class A. must be explicitly final. B. are final, but can be overridden. C. are implicitly final and cannot be overridden. D. are implicitly overridden. E. None of the above 61. What will be the result of executing the following code? 1: boolean a = true; 2: boolean b = false; 3: boolean c = true; 4: if (a == true) 5: if (b == true) 6: if (c == true) 7: System.out.println("Some things are true in this world"); 8: else 9: System.out.println("Nothing is true in this world!"); 10: else if (a && (b = c)) 11: System.out.println("It's too confusing to tell what is true and what is false"); 12: else 13: System.out.println("Hey this won't compile"); A. The code won't compile B. "Some things are true in this world" will be printed C. "Hey this won't compile" will be printed D. None of these E. 62. Which of the following ways to grant access to class members is considered "fundemental" to Java Beans? A. Java Bean Access Specifier B. Default Access Methods C. Accesor/Mutator Methods D. Public Access Specifier E. None of the above 63. What happens here? import java.util.*; public class ch3 { public static void main (String[] args) { int i = 'a' + 1; char c = 'b'; if ((char)i = c) { System.out.println ("yup"); } else { System.out.println ("nope"); } } } A. It prints the string 'yup' because 'a'+1 is in fact equal to 'b'. B. C. D. E. It won't compile, you can't add 1 to a character You can't cast an integer to a character in the if statement The if statement won't compile because it requires a boolean expression. None of the above 64. All classes of the java.lang package are available by default and need no special import statements. A. The statement is true. B. The statement is false. C. 65. What does friendly mean. A. All the other class in the current package and all other classes outside of this package have access to the friendly member. B. All the other class in the current package have access to the friendly member, but to all other classes outside of this package it appears as private. C. All other classes outside of the current package have access to the friendly member. D. Some the other class in the current package have access to the friendly member, but to all other classes outside of this package it appears as private. E. None of the above 66. What is the output for the following? class Vehicle { Vehicle() { System.out.println("Vehicle constructor"); } } class Chevy extends Vehicle { Chevy() { System.out.println("Chevy constructor"); } } public class Pickup extends Chevy { Pickup() { System.out.println("Pickup constructor"); } public static void main(String[] args) { Pickup p = new Pickup(); } } A. Vehicle constructor Chevy constructor Pickup constructor B. Pickup constructor Chevy constructor Vehicle constructor C. Pickup constructor D. Pickup constructor Chevy constructor E. None of the above 67. A class member with no access specifier: A. is available to any other class. B. is only available to mutator or accessor functions. C. is only available to classes derived from the class of which it is a member. D. is available to classes in the same package as the class of which it is a member. E. None of the above 68. What is the meaning of protected in Java programming language? A. It deals with a concept called inheritance, which takes an existing class and adds new members to that class without touching the existing class, which we refer to as the base class. B. "Sort of friendly" which takes an existing class and adds old members to that class without touching the existing class, which we refer to as the base class. C. It deals with a concept called inheritance, which takes an existing class and adds new members to that class with touching the existing class. D. It is a concept called inheritance, which create a class and adds new members to that class without touching other objects, which we refer to as the base class. E. None of the above 69. Which of the following statements are true? A. There can be only one public class per compilation unit (file). B. If you have more than one public class in a compilation unit, the compiler will give an error message. C. The name of the public class must exactly match the name of the file containing the compilation unit, including the capitalization. D. All of the above. E. None of the above 70. Which of the following types of access does *not* have a keyword? A. public B. protected C. private D. friendly E. None of the above 71. Given the following output: I is 0 I is 1 Which of the following snippets of code will cause the output? A. for( int I = -1; I < 2; ++I) { System.out.println("I is " + } B. for( int I = 1; I < 3; ++I) { System.out.println("I is " + } C. for( int I = 0; I > 2; ++I) { System.out.println("I is " + } D. for( int I = 0; I < 2; ++I) { System.out.println("I is " + } E. None of the above I); I); I); I); 72. How does Java avoid name collisions?: A. The package keyword, the package naming scheme, and the import keyword give you complete control over names. B. The US Government Bureau of Java Names assigns unique class and package names for a small fee. C. Since Java is a compiled language, there is no need to worry about names. D. The programmers on a project have to coordinate names among themselves. E. None of the above 73. Which of these is not a primitive type A. char B. int C. boolean D. String E. None of the above 74. Polymorphism is also called: A. run-time binding B. late binding C. dynamic binding D. all of the above E. None of the above 75. In Java, scoping refers to: A. the algorithm used by the garbage collector to reclaim memory B. the use of mouthwash prior to prolonged programming episodes C. the visibility and lifetime of objects and variables D. the visibility of private and public variables inside a class E. None of the above 76. A class must be qualified as abstract: A. if all the methods it contains are abstract. B. if one of the methods it contains are abstract. C. if the class is derived from an abstract class and does not contain a definition for one of the base class abstract methods. D. all of the above. E. None of the above 77. Given the code: outter_loop { inner_loop { //A break; //B continue; //C continue something; //D break something; } } Which statement resumes processing at the beginning of the inner_loop? A. break; B. continue; C. continue something; D. break something; E. None of the above 78. What does OOP stand for? A. Open Object Programming B. Object Oriented Programming C. Original Operating Parameters D. Ordinary Object Persistence E. None of the above 79. What is the purpose of including the protected keyword in Java? A. To grant access of particular non public member(s) to non derived classes. B. To grant access of particular non public member(s) to derived classes. C. To deny access of particular public member(s) to non derived classes. D. To deny access of particular public member(s) to derived classes. E. None of the above 80. Which of the components of OOP allows you to create a family with the same interface? A. Polymorphism B. Inheritance C. Composition D. Abstraction E. None of the above 81. What is method overriding? A. An overloading alias B. It doesn't exists, you invented it C. Redefining a method inherited from superclass, you specify its tasks D. Redefining a method inherited from superclass, you generalize its tasks E. 82. What keyword is used to call the base-class constructor that has an argument? A. top B. super C. big D. base E. None of the above 83. The order of initialization when the class is inherited from a base class is A. the base class is initialized before the derived class constructors. B. the derived class constructors are intilized and then the base class constructor C. constructor needs to be called explicit with super keyword D. constructors will not be called when the class is inherited. E. None of the above 84. Java uses three explicit keywords to set the boundaries in a class, which of the following is not one of the three keywords? A. public B. private C. personal D. protected E. None of the above 85. Does a class that inherits methods from another class have any special or additional access or privileges to the 'private' methods of the inherited class? A. Yes, but it is restricted to read only access. B. Yes, it has full access. C. No, it has no access. D. It depends on how you inherit the methods. E. None of the above 86. Primitives that are fields in a class are automatically initialized to zero, but the object references are initialized to null. If you try to call methods for any of them you’ll get an exception. If you want the references initialized, you can do it legally except: A. At the stage where the objects are defined, which means that they always be initialized before the constructor is called. B. Right after you use the object, which is often called post-reference initialization. C. In the constructor for that class. D. Right before you actually need to use the object, which is often called lazy initialization. E. None of the above 87. When using Inheritance, the base class is initialized A. before the derived class can access it. B. simultaneously with the derived class. C. after the derived class is initialized. D. by explicitly writing the call to the base class constructor even if the constructor has no arguments. E. None of the above 88. Describes some thing you know about package. A. Because Java use package statement, class name collision will never happen. B. package is a key word; a package statement must appear at the first non-comment code in the file. C. package is a key word; a package statement must appear at the end of the file. D. package is a key word; a package statement may appear at any place you wish in the file. E. None of the above