a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 85|回复: 1

[考试试题] JAVA认证历年真题:SCJP认证套题解析(3)

[复制链接]
发表于 2012-8-4 12:33:16 | 显示全部楼层 |阅读模式
41、Which of the following statements are legal?% y' E) G6 N# y* C5 P+ J
A. long l = 4990;, E. c; C8 y5 J8 v: y' E
B. int  i = 4L;3 J: I% ^, _% @
C. float f = 1.1;
2 @! }# u1 f- X0 eD. double d = 34.4;5 d) ?9 B7 s& i4 h3 n, K1 _
E. double t = 0.9F.
3 x; ^: Q0 a. N2 R(ade)# Z' j6 {! M, n& c/ }4 s3 u
问题问题:下面的哪些声明是正当的。  I+ m0 ?  Z) y
此题的考点是数字的暗示法和根基数据类型的类型自动转换,没有小数点的数字被认为是int型数,带有小数点的数被认为是double型的数,其它的使用在数字后面加一个字母暗示数据类型,加l或者L是long型,加d或者D是double,加f或者F是float,可以将低精度的数字赋值给高精度的变量,反之则需要进行强制类型转换,例如将int,short,byte赋值给long型时不需要显式的类型转换,反之,将long型数赋值给byte,short,int型时需要强制转换(int a=(int)123L;)。; Y( Z, V6 j" D' f
42、
3 |8 S/ ?! W2 I. @7 [  O! Cpublic class Parent {
- @! c* K7 w3 i, f/ B7 E5 b" `     int change() {…}9 }+ F7 M  p. m6 W. F
   }
6 [1 V1 C* P, N9 J( |/ A   class Child extends Parent {* w  {) ?& ^/ A9 `& Y8 L& _% ~
   ) j2 E0 J' x3 a
   }
3 c% N; C7 [: C( H3 dWhich methods can be added into class Child?
$ w% [4 J2 G9 l$ |+ Y4 AA. public int change(){}0 n. q4 @) X2 w$ a; o0 i+ \
B. int chang(int i){}
% h* K9 u6 m. S1 i: DC. private int change(){}
; |+ ~" r9 F  K7 _) {D. abstract int chang(){}8 B& C3 D: g$ A  F) i' C
(ab)
* X3 d" G8 r7 Z, Z" A. R, E6 H问题问题:哪些体例可被插手类Child。
% t. N0 O: e; H' O. w+ v9 d4 H这个问题问题的问题在第35题中有详尽的论说。需要注重的是谜底D的内容,子类可以重写父类的体例并将之声明为抽象体例,可是这激发的问题是类必需声明为抽象类,否则编译不能经由过程,而且抽象体例不能有体例体,也就是体例声明后面不能带上那两个年夜括号({}),这些D都不能知足。
. @' k5 S( I& U6 J! W$ \43、$ F$ b/ h/ }. q, P+ Q
class Parent {: ~4 w* x; N6 S9 ^# t
     String one, two;
& a1 c: |  K$ O( a2 C" s     public Parent(String a, String b){
0 b. }' D$ P& o$ c" g/ `        one = a;
2 F- O, m8 b( v        two = b;9 ?4 G4 C% ^4 b, M
     }
, b- W9 q. m9 {: H8 w: q     public void print(){ System.out.println(one); }
: x- L% t5 n5 Q* [! D) H! u. K; ]   }/ v, c( z& }4 O- D- l9 a
   public class Child extends Parent {" r" e% M/ f# ^
      public Child(String a, String b){0 b# B% m/ r- i2 s5 H' L! i7 a7 z
        super(a,b);
+ }1 }: O: Q8 l+ T& N9 x      }% n5 q) t6 F5 T* E1 n
      public void print(){
8 D3 l( {$ y9 o1 X9 X6 U! ?" ]           System.out.println(one + " to " + two);
, }- D0 }  _3 J! x* N0 _      }
6 W; p1 I# x# |" A      public static void main(String arg[]){: v% y9 E- c1 p' m+ o3 S2 n& w
           Parent p = new Parent("south", "north");           
; K$ B* h6 h( ~* K2 {           Parent t = new Child("east", "west");
" G4 p! k* |* o  a* E( o           p.print();
! `! `% @. t, H& M; l3 c           t.print();
9 O4 k1 G: T5 e! L% ?: Q! S      }
8 v! L* w2 h* X  U% w- m   }* c3 U+ L$ i: ~. k) C/ ?
Which of the following is correct?
) }* q6 Q$ `: |& R7 q; Z( yA. Cause error during compilation.
) Z7 j: G) V  m# rB. south
# _/ L6 O* }: B& L* w' w9 ?) g4 ?2 _   east
* J* b' P% B. G! XC. south to north& _' ^2 d8 I# m# t- b$ [9 ]
   east to west1 N6 g* b+ `. W/ I, C
