[學院]:資電學院
[系所]:資訊工程學系
[年級]:二
[學程]:
[課名]:物件導向設計
[老師]:張貴忠老師
[學期]:97-1
[類型]:期末考
Totally 100 points
1. (Basic Concepts - 20 pts) Just a brief explanation
(a) Event-driven programming事件驅動程式設計
(b) Polymorphism多型
(c) Base class / Derived class
(d) Abstract class 抽象類別
2. (Polymorphism - 10 pts) Please describe what is late binding, and what is early binding? Which one of above techniques is used for java to achieve Polymorphism?
3. (Inheritance - 10 pts) What are the differences between overloading and overriding?
4. (Inner Class - 10 pts) What is inner class? What are the advantages of using inner class?
5. (Polymorphism - 15 pts) What are the outputs of the following codes?
public class A
{
String msg;
public A()
{
this("I'm class A");
}
public A(String msg)
{
this.msg = msg;
}
public void sayHello()
{
System.out.println("A:" + msg);
}
}
public class B extends A
{
public B()
{
super("I'm class B");
}
public void sayHello()
{
System.out.println("B:" + msg);
}
}
public class C
{
public static void main(String[] args)
{
A obj1 = new A();
B obj2 = new B();
C mainObj = new C();
mainObj.showMessage(obj1);
mainObj.showMessage(obj2);
}
public void showMessage(A member)
{
member.sayHello();
}
}
6. (The final Modeifier - 15 pts) What are the meaning of final class, final variable, final method respectively?
7. (Access Modifiers - 20 pts) Given the following codes, and some compile-time errors exist in this program. Please precisely indicate the the line numbers of error statements in the program.
(Remember to briefly explain why the indicated statement is error.)
1 package mypackage;
2 public class A {
3 public int v1;
4 protected int v2;
5 int v3;
6 private int v4;
7 }
8 package mypackage;
9 public class B {
10 public B() {
11 A obj1 = new A();
12 obj1.v1 = 10;
13 obj1.v2 = 10;
14 obj1.v3 = 10;
15 obj1.v4 = 10;
16 }
17 }
18 package mypackage;
19 public class C extends A {
20 public C() {
21 v1 = 10;
22 v2 = 10;
23 v3 = 10;
24 v4 = 10;
25 }
26 }
27 import mypackage.A;
28 public class D extends A {
29 public D() {
30 v1 = 10;
31 v2 = 10;
32 v3 = 10;
33 v4 = 10;
34 }
35 }
36 public class E {
37 public E() {
38 A obj1 = new A();
39 obj1.v1 = 10;
40 obj1.v2 = 10;
41 obj1.v3 = 10;
42 obj1.v4 = 10;
43 }
44 }
沒有留言:
張貼留言