NEW
Font size
WorksheetsAndroid開發1_物件導向
Total questions: 39
Worksheet time: 39mins
程式語言支援函式(Functions)或方法(Methods)。關於使用函式或方法的優點,下列敘述何者不正確?
簡化程式複雜度
避免程式碼重複
增加程式可重用性
加快程式執行速度
程式語言會使用「變數」來暫存資料,其中「區域變數」(Local Variables)具有特定限制與特性,有關於Java的「區域變數」,下列敘述何者不正確?
在程式的方法(Methods)內宣告的變數稱為區域變數
區域變數的有效範圍僅限於宣告該變數的方法內
在程式的方法定義中宣告的輸入參數(Parameters)也屬於該方法的區域變數
方法內宣告的區域變數可以和宣告的輸入參數同名
撰寫程式時應該善用「註解」(Comments)以增進程式的可讀性。下列何者是Java或Objective-C的常用註解符號?
\\
#
/* */
--
關於堆疊(Stack)的特性,下列敘述何者正確?
後進先出
後進後出
先進先出
以上皆是
下列何者為編譯式程式語言?
Javascript
Perl
Java
PHP
為了提高程式維護性,下列哪一種流程控制不建議使用?
if else
goto
switch case
block
使用下列何種流程控制時,最需注意別陷入無窮迴圈的情況?
while
if-else
switch
try-catch
Java或Objective-C程式語言事先定義一組「逃逸序列」(Escape Sequences)以代表各種特定字元。下列何者不是Java或Objective-C的「逃逸序列」?
\n
\t
\c
\r
程式語言一般會要求變數宣告時必須指定變數的識別名稱(Identifier),下列何者不是Java合法的識別名稱?
num3
_num3
$num3
3num
下列何者不是Java語言的基本資料型態?
int
long
double
decimal
Java語言一般支援實體變數存取控制機制,下列敘述何者正確?
protected實體變數可以被任何類別定義的方法直接存取
private實體變數可以被任何子類別定義的方法直接存取
public實體變數可以被任何子類別定義的方法直接存取
以上皆是
下列何者關鍵字,無法在 Java 語言中使用?
public
private
internal
protected
程式語言一般支援選擇性控制結構。下列有關於Java或Objective-C程式語言之選擇性敘述(Selection Statements),何者正確?
if後面一定要有else才能組成合法敘述
if後面可有多個else以組成合法敘述
else前面一定要有if才能組成合法敘述
以上皆是
物件導向的特性,下列選項何者不正確?
封裝(Encapsulation)
多型(Polymorphism)
繼承(Inheritance)
抽象(Abstract)
請問下列何者不是物件導向語言的特徵?
繼承
封裝
多載
多型
下列何者不是物件導向程式設計的一部分?
Inheritance(繼承)
Multitasking(多工)
Polymorphism(多型)
Encapsulation(封裝)
下列有關物件導向程式語言的變數(Variables)的描述,何者不正確?
實體變數(Instance Variables)可被物件內的所有方法使用
區域變數(Local Variables)是在方法內宣告的變數
在方法內之內層區塊可以使用外層區塊的區域變數
區域變數不能和實體變數同名
請問下列哪一個敘述,最能描述封裝(Encapsulation)的定義?
物件的資料可被外部函式存取
物件的方法可被外部函式呼叫
物件的資料僅可被物件的方法存取
物件的資料皆不可被存取
在物件導向程式中,使用繼承(Inheritance)的主要目的為何?
避免重複的行為與實作定義
封裝類別內部的實作
保護資料不被任意存取
提升程式撰寫技巧
「繼承」是物件導向程式語言的重要概念之一。下列有關「繼承」的描述,何者不正確?
繼承可分成單一繼承或多重繼承兩種
Java或Objective-C程式語言僅支援多重繼承
Java或Objective-C程式語言支援多階層式的繼承關係
子類別又稱為衍生類別(Derived Class)
在 Java 語言中要調用基底類別的成員必須符合下列哪些條件?
基底類別的成員可使用public 修飾字宣告,在衍生列中使用this關鍵字調用
基底類別的成員可使用public 修飾字宣告,在衍生列中使用super關鍵字調用
基底類別的成員可使用private 修飾字宣告,在衍生列中使用this關鍵字調用
基底類別的成員可使用private 修飾字宣告,在衍生列中使用super關鍵字調用
Java或Objective-C物件導向程式語言支援使用下列那一個關鍵字,使子類別可以呼叫父類別中的方法?
over
super
parent
above
關於物件導向程式語言的父、子類別,下列敘述何者不正確?
除了特定例外狀況外,子類別一般會繼承父類別的所有成員變數與方法
父類別又可稱為基礎類別(Base Class)
依據繼承階層狀況分類,子類別可分成直接子類別與間接子類別兩種
父類別為抽象類別時,該父類別之方法不能實作程式碼
物件導向程式語言一般支援多階層繼承機制,下列有關類別的建構子(Constructors)的執行順序,何者正確?
最下層的子類別的建構子最先完成執行
最上層的父類別的建構子最先完成執行
中間層的類別的建構子最先完成執行
執行順序不固定
關於建構子(Constructor),下列敘述何者不正確?
(A)
(B)
(C)
(D)
是屬於物件成員,不可以加上static修飾元
沒有傳回值(no return value)
名稱不須與類別(class)名稱相同
程式中若無定義建構子時,在程式編譯時會自動於該類別加上預設建構子
class A {
A() {
System.out.print("123");
}
}
class B extends A {
B(String s) {
System.out.print(s);
}
}
public class C extends B {
C() {super("456");
new B("789");
}
如果執行下列程式:
C x = new C();
請問螢幕上會看到下列何者?
123 456
123 789
123 456 789
123 456 123 789
你下列選項何者呈現物件導向中的關係:”A是一個B且擁有C”?
class A extends C { private B b; }
class B implements A { private C c; }
class A extends B { private C c; }
class C implements A { private B b; }
你正在設計一個類別 (Class),因為某些因素你將一部分的欄位規劃成公有成員 (public),另外將一部分的欄位規劃成私有成員 (private),請問這樣的行為稱之為?
繼承 (Inheritance)
封裝 (Encapsulation)
介面 (Interface)
多型 (Polymorphism)
關於Java語言的資料封裝(Data Encapsulation)機制,下列敘述何者正確?
一般利用物件的「private成員變數」搭配「private成員函式」而達成
一般利用物件的「public成員變數」搭配「private成員函式」而達成
一般利用物件的「private成員變數」搭配「public成員函式」而達成
一般利用物件的「public成員變數」搭配「public成員函式」而達成
關於封裝 (Encapsulation)的種類,下列敘述何者為誤?
(A)
(B)
(C)
(D)
private:只有class自己本身可存取,對應修飾字為private
default:與class相同套件 (package)皆可存取,無對應修飾字
protected:只有class自己本身以及子類別可存取,對應修飾字為 protected
public:所有class皆可存取,對應修飾字為public
當一子類別實作一個父類別已經實作的函式,這個動作被稱為?
Operator Overloading
Operator Overriding
Method Overloading
Method Overriding
有關覆寫(Override)的限制與注意事項,下列敘述何者不正確?
存取權限須小於原方法
方法中的參數列,不論數量、資料型別及擺放順序都必須相同
覆寫是發生在有繼承關係的類別中
若方法有回傳值,其回傳值型態需相同或原方法回傳值型別的子類別
物件導向程式語言支援方法覆寫 (Override)機制,下列描述何者正確?
方法覆寫即子類別重新定義父類別的建構子
方法覆寫就是一種方法多載 (Method Overloading)
子類別欲覆寫父類別的方法時,除了少數例外,原則上方法名稱、 參數列、回傳資料型別應該相同
以上皆是
關於物件導向程式語言的方法「多載」(Method Overloading),下列敘述何者正確?
多載方法的方法名稱必須相同
多載方法的參數名稱必須不同
多載方法的回傳資料型別必須相同
多載方法的存取權限必須使用public
關於下列虛擬碼,挑選出最適合的答案
class A() {
void func1() { }
}
class B 繼承 A {
void func1() { ... }
void func1(int i) { ... }
void func1(String s, int i){ ... }
}
class C 繼承 A {
void func1() { ...}
}
void main() {
A x = new B();
A y = new C();
}
請問類別B中的func1(int i),func1(String s, int i)屬於下列哪一項行為?
複寫(Overriding)
繼承(Inheritance)
多載(Overloading)
多型(Polymorphism)
Java語言支援「多型」(Polymorphism)機制。關於「多型」,下列敘述何者不正確?
「多型」的字面意思為「具有多種形態」
「多型」一般發生於父類別型別的指標指向子類別物件的情況下
「多型」發生的關鍵之一在於「方法多載(Method Overloading)」
「多型」讓透過父類別物件參考呼叫子類別物件的方法成為可行
請問下列哪一項,是用來要求一個類別(Class)必須實作特定的方法?
(A)
(B)
(C)
(D)
繼承(Inheritance)
封裝(Encapsulation)
介面(Interface)
多型(Polymorphism)
下列介面定義的敘述,何者正確?
interface A{ protected void ouch();}
interface A{ private void ouch();}
interface A{ final void ouch();}
interface A{ abstract void ouch();}
關於Java語言中的Interface,下列敘述何者不正確?
Interface不能包含有實作程式碼
Interface必須透過class實作程式碼
Interface的方法不能被覆載(override)
Interface可以被new關鍵字實體化,但必須有匿名類別實作
