a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 74|回复: 0

[考试试题] JAVA试题:SCJP035经典104题分析笔记(一)

[复制链接]
发表于 2012-8-4 12:33:16 | 显示全部楼层 |阅读模式
1., b* s" X2 z8 U1 K* @( f" \
1) public class returnit{ ) C; V/ I! |7 x2 @0 z4 Q: j
2) returntype methoda(byte x, double y){
, [/ c3 E+ `5 Z% S3 w, C0 \3) return (short)x/y*2; 8 I. o4 D4 Y4 e, a
4) } # o& I$ t# a0 Q! [& E) O" e7 E4 I% d
5) } . e! l) A# H+ G+ x7 k
what is valid returntype for methoda in line 2? 5 s- W. t( K) c" T
题意:第2行中methoda方的正确返回值类型是什么?& X" C9 F2 Z/ t# R
剖析:这是一道考绩基本常识的问题,斗劲简单,涉及强制类型转换和表达式数据类型的转换和进级。强制类型转换的体例是在变量或数值前加上需要转换的类型,如(int)12.23 则duble类型的数值被强行转化为int型,当然此时回丢失踪信息。表达式数据类型的转换原则是在不呈现信息丢失踪的情形下自动进级到一种更长的形式。
( k* p6 ]  M5 |+ K4 q解答:判定return后的表达式的值类型即可,(short)的强制转换仅为x,按照自动晋升原则表达式的值被晋升到y的类型既double,所以谜底为double 。  c" V, E% h% y1 V% y
注重:(1)、不带尾巴的数值轻易被轻忽他的真实类型,好比12和12.0,其中12为int或short型,12.0为duble型。
1 c: f' Q0 d& n' o5 N(2)、二元操作符(如+、-、*、/)当其操作的对象是根基数据类型时,会把其操作的变量自动晋升为至少到int型,首要针对byte和short型。例如如下代码会犯错:
9 Z; O. o. W, h3 c: o( l9 m6 Bshort a , b, c;0 u& {1 L- o0 j0 c
a = 1;- c# m3 B* P3 ?4 ]0 M
b = 2;! P9 e8 ^' t* i" p5 _) K  e
c = a + b;//编译指示这行犯错了,possible loss of precision  ^( {* g6 y) J8 d6 y  v0 h
示例:w01.java( a; T* S; {  z- |" q
2.
, |" [" `+ B9 V+ Y$ H1) class super{
# ]; a7 f8 y6 ~" W" y; H' _2) public float getnum(){return 3.0f;} 7 B0 T6 n# H$ [5 T; ^& s$ t
3) }
% p  }$ J: |4 I& p0 @) o4)   d4 @! c! u# o1 s: g  }. O' c9 U
5) public class sub extends super{ , {1 n7 l3 d; a
6) , ?. D9 ~) m% c8 d2 x3 A$ J" ^, ]' Y
7) } $ m. r% r. {% N; r6 }. s
which method, placed at line 6, will cause a compiler error? . r; R. d& y! _/ K9 [
a. public float getnum(){return 4.0f;}   w- K2 O% `; `  O- @
b. public void getnum(){}
7 ~! |. Q+ P& p+ l1 jc. public void getnum(double d){}
& {, G) U/ P0 q' U) Kd. public double getnum(float d){return 4.0d;}
! j4 H6 G7 f: o' @0 r  _8 t0 L4 e题意: 哪一种体例界说放在第6行,会发生编译错误?. b  s1 ]; O* X; n3 Y0 q+ A
剖析: 此为一道同时考绩overload和override的问题。overload是操作统一个函数名和分歧的参数形式来完成分歧的功能,分歧的参数形式的意思是:有和无参数的区别;参数个数的区别;参数类型的区别和参数的枚举体例的区别。overload不能操作返回值来区分。overload现象可呈此刻同类或父类与担任类中。override的是类担任过程中呈现的现象,是对父类体例的改写,所以必需知足以下前提:1、体例名不异;2、返回类型不异;3、参数完全不异。
; ^5 @" m. p& O' S5 d9 [  z5 F% E解答:分袂将谜底放在第6行,a暗示对super类的getnum体例进行override,正确;b语句因为参数与父类的同名函数的参数不异所以不是overload,而返回值与父类同名函数返回值分歧所以不是override,进而犯错。c暗示对担任自super类的getnum体例进行overload,正确;d同c
2 v" H+ ~; S( F  h6 |% u注重: 考若干好多个常识点时要综合剖析,但首先要连结清醒,弄清考绩的意向。
: @7 C' B5 W' T8 j& ~/ a6 @: A示例: w02.java
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-22 10:05 , Processed in 0.243691 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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