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)将容器划分为五个区域,分为东南西北和中心,工具区域的宽度为该区域琅缦沔组件的最佳宽度,高度为容器的高度减去南北区域的高度,这是一个可能转变的值,而南北区域的宽度为容器的整个宽度,高度为组件的最佳高度,中心区域的高度为容器的高度减去南北区域的高度,宽度为容器的宽度减去工具区域的宽度。 |