Java面向对象程序设计实验与练习.docx
- 文档编号:3591920
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:41
- 大小:63.12KB
Java面向对象程序设计实验与练习.docx
《Java面向对象程序设计实验与练习.docx》由会员分享,可在线阅读,更多相关《Java面向对象程序设计实验与练习.docx(41页珍藏版)》请在冰豆网上搜索。
Java面向对象程序设计实验与练习
学号班级姓名
面
向
对
象
程
序
设
计
(Java)实验与练习册
方美玉编制
2009.2
常见错误信息
一、编译时错误:
1.javac:
Commandnotfound(命令找不到,或不是内部命令)
指javac.exe、java.exe等java环境参数没有设定或没有安装jdk
2.HelloWorldApp.java:
3:
Methodprintl(java.lang.String)notfoundinclassjava.io.PrintStream.System.out.printl(HelloWorld!
”);
键入的方法名printl不正确,方法prinln()的名字写成了printl。
错误信息中用符号”^”指示系统找不到的方法名,第一行中的第3表示错误所在的行数,即第3行(注释行不计算在内)。
对于系统不认识的标识符号,可能有以下几个原因:
(1)程序员拼写错误,包括大小写不正确;
(2)方法所在的类没有导入到当前的名字空间;
(3)实例所对应的类中没有定义要调用的方法
(4)其它原因
3.HelloWorldApp.java:
1:
PublicclassHelloWorldappmustbedefinedinfilecalled”HelloWorldApp.java”
文件HelloWorldApp.java中的公有类HelloWorldapp名字和文件名不一致。
Java规定,如果.java文件中包含一个公有类,则文件名与类名一致,文件名与类名不一致时会发生该错误。
此例中,名字中的字母a大小写不统一。
4.;expected表示本行缺少分号
5.}expected表示缺少}interfaceexpected表示}多余
二、运行时错误
1.Can’tfindclassHelloWorldApp
系统找不到名为HelloWorldApp的类文件,一般地,该错误意味着类名拼写和原文件名不一样,系统创建filename.java文件时使用的是类名,并且区分大小写
2.InclassHelloWorldApp:
mainmustbepublicandstatic
main左边缺少public和static
3.文件中含有的类个数错误
按java规则,在一个原文件中最多只能有一个public类,否则会发生运行时错误,如果一个文件中有多个公有类,则要把它们各自放到不同的文件中,文件中非公有类的个数不限。
4.层次错误
package语句import语句和类的定义一定要按顺序出现。
实验一及综合练习一Java简单程序设计
实验准备:
熟悉集成环境2006的使用。
1、启动JBuilder2006。
2、创建默认工程和设置:
如果窗口中有打开默认程序,请先执行File—CloseProjects—All—OK.
新建工程的方法:
例如工程名为选菜单File---NewProject---Name中填入工程名字(可以自己按照文件名命名规则取一个如:
a1),Directory:
选择一个存放练习的文件夹如e:
\jiangyi\example---finish。
其它默认,不需要改动。
3、加入.java文件:
File---Newclass---Name:
给原文件取名假设为MyFirstApp,其它默认。
进入程序编辑界面,发觉已经建立了一个简单java文件,删除除第一行package以外的已经自动写入的原来的内容;(输入相应原文件MyFirstApp.java的内容)。
4、选择Run菜单---configration---选择其中的运行配置—remove—此时可以使用默认配置运行了,找到工程窗口,右键单击工程窗口的MyFirstApp选runusingwithdefault可以运行程序(JB2006自动将原程序编译为与平台无关的字节码.class文件)
或者Buildtarget:
make—RunType:
Application—Mainclass—Browse--选择Application含有main文件的文件名—OK--用JBuilder的运行按钮(F9)就可以了.
输出结果在Message窗口,如果出现红色错误提示,则修改后再运行。
请观察一下e:
\jiangyi\example目录,可看到其中有一个a1文件夹,a1中的src原文件夹和一个classes输出.class文件夹。
如果要再编辑一个新的Java程序,重复DEF步骤,将相应的MyFirstApp改为相应新名称即可。
一、选择题
1.Javac是Java的(B)
A.解释器B.编译器C.小程序浏览器D.调试器
2.main方法是JavaApplication程序执行的入口点,关于main方法头以下(B)是合法的。
A.publicstaticvoidmain()B.publicstaticvoidmain(Stringargs[])
C.publicstaticintmain(String[]args)D.publicvoidmain(String[]args)
3.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。
这种面向对象程序特性称为(C)
A.隐藏B.覆盖C.重载D.Java中不支持此特性
4.不允许作为类及类成员的访问控制符的是(C)
A.publicB.privateC.staticD.protected
5.下面(C)不是面向对象编程的3个原则。
A.抽象B.封装C.继承D.多态
6.当在Java想引用包时,一般会使用(C)语句。
A.javacB.javadocC.importD.extend
二、填空题
1.Java具有的特点:
简单的、面向对象的、分布式的、健壮的、体系结构中立的、安全的、可移植的、解释的、高性能的、多线程的、动态的语言
2.开发与运行Java程序需要经过的三个主要步骤为编译源程序、编译生成字节码、解释运行字节码。
3.根据程序构成和运行环境不同,Java源程序分为两类:
JavaApplication程序、JavaApplet程序。
4.一个复杂的系统必然包括有多个对象,这些对象间可能存在的关系有三种:
包含、继承、关联
5.Java程序的工作机制是:
将Java程序源代码被译成字节码之后,交由Java运行环境(JRE)解释执行。
6.Java支持三种类型的注释分别是:
多行执行注释、单行注释、文档注释
7.类是指一个类(class)定义了将被一个对象集共享的结构和行为(数据和代码)。
8.包是指.由多个与某种特定用途相关的类组合而成,因此,可以将包理解成一个包含许多类的类库。
三、判断题
1.编译后的Java程序可以直接执行。
(×)
2.在Java程序中,通过类和接口的定义都能实现多重继承。
(×)
3.如果一个Java源程序文件中定义有4个类,则使用Sun公司的JDK编译器javac编译该源程序文件,将产生4个文件名与类名相同而扩展名为.class的字节码文件。
(√)
四、程序设计题
1.编写一个JavaApplet,使之能够在浏览器中显示”WelcomtoJavaAppletWorld!
”的字符串信息。
importjava.awt.graphics;
importjava.applet.Applet;
pub;icclassMyJavaZYAppletextendsApplent
{
publicvoid(Graphicsg)
{
g.drawString(“WelcometoJavaAppletWord!
”,10,20)
}
}
2.编程在屏幕上输出下面三行,并在JBuilder中调试运行:
ACupofHotJava!
ILikeHotJava!
:
)
IWillStudyJava!
实验二及综合练习二Java输入输出及基本语法
一、选择题
1.设a=8,则表达式a>>>2的值是(B)
A.1B.2C.3D.4
2.设x=1,y=2,z=3,则表达式y+=z--/++x的值是(A)
A.3B.3.5C.4D.5
3.设x=2,则表达式(x++)/3的值是(B)2/3为0.67用整形表示是0;
A.1B.0C.2D.0.67
4.Java中的字符类型采用的是Unicode编码方案,每个Unicode码占用(B)个比特位。
A.8B.16C.32D.64
5.若a的值为3时,下面程序段被执行后,c的值是(C)
c=1
if(a>0)
if(a>3)
c=2;
else
c=3;
else
c=4;
A.1B.2C.3D.4
6.Java定义了4个整数类型:
字节型(byte)、短整型(int)、长整型(long)其中int占用的内存为(C)
A.8bitB.16bitC.32bitD.64bit
7.Java浮点类型分为单精度浮点型(float)及双精度浮点型(double),其中float占用的内存为(C)
A.8bitB.16bitC.32bitD.64bit
8.字符类型中有一类特殊的字符叫转义字符,可用这些转义字符控制输出,下面(B)是换行字符。
A.\rB.\nC.\tD.\b
9.同优先级的运算符号在运算的时候按照结合性进行运算,Java语言的结合性分成两种,左结合和右结合,下面(B、C)运算符是右结合。
A.< =C.=(赋值)D.% 10.System包含三个预定义的流变量,下面(D)不是预定义的流变量。 A.inB.outC.errD.int 二、填空题 1.若x=5,y=10,则X 2.在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用2字节内存空间,这样,无论是中文字符还是英文字符,都是占用2字节内存空间。 3.设x=2则表达式(++x)*3的值是9。 4.若x=5,y=10,则x>y&&x++==y--的逻辑值为false。 5.若需要PhoneCard200类中声明变量additoryFee为浮点型双精度型的静态域并初始化其值为0.1,则应在类PhoneCard200的定义中加入一条域定义语句为: staticdoubleadditoryFee=0.1; 6.顺序执行以下两条语句的结果为: 4。 Stringstr=”中山大学”; System.out.println(str.length()); 7.字符串分成两大类: 一类是字符串常量,使用String类的对象表示;另一类是字符串变量,使用StringBuffer类的对象表示。 8.假设x、y都是float型,分别等于5和7,而x1,y1则是double型,分别等于5.0和7.0,那么x/y和x1/y1的值相等吗? b(a.相等b.不相等) 说明理由: 5/7将产生无限不循环小数,而float与douboe两种数据类型的精度不同,因此产生不相等的输出值。 10.在Java语言中,或运算符号是||。 11.在Java语言中变量分为四种,分别是局部变量、类变量、方法参数变量、异常处理参数变量。 12.在Java中共有8种基本数据类型: 字节型、字符型、短整型、整型、长整型、浮点型、双精度型、布尔型。 13.在控制台输入取字符串,使用BufferedReader中的readLine()方法。 三、判断题 1.左移运算是每左移一次,就相当于该值除以2,并且舍弃了余数,可以利用这个特点将一个整数进行快速的2的除法。 (×) 2.关系表达式的类型总是boolean型。 (√) 3.在Java中真值和假值可以用0和非0不用一个或多个关系运算符。 (×) 4.在逻辑AND的运算中,如果第一个运算数A为真,则不管第二个运算数是真或假,其运算结果为真。 (×) 5.a++b++(a、b是浮点型)是合法的Java语言表达式。 (×) 四、程序设计题 1.编写一个字符界面的JavaApplication程序,接受用户输入的10个整数,比较并输出其中的最大值和最小值。 importjava.io.*; publicclassClass1 {publicstaticvoidmain(String[]args) {inti,j,max,min; intx[]=newint[10]; Strngs; try{ System.out.print(”请输入十个整数: ”); for(j=0;j<10;j++) { Bufferedreaderbr=newBufferedreader(newInputStreamReader(System.in)); s=br.readLine(); x[j]=Integer.parseInt(s); } }catch(IOExpectione){} max=min=x[10]; for(i=1;i<10;i++) {if(max if(min>x[i])min=x[i];} System.out.println(“十个数中最大的是: ”+max); System.out.println(“十个数中最小的是: ”+min); } } 2.编写一个字符界面的JavaApplication,接受用户从键盘输入的一个正整数,然后统计输出从1到这个正整数的累加和。 importjava.io.*; publicclassSUM { publicstaticvoidmain(String[]args) {intn=-1,sum=0; while(n<1) try{ Bufferedreaderbr=newBufferedreader(newInputStreamReader(System.in)); n=Integer.parseInt(br.readLine());} catch(IOExpectione){} for(i=1;i<=n;i++) sum+=i; System.out.println(sum); } } 实验三与综合练习三控制语句与构造函数 一、选择题 1.编译运行以下程序后,关于输出结果的说明正确的是(C) publicclassConditionl {publicstaticvoidmain(Stringargs[]) {intx=4; System.out.println(“Valueis”+((x>4)? 99.9: 9));}}//遵循精确度最高的输出原则 A.输出结果为: Valueis99.99B.输出结果为: Valueis9 C.输出结果为Valueis9.0D.编译错误 2.编译并运行以下程序,以下描述(C)选项是正确的。 1.classX 2.{protectedStringtoString() 3.{returnsuper.toString();} 4.} A.编译通过运行无异常B.编译通过但运行时出错 C.行2出错不能编译成功D.不能成功编译,行3出错 3.运行以下程序段后,变量t1的值是(C) publicstaticvoidexchange(intx,inty) {inttemp=x; X=y; Y=temp; } publicstaticvoidmain(Stringargs[]) {intt1=2; intt2=3; exchange(t1,t2); } A.5B.4C.2D.7 4.运行以下程序段,变量t2的值是(D) publicstaticvoidexchange(intx,inty) {inttemp=x; X=y; Y=temp; } publicstaticvoidmain(Stringargs[]) {intt1=2; intt2=3; exchange(t1,t2); } A.5B.4C.2D.3 5.下面变量var的作用域范围是(C) 1.//… 2.intx; 3.switch(x){ 4.case0 5.{ 6.intvar; 7.//process 8.} 9.break; 10.case1: 11.{ 12.intvar1; 13.//process 14.} 15.break; 16.} A.1和16行之间B.4和8行之间C.6和8行之间D.6和14行之间 6.以下关于构造函数的描述正确的是(ABC) A.构造函数的方法名和类名相同 B.构造函数没有返回值 C.构造函数的主要作用是完成对类对象的初始化 D.构造函数可以由编程人员显示地直接调用 7.在循环语句中,当进入一个死循环时,可以按键盘的组合键(B)终止运行,可以达到程序被强行终止。 A.Ctrl+QB.Ctrl+CC.Ctrl+EscD.Ctrl+C 8.下面(A)语句可以用来退出循环,而循环提早退出当前循环进入下一轮是(B) A.breakB.continueC.returnD.switch 二、填空题 1.抽象方法是仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义,最终方法是不能被当前类的子类重新定义的方法。 2.Java语言类体内的方法有方法头和方法体组成,其定义的一般格式为: [public|private|protected][static][final][abstract][native][synchronized] 返回值类型方法名([形式参数表])[throws异常列表]{方法体语句}。 3.Java中的循环控制语句有for语句、while语句、do-while语句三种基本形式。 4.Java中选择控制语句有switch语句、if语句两种基本形式。 5.在闰年的判断中满足(a)能被4整除,但不能被100整除;(b)能被4整除,又能被100整除。 试用一个表达式来表达: (year%4==0&&year%100! =0)||(year%4==0&&year%100==0)。 6.While循环语句中一般包括: 初始化部分、循环体部分、迭代部分、终止部分四部分。 7.do—while循环的基本结构: {初始化部分} do { 循环体; [] }while(); 三、判断题 1.有的类定义时可以不定义构造函数,所以构造函数不是必需的。 (×) 2.当一个方法在运行时产生一个异常,则这个方法会终止,但是整个程序不一定终止运行。 (√) 3.判断下列各个循环结构是否合法: (1)(不合法i没有初始化) while(inti<7) {i++; System.out.println(“iis“+i); } (2)(不合法) intj=3; while(j) { System.out.println(“jis“+j); } (3)(合法) intj=0; for(intk=0;j+k! =10;j++,k++) { System.out.println(“jis“+”kis”+k); } (4)(不合法) intj=0; do { System.out.println(“jis“+j++); if(j==3) { continueloop; } }while(j<10); 4.在Java语言中控制结构分为顺序、分支、循环三种,而流程控制分为两种: 一种是判断选择,另一种是循环。 (√) 5.嵌套if语句中的一个else语句一定是它在同一个块中的最近的if语句,不会有其它情况出现。 (×) 6.在Java程序设计语言中,“方法和函数”是与类分不开的,每一个方法必定属于某一个类。 (√) 7.在Java的参数传递机制中参数传递有两种方式: 按值传递和按引用传递,其中按引用传递不会改变传递参数的值。 (×) 四、程序设计题 1.编程序计算1/1+1/2+1/3+……+1/100的值 publicclassSum { publicstaticvoidmain(String[]args) { doublesum=0.0; for(inti=1;i<=100;i++) sum+=1.0/(double)i; System.out.println(“sum=”+sum); } } 2.不用递归的方法,写出计算阶乘n的函数。 publicclassRet { publicstaticintfact(intn); {intret=n; for(i=1;i ret=ret*i; returnret; } } 3.比较两个数的大小(分别为10000.11、1999.33)并按从按从大到小输出。 Publicclassanswer3 publicstaticvoidmain(Stringargs[]) { doubled1=10000.11; doubled2=2004.33; if(d1<=d2) System.out.println(d2+”>=”+d1); else System..outprintln(d1+”>=”+d2); } } 实验四与综合练习四数组 一.选择题 1.写出程序段运行之后array数组的值(B) publicstaticvoidamethod(int[]a) { For(inti=0;i { A[i]=a[a.length/2+i];a[0]=a[1]=2; }a[1]=a[2]=3; }a[2]=a[3]=a[2]=3 //mainmethod Publicsataticvoidmain(stringargs[]) { //arraydefinition Int[]array=int[3]; Array[0]=1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 面向 对象 程序设计 实验 练习
![提示](https://static.bdocx.com/images/bang_tan.gif)