D. south to north
, H. K$ r, K: m. k1 _   east
) `0 [- F; V7 z( ~3 h# dE. south& a% F6 x1 v" `
   east to west  |. e5 }! W4 x9 S4 Q1 n; ~2 @! W
(e)
" {- E7 x: m. m; A问题问题:下面的哪些正确。% _# r# O2 F3 {2 k: E2 y
A.    在编译时犯错。
% b: D0 c5 v  u' k1 r$ @; W; I8 |这个问题问题涉及担任时的多态性问题,在前面的问题中已经有讲述,要注重的是语句t.print();在运行时t现实指向的是一个Child对象,即java在运行时抉择变量的现实类型,而在编译时t是一个Parent对象,是以,如不美观子类Child中有父类中没有的体例,例如printAll(),那么不能使用t.printAll()。参见12题的论说。7 E5 H0 _. x. h* e3 v' ?" V7 A1 m
! o7 y+ K# F' Z$ i9 Z. e( g
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?0 l9 U8 u. x0 ?. w% c3 x& ?$ W
A. FlowLayout
* g' d! Y* _. e* b5 GB. CardLayout
2 ^1 A: K$ \* L+ vC. North and South of BorderLayout! E- ^: M  U% a9 e& p
D. East and West of BorderLayout3 j8 [% Z( H1 P& G
E. GridLayout
4 ^( E2 r( A! V$ c8 o7 h+ x% s+ l(d)! x2 N! T/ t1 t% E. V
问题问题:一个按钮放在一个框架中,在框架改变时只影响按钮的高度而宽度不受影响,应该使用哪个结构打点器?
5 i  x, g/ y/ x- R+ H' g2 T0 D这个仍是结构打点器的问题,流结构打点器(FlowLayout)将按照框架的巨细随时调整它琅缦沔的组件的巨细,搜罗高度和宽度,这个打点器不会约束组件的巨细,而是许可他们获得自己的最佳巨细,一行满了往后将不才一行放置组件;卡片打点器(CardLayout)一次显式一个插手的组件(按照插手时的关头字);网格打点器(GridLayout)将容器划分为固定的网格,容器巨细的改变将影响所有组件的巨细,每个组件的巨细城市齐截地转变;鸿沟打点器(BorderLayout)将容器划分为五个区域,分为东南西北和中心,工具区域的宽度为该区域琅缦沔组件的最佳宽度,高度为容器的高度减去南北区域的高度,这是一个可能转变的值,而南北区域的宽度为容器的整个宽度,高度为组件的最佳高度,中心区域的高度为容器的高度减去南北区域的高度,宽度为容器的宽度减去工具区域的宽度。
回复

使用道具 举报

 楼主| 发表于 2012-8-4 12:33:17 | 显示全部楼层

JAVA认证历年真题:SCJP认证套题解析(3)

</p>45、Given the following code:
. L4 {/ n/ o) n4 \, L, p    1)   class Parent {
' q9 h8 }& E. k& s6 D& \    2)     private String name;& g; F9 G! n' \3 C( o, i
    3)     public Parent(){}
: k% e$ N8 b3 B7 d" K) S1 J0 b6 P    4)   }
2 \  ]* p3 H- J2 g8 K/ X( Z    5)   public class Child extends Parent {2 s! w: o, B2 A; H5 b
    6)     private String department;# _+ J  v1 C& J8 `8 F! K0 h1 A1 a
    7)     public Child() {}
! Y2 ], B6 {; O  T; k6 n: C    8)     public String getValue(){ return name; }
; ^* q: T4 _3 l5 x. E0 J- Y    9)     public static void main(String arg[]) {8 W9 S) ^, U4 D+ E+ j' S
    10)       Parent p = new Parent();
  O% A$ ~( @  ]& v5 w, B    11)    }
