?? java認證歷年真題:scjp認證套題解析[3] .txt
字號:
JAVA認證歷年真題:SCJP認證套題解析[3]
2007-04-04 04:53:06 作者:王志南 來源:ITZERO收集整理 瀏覽次數(shù):77 文字大小:【大】【中】【小】
關(guān)鍵字:java
41、Which of the following statements are legal?
A. long l = 4990;
B. int i = 4L;
C. float f = 1.1;
D. double d = 34.4;
E. double t = 0.9F.
(ade)
題目:下面的哪些聲明是合法的。
此題的考點是數(shù)字的表示法和基本數(shù)據(jù)類型的類型自動轉(zhuǎn)換,沒有小數(shù)點的數(shù)字被認為是int型數(shù),帶有小數(shù)點的數(shù)被認為是double型的數(shù),其它的使用在數(shù)字后面加一個字母表示數(shù)據(jù)類型,加l或者L是long型,加d或者D是double,加f或者F是float,可以將低精度的數(shù)字賦值給高精度的變量,反之則需要進行強制類型轉(zhuǎn)換,例如將int,short,byte賦值給long型時不需要顯式的類型轉(zhuǎn)換,反之,將long型數(shù)賦值給byte,short,int型時需要強制轉(zhuǎn)換(int a=(int)123L;)。
42、
public class Parent {
int change() {…}
}
class Child extends Parent {
}
Which methods can be added into class Child?
A. public int change(){}
B. int chang(int i){}
C. private int change(){}
D. abstract int chang(){}
(ab)
題目:哪些方法可被加入類Child。
這個題目的問題在第35題中有詳盡的敘述。需要注意的是答案D的內(nèi)容,子類可以重寫父類的方法并將之聲明為抽象方法,但是這引發(fā)的問題是類必須聲明為抽象類,否則編譯不能通過,而且抽象方法不能有方法體,也就是方法聲明后面不能帶上那兩個大括號({}),這些D都不能滿足。
43、
class Parent {
String one, two;
public Parent(String a, String b){
one = a;
two = b;
}
public void print(){ System.out.println(one); }
}
public class Child extends Parent {
public Child(String a, String b){
super(a,b);
}
public void print(){
System.out.println(one + " to " + two);
}
public static void main(String arg[]){
Parent p = new Parent("south", "north");
Parent t = new Child("east", "west");
p.print();
t.print();
}
}
Which of the following is correct?
A. Cause error during compilation.
B. south
east
C. south to north
east to west
D. south to north
east
E. south
east to west
(e)
題目:下面的哪些正確。
A. 在編譯時出錯。
這個題目涉及繼承時的多態(tài)性問題,在前面的問題中已經(jīng)有講述,要注意的是語句t.print();在運行時t實際指向的是一個Child對象,即java在運行時決定變量的實際類型,而在編譯時t是一個Parent對象,因此,如果子類Child中有父類中沒有的方法,例如printAll(),那么不能使用t.printAll()。參見12題的敘述
44、A Button is positioned in a Frame. Only height of the Button is affected by the Frame while the width is not. Which layout manager should be used?
A. FlowLayout
B. CardLayout
C. North and South of BorderLayout
D. East and West of BorderLayout
E. GridLayout
(d)
題目:一個按鈕放在一個框架中,在框架改變時只影響按鈕的高度而寬度不受影響,應(yīng)該使用哪個布局管理器?
這個還是布局管理器的問題,流布局管理器(FlowLayout)將根據(jù)框架的大小隨時調(diào)整它里面的組件的大小,包括高度和寬度,這個管理器不會約束組件的大小,而是允許他們獲得自己的最佳大小,一行滿了以后將在下一行放置組件;卡片管理器(CardLayout)一次顯式一個加入的組件(根據(jù)加入時的關(guān)鍵字);網(wǎng)格管理器(GridLayout)將容器劃分為固定的網(wǎng)格,容器大小的改變將影響所有組件的大小,每個組件的大小都會同等地變化;邊界管理器(BorderLayout)將容器劃分為五個區(qū)域,分為東南西北和中間,東西區(qū)域的寬度為該區(qū)域里面組件的最佳寬度,高度為容器的高度減去南北區(qū)域的高度,這是一個可能變化的值,而南北區(qū)域的寬度為容器的整個寬度,高度為組件的最佳高度,中間區(qū)域的高度為容器的高度減去南北區(qū)域的高度,寬度為容器的寬度減去東西區(qū)域的寬度。
45、Given the following code:
1) class Parent {
2) private String name;
3) public Parent(){}
4) }
5) public class Child extends Parent {
6) private String department;
7) public Child() {}
8) public String getValue(){ return name; }
9) public static void main(String arg[]) {
10) Parent p = new Parent();
11) }
12) }
Which line will cause error?
A. line 3
B. line 6
C. line 7
D. line 8
E. line 10
(d)
題目:給出下面的代碼:
…
哪些行將導(dǎo)致錯誤。
第8行的getValue()試圖訪問父類的私有變量,錯誤,參看前面有關(guān)變量類型及其作用域的敘述。
46、The variable "result" is boolean. Which expressions are legal?
A. result = true;
B. if ( result ) { // do something... }
C. if ( result!= 0 ) { // so something... }
D. result = 1
(ab)
題目:變量"result"是一個boolean型的值,下面的哪些表達式是合法的。
Java的boolean不同于c或者c++中的布爾值,在java中boolean值就是boolean值,不能將其它類型的值當(dāng)作boolean處理。
47、Class Teacher and Student are subclass of class Person.
Person p;
Teacher t;
Student s;
p, t and s are all non-null.
if(t instanceof Person) { s = (Student)t; }
What is the result of this sentence?
A. It will construct a Student object.
B. The expression is legal.
C. It is illegal at compilation.
D. It is legal at compilation but possible illegal at runtime.
(c)
題目:類Teacher和Student都是類Person的子類
…
p,t和s都是非空值
…
這個語句導(dǎo)致的結(jié)果是什么
A. 將構(gòu)造一個Student對象。
B. 表達式合法。
C. 編譯時非法。
D. 編譯時合法而在運行時可能非法。
instanceof操作符的作用是判斷一個變量是否是右操作數(shù)指出的類的一個對象,由于java語言的多態(tài)性使得可以用一個子類的實例賦值給一個父類的變量,而在一些情況下需要判斷變量到底是一個什么類型的對象,這時就可以使用instanceof了。當(dāng)左操作數(shù)是右操作數(shù)指出的類的實例或者是子類的實例時都返回真,如果是將一個子類的實例賦值給一個父類的變量,用instanceof判斷該變量是否是子類的一個實例時也將返回真。此題中的if語句的判斷沒有問題,而且將返回真,但是后面的類型轉(zhuǎn)換是非法的,因為t是一個Teacher對象,它不能被強制轉(zhuǎn)換為一個Student對象,即使這兩個類有共同的父類。如果是將t轉(zhuǎn)換為一個Person對象則可以,而且不需要強制轉(zhuǎn)換。這個錯誤在編譯時就可以發(fā)現(xiàn),因此編譯不能通過
48、Given the following class:
public class Sample{
long length;
public Sample(long l){ length = l; }
public static void main(String arg[]){
Sample s1, s2, s3;
s1 = new Sample(21L);
s2 = new Sample(21L);
s3 = s2;
long m = 21L;
}
}
Which expression returns true?
A. s1 == s2;
B. s2 == s3;
C. m == s1;
D. s1.equals(m).
(b)
題目:給出下面的類:
…
哪個表達式返回true。
前面已經(jīng)敘述過==操作符和String的equals()方法的特點,另外==操作符兩邊的操作數(shù)必須是同一類型的(可以是父子類之間)才能編譯通過。
49、Given the following expression about List.
List l = new List(6,true);
Which statements are ture?
A. The visible rows of the list is 6 unless otherwise constrained.
B. The maximum number of characters in a line will be 6.
C. The list allows users to make multiple selections
D. The list can be selected only one item.
(ac)
題目:給出下面有關(guān)List的表達式:
…
哪些敘述是對的。
A. 在沒有其它的約束的條件下該列表將有6行可見。
B. 一行的最大字符數(shù)是6
C. 列表將允許用戶多選。
D. 列表只能有一項被選中。
List組件的該構(gòu)造方法的第一個參數(shù)的意思是它的初始顯式行數(shù),如果該值為0則顯示4行,第二個參數(shù)是指定該組件是否可以多選,如果值為true則是可以多選,如果不指定則缺省是不能多選。
50、Given the following code:
class Person {
String name,department;
public void printValue(){
System.out.println("name is "+name);
System.out.println("department is "+department);
}
}
public class Teacher extends Person {
int salary;
public void printValue(){
// doing the same as in the parent method printValue()
// including print the value of name and department.
System.out.println("salary is "+salary);
}
}
Which expression can be added at the "doing the same as..." part of the method printValue()?
A. printValue();
B. this.printValue();
C. person.printValue();
D. super.printValue().
(d)
題目:給出下面的代碼:
…
下面的哪些表達式可以加入printValue()方法的"doing the same as..."部分。
子類可以重寫父類的方法,在子類的對應(yīng)方法或其它方法中要調(diào)用被重寫的方法需要在該方法前面加上”super.”進行調(diào)用,如果調(diào)用的是沒有被重寫的方法,則不需要加上super.進行調(diào)用,而直接寫方法就可以。這里要指出的是java支持方法的遞歸調(diào)用,因此答案a和b在語法上是沒有錯誤的,但是不符合題目代碼中說明處的要求:即做和父類的方法中相同的事情??打印名字和部門,嚴(yán)格來說也可以選a和b。
(ad)
題目:下面的哪些敘述為真。
A. equals()方法判定引用值是否指向同一對象。
B. == 操作符判定兩個分立的對象的內(nèi)容和類型是否一致。
C. equals()方法只有在兩個對象的內(nèi)容一致時返回true。
D. 類File重寫方法equals()在兩個分立的對象的內(nèi)容和類型一致時返回true。
嚴(yán)格來說這個問題的答案是不確定的,因為equals()方法是可以被重載的,但是按照java語言的本意來說:如果沒有重寫(override)新類的equals(),則該方法和 == 操作符一樣在兩個變量指向同一對象時返回真,但是java推薦的是使用equals()方法來判斷兩個對象的內(nèi)容是否一樣,就像String類的equals()方法所做的那樣:判定兩個String對象的內(nèi)容是否相同,而==操作符返回true的唯一條件是兩個變量指向同一對象。從這個意義上來說選擇給定的答案。從更嚴(yán)格的意義來說正確答案應(yīng)該只有d。
11、Which statements about inheritance are true?
A. In Java programming language only allows single inheritance.
B. In Java programming language allows a class to implement only one interface.
C. In Java programming language a class cannot extend a class and implement a interface together.
D. In Java programming language single inheritance makes code more reliable.
(ad)
題目:下面關(guān)于繼承的哪些敘述是正確的。
A. 在java中只允許單一繼承。
B. 在java中一個類只能實現(xiàn)一個接口。
C. 在java中一個類不能同時繼承一個類和實現(xiàn)一個接口。
D. java的單一繼承使代碼更可靠。
在java中一個類只能有一個直接父類,但是可以實現(xiàn)多個接口,在繼承的同時可以實現(xiàn)接口,之所以取消多繼承的原因是多繼承使得代碼產(chǎn)生很多問題,而使用單一繼承則可以使代碼更可靠。
12、
1) class Person {
2) public void printValue(int i, int j) {/*…*/ }
3) public void printValue(int i){/*...*/ }
4) }
5) public class Teacher extends Person {
6) public void printValue() {/*...*/ }
7) public void printValue(int i) {/*...*/}
8) public static void main(String args[]){
9) Person t = new Teacher();
10) t.printValue(10);
11) }
12) }
Which method will the statement on line 10 call?
A. on line 2
B. on line 3
C. on line 6
D. on line 7
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -