Java面向对象程序设计实验与练习.docx

上传人:b****4 文档编号:3591920 上传时间:2022-11-24 格式:DOCX 页数:41 大小:63.12KB
下载 相关 举报
Java面向对象程序设计实验与练习.docx_第1页
第1页 / 共41页
Java面向对象程序设计实验与练习.docx_第2页
第2页 / 共41页
Java面向对象程序设计实验与练习.docx_第3页
第3页 / 共41页
Java面向对象程序设计实验与练习.docx_第4页
第4页 / 共41页
Java面向对象程序设计实验与练习.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

Java面向对象程序设计实验与练习.docx

《Java面向对象程序设计实验与练习.docx》由会员分享,可在线阅读,更多相关《Java面向对象程序设计实验与练习.docx(41页珍藏版)》请在冰豆网上搜索。

Java面向对象程序设计实验与练习.docx

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=y的逻辑值分别为true和false。

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1