2 H$ E/ H9 a& C6 ^0 D    12)  }
/ f$ f8 F% u# M( B" ~; s: m. k% B. Y# eWhich line will cause error?; M; r( ^0 x. z: ?
A. line 35 g' O0 z7 z" z- E+ |3 ]  ?
B. line 6" _( R* @% V  y0 [
C. line 7
; H4 w) k& R1 O4 sD. line 8
3 P3 l) u6 F+ D8 \9 v' [# m/ Y' sE. line 10
; {) x- M- ?% W# V2 S(d)
5 c/ Y3 g% r/ k; `问题问题:给出下面的代码:( r6 }* {- ]; q( c

0 E3 z$ F% d; v& Z4 i7 d哪些行将导致错误。$ }5 ]8 s) M8 {) N- n
第8行的getValue()试图访谒父类的私有变量,错误,参看前面有关变量类型及其浸染域的论说。, [2 }7 T# u2 i3 T4 A" t
46、The variable "result" is boolean. Which expressions are legal?. R4 c" g, i0 }' d% g
A. result = true;7 C7 z6 i+ k2 i( c& u( b; F) l
B. if ( result ) { // do something... }! _) x- v7 w+ b$ Z! D' |7 B& @
C. if ( result!= 0 ) { // so something... }
8 r+ j/ |8 ?# \, C* q% }3 d' {6 zD. result = 16 X0 _& K8 W; [( K( q
(ab)( s$ s  j" f2 y$ ^
问题问题:变量"result"是一个boolean型的值,下面的哪些表达式是正当的。
* T! g$ A9 V: O+ Q3 |Java的boolean分歧于c或者c++中的布尔值,在java中boolean值就是boolean值,不能将其它类型的值算作boolean措置。- P$ e! J5 a! s9 Y
47、Class Teacher and Student are subclass of class Person.
9 Z: i% B$ x" n    Person p;+ N$ ]" y6 ]# z* N  }9 Q0 O3 p
    Teacher t;. u3 h6 |: m* R. @# {# N1 S
    Student s;: V9 ~% @( I$ {7 r7 |  Y7 r* z. M
    p, t and s are all non-null.
' F2 V( ^, V: Q; O1 M    if(t instanceof Person) {  s = (Student)t; }
7 D& z: m* n5 gWhat is the result of this sentence?+ @7 l+ V1 @  h8 M. b1 T1 ]
A. It will construct a Student object.
9 ^# }/ I; u% d2 E. X% `B. The expression is legal.7 R0 r, u" V" Y" @3 d
C. It is illegal at compilation.
+ q- P* x$ U) H2 b, C4 n. [D. It is legal at compilation but possible illegal at runtime.
3 {* k# Y( N" f3 `9 E(c)/ t6 y" C: B1 A1 ^) g1 C5 {# M
问题问题:类Teacher和Student都是类Person的子类. t* p; W9 M9 v  {1 F- V

* P# }- |$ @) P+ h! b. op,t和s都长短空值
' s% h/ b9 J  H* _( d. r+ b8 n* ^4 F; B) b5 n( F; _: \7 ]
这个语句导致的结不美观是什么
; z7 ?" u. C, IA.    将机关一个Student对象。
, k4 a8 [/ V6 ]1 X* ~B.    表达式正当。
1 w2 F1 P5 P9 f. X/ PC.    编译时犯警。
& j2 v2 Q# k! q* W( W* u+ @D.    编译时正当而在运行时可能犯警。
: q( x) x: P4 u9 o) o& [/ C5 ginstanceof操作符的浸染是判定一个变量是否是右操作数指出的类的一个对象,因为java说话的多态性使得可以用一个子类的实例赋值给一个父类的变量,而在一些情形下需要判定变量到底是一个什么类型的对象,这时就可以使用instanceof了。当左操作数是右操作数指出的类的实例或者是子类的实例时都返回真,如不美观是将一个子类的实例赋值给一个父类的变量,用instanceof判定该变量是否是子类的一个实例时也将返回真。此题中的if语句的判杜缦慊有问题,而且将返回真,可是后面的类型转换是犯警的,因为t是一个Teacher对象,它不能被强制转换为一个Student对象,即使这两个类有配合的父类。如不美观是将t转换为一个Person对象则可以,而且不需要强制转换。这个错误在编译时就可以发现,是以编译不能经由过程。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-6-4 17:17 , Processed in 0.775660 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表