Java复习资料一.doc_第1页
Java复习资料一.doc_第2页
Java复习资料一.doc_第3页
Java复习资料一.doc_第4页
Java复习资料一.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第15次课(总复习一)问题1:1. 64+5 | 5+34 & !(65*2) 结果是什么?结果是True 。 (提示:表示式中有算术运算、关系运算和逻辑运算?它们的优先级别如何?在Java规定,算术运算符优先级高于关系运算符,关系运算符优先级又高于逻辑运算符。又问:在算术运算符中,加、减、乘、除、取余数优先级又如何呢?(“*” 、“ / ” 、“% ”优先级属于同一级别,同一级别的,则从左至右运算)。 还可以看一个例子:假设a,b, c是一元二次方程的系数,则如下Java表达式中,x1和x2的写法等价,思考为什么?为什么等价?在运算符中,+和 - -是难点,问题如下:int x=3,y=5,z;z=x+-y 等于多少?根据优先, 运算后,z是7,x是3,y是4。但有时你解释不通,例如, z=x+y,计算机却解释为:z=(x+)+y,而套用上面的解释却不灵了,气死你!就这样,计算机是约定,约定是一个灵活的东西,你就是没辙。因此,我们写程序时,遇到z=x+y,最好写为:z=(x+)+y或写为z=x+(+y)下面两个东西的结果必须知道。int x=1,y=2,z; 如果分别执行 z=y*+x 和 z=y*x+ ,则前者是4,后者是2。下面给一个题目让你思考一下,如何?-l 阅读下列程序,程序结束后,i、j和k3的值分别是多少?public class abcpublic static void main(String args) int i=2; int j=2; boolean k1,k2,k3; k1=+i=j+; - 切记,赋值运算符优先级最低。 k2=i=j-; k3=k1 | k2; System.out.println(i); System.out.println(j); System.out.println(k3); 结果为:3 2 true-问题2:表达式 float p=5;p+=1/2的结果是( )。a. 5.5 b. 5.0 c. 0 d. 0.5 怎么样才是5.5呢?- 同学上来帮我做一下。累计赋值运算符还是要求会,看p.27 ,但是我们更喜欢叫复合运算符。p+=1/2 p=p+1/2设int a=5, int sum=6 问你: a*=(sum+100)/2 考试时,不要慌张,一定要理解为: a=a*(sum+100)/2) - 有人会问你: a+=a- =a*=a 不要做(听老师),如果你一定要做,需要注意,在表达式中每一次做完后是无法把值赋给载体的。什么是“把值赋给载体”呢?看如下例子:int a=2; a=(a=a+3)*a*6; 结果是150,知道为什么吗?有人说为什么可以这样写表达式,主要原因是java语言的母体是C语言。但这个结果a=a*6*(a=a+3);又不一样,作何解释呢?不知道!-问题3:在下述Java语言语句中,错误的创建数组的方法是:A. intintArray;intArray=newint5 ; - 分两不走。B. intintArray=newint5 ; - 合而为一C. intintArray=1,2,3,4,5; - 注意看:挪动一个位置也可以。D. intintArray5=1,2,3,45;l 关于数组给一个题目如下:阅读如下题,给出结果。public class A public static void main(String args) int sum=0;int a=1,2,3,4,5,6,7,8,9;for(int i=0;i3;i+)for(int j=0;j3;j+)sum+=aij+aji;System.out.print(sum+#); (1)你学过矩阵的转置吗?-你看出来了吗?(2)为什么不是18#30#42#呢?注意前一次对后一次的影响。我的观点是:中间过程一定要写出来。如下写出,我认为你就成功一半了。我相信,你见多了就能做出来,我们平时作业中写过矩阵转置程序。-问题3:Java语言中数值数据的类型能自动转换,按照从低到高的转换次序为:A、byteintshortlongfloatdouble B、byteshortintlongfloatdoubleC、byteshortintfloatlongdouble D、shortbyteintlongfloatdouble 参考p.26 - 选B。- 作为结论把它记下来。切记:反过来不行。同时记住:sum=+500 - 将数值型数据500自动转换为字符型数据字母=+A - 将字符A 自动转换为字符型数据如果是输出:System.out.println(A+32); - 结果是什么呢?假如我要求你输出:把大写字母转换为小写字母,该如何修改?请同学上来帮我改一下:- 这在机考题中常出现,在这里我只是把它提炼出来讲解。既然讲到了类型的自动转换,就提一下强制转换。System.out.println(float)1/2); - 什么等价?叫同学来写时间关系,算了吧!float z=10*Math.pow(2,5); - 为什么这样写是错的呢?其实,实际解决问题时碰到的情况比这个要复杂得多,你还记得十六进制转换为十进制的题目吗?不妨看下面一句:(这里假设number是整型数据)number=number+(int)(m*Math.pow(16, str2.length()-i-1); 做2个下问题:l 已知字符a的ASCII码为97,执行下列语句的输出是_。System.out.println(int)b+,+(char)(b+1);A.98,b B.98,c C.98,99 D.语句不合法l 以下程序代码的输出的结果是( )。intx=53; doubley=1+x/2;System.out.println(y);A.27.0 B.27.5 C.1.026 D.27-问题4:熟练掌握公式如果要在闭区间 a,b 任意产生一个随机数,则公式为:(int)(Math.random( )*(b-a+1)+a 或(int)(Math.random()*(b-a+1)+a) 我给你出一个题目:l (int)( Math.random( )*150)表示的是_范围内的整数。看p.75,这就是我们书上反复出现的一个语句。 a.0,150 b.0,149 c. 1,150 d.1,149l 看如下的选择填空题(该题就涉及到以上的公式问题):上课大家一起做。-有很多同学关心面向对象部分怎么考?下面我们就从这方面给大家组织几个问题。1Java源程序编译后生成字节码文件,它由虚拟机解释执行。 T (你知道用什么生成字节码文件?javac.exe。 虚拟机呢?java.exe)2JDK是Microsoft公司推出的含Java类库、编译器、解释器等的Java开发工具包。(F) 答: JDK - 是SUN公司推出的,不是微软公式推出的电子产品。3Java语言源程序文件编译后,生成后缀为.class的文件。 ( T )4Java语言是一种支持多线程编程的语言。(T)5JAVA是一种平台无关的编程语言。(T) 6Java系统的标准输入对象是System.in,标准输出对象是System.out。(T)7Java的字符类型采用的是Unicode编码,但所占字节由具体软硬件环境决定(F)。答:Unicode编码与具体软硬件环境无关,均为16位,即2个字节。 因此,char c=”u0043”书写正确(换算为十进制要注意,其中的43是16进制的,能不能找一个汉字给我看一下,我成全你,如char cc=u7801)打5个大家看一下:8在Java的方法中定义一个常量要用const关键字。(F)答:使用final9Java是大小写敏感的语言 (T) (例如Sum和sum不是同一个变量)10若要导入包中的类,可用input语句。(F)答:使用import关键字。11Java程序中的public类名称必须与存放该类的文件名相同。 (T)12Java的double类型数据可以精确表示任何实数。(F)13Java中的int型数据和变量在内存中占2个字节,使用long型的常量必须在其后加上后缀L,如345L。(F,你查查书,好像后半句是对的。)13JAVA方法的实参都是按值传递的,即把实参的值复制给了形参。(F)答:有一个特例,数组名做实际参数时,传递的是地址,而不是值。14语句int a=new int34;可以创建一个整型二维数组。T15可以用new来创建一个类的实例,即“对象”。 (T)16可以通过“对象名.方法”来访问类的成员方法,也可以通过“类名.方法”来访问类的成员方法(T)。你知道“类的成员方法”与“非类的成员方法”(我们讲课时把它说为“实例成员方法”)的区别吗?17在同一个Java源程序中,只能有一个标识为public的类。T18在Java类中使用private定义的成员方法(Method),该方法只能被本类中的其他方法所调用,而不能被其他类(包括该类的子类方法调用。- (T)(答:这就是“封装”的含义。)19JAVA程序的不同类中的方法都可以相互调用。(F)(可能有两层意思:一是没有考虑封装的现象,二是.有这样一句话,类成员方法中只能调用类成员方法,不能调用实例成员方法;而实例成员方法既可以调用类成员方法,也可以调用实例成员方法。)20用private修饰符声明的成员变量只能由该类中的方法访问。(T)21final关键字可以定义常量或成员变量,该变量不能被修改;当使用final定义类后,这个类不能被继承。(T)22一个类可以定义多个方法,但只能定义一个构造方法。(F)(答:允许多个构造方法)23Java的类不允许多重继承,但接口支持多重继承。(T)(讲课时专门提到过这个问题)24一个Java类可以有多个父类,这称作多继承。(F)25子类继承父类,那么子类将继承父类的所有内容包括构造方法。(F) (答:构造方法是不能被继承的,但可以调用的,知道那个吗?即super(参数列表)语句吗?25方法的重载机制是Java语言中类的多态性的体现。T (答:方法重载和覆盖都体现了面向对象设计程序的多态性。)26抽象类中的方法必须是抽象方法(即只有方法头没有方法体),不能有任何其他代码。(F)(如果有人这样问你,接口中的方法只有方法头,这句话是对的,正如p.110说的那样,接口可以看作完全抽象的类,接口是一组常量和抽象方法的集合。)27Java中定义一个抽象类,其前面用abstract来修饰。(T)28在子类中声明了与父类同名的成员变量时,可以使用super或this来指明使用的是父类中的成员变量还是子类中的成员变量。(对还是错?)。 (分析一下:什么时候使用super来说明呢?如果子类中声明了与父类中同名的成员变量时,为了引用父类的成员变量,必须使用super;什么时候使用this呢?this的本意是“当前”的意思。当成员方法中存在与成员变量同名的参数时,引用或访问成员变量时其名前要加this关键字。大家可以参考我给大家做的平时作业。)29声明包(package)的语句必须放在程序的第一行。(T)30在java中若要使用一个包中的类时,首先要求对该包进行导入,其关键字是package(F)31在java源程序中,若要用到关键字package、import和public class,则它们的次序是:import,package,public class。(F。正确的次序是:package ,import,public class。)32. Java有些类不需要用import导入(引入),这些类位于java.lang包中,在程序运行时java解释器将自动引入java.lang包。(T,如System类、String类就在java.lang包中, 因此可以不写: import java.lang.System 或写 import java.lang.String,或干脆写为:import java.lang.* )如果有人问你这个问题,你该如何答呢?System类在哪个包中? (1)java.util (2)java.io (3)java.awt (4) java.lang34在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句。(T)。我的第14次作业做了吗?做一下是有帮助的,不要以为上机不考就不做了。我只能说两句话:你总是太“行”太懒、“行”太懒或者说,你不懂这门课的学习方法,我只能表示遗憾。(关于异常处理,再说一下它的思想,什么是异常?异常是指程序运行过程中出现的非正常现象,例如用户输入错误、除数为零、数组下标越界等。异常一旦出现,系统应该能自动识别或捕获异常,这样的程序才是好程序。-你能不能给个关于面向对象的程序给我们看一下呢?好的!调用第1个构造方法,。好题目,考静态变量,又称内成员变量l 看下面程序,写结果。( 注意:变量x、y、z应该是类成员变量(即静态变量),系统仅为类成员变量分配一个存储单元。该答案应该选图(2),关于类成员变量还可以看下一题。)l 下列程序运行输出结果为( )。 class Course String no; int score; static int max=-1; - 这是一个类成员变量 public Course(String n, int s) no = n; score = s; public static void findmax(int s) max = Math.max(max, s); public class Statistic public static void main(String args) Course c1, c2, c3; c1 = new Course(1001, 80); Course.findmax(c1.score); c2 = new Course(1002, 60); Course.max=60;c3 = new Course(1001, 70); c3.findmax(70); System.out.println(max=+Course.max); A、max=-1 B、max=60 C、max=70 D、max=80l 阅读以下程序,写结果。class T1 static int m,n; T1() m=15; n=2*m; System.out.print(m+#+n+#); public class A1 extends T1public static void main(String args) int n=0; T1 temp=new T1(); System.out.print(m+#+temp.n+#); /考什么知识点?其中一个是:方法的本地变量 ,一进入自动产生,如果离开自动消失。 /如果希望是父类中的m,该如何访问?能写出两种方法吗? -从考试范围来说,今天还有一个任务。看以下几个问题:l 下面哪个描述是正确的 ()A、Applet程序中不需要main()方法,也不能有main()方法B、Application程序中可以没有main()方法C、Applet程序中可以不定义init()方法D、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论