C)++a*b--+dD)a+b>=c+d
17.请说出下面程序的运行结果。
publicstaticvoidmain(String[]args)
{
intnNum1=6;
intnNum2=8;
System.out.println();
//nNum1不自加短路原则
System.out.println(((nNum1nNum2));
System.out.println("nNum1is"+nNum1);
System.out.println(((nNum1nNum2));
System.out.println("nNum1is"+nNum1);
}
§1.3流程控制语句
1.While与Do…While语句的区别是什么?
2.下面程序的输出结果是什么?
publicclassMyFirst
{
publicstaticvoidmain(Stringargs[])
{
intx=1,y,total=0;
while(x<=20)
{
y=x*x;
System.out.println(“y=“+y);
total=total+y;
++x;
}
System.out.println(“Totalis“+total);
}
}
3.设计程序求1到100的和。
4.请指出下面程序的错误:
swith(n)
{
case1:
System.out.println(“First”);
case2:
System.out.println(“Second”);
case3:
System.out.println(“Third”);
}
5.水仙花数是指其个位、十位、百位三个数的立方和等于这个数本身,求出所有水仙花数。
6.试利用for循环,计算1+2+3+4+5+…+100的总和。
7.利用do…while循环,计算1!
+2!
+3!
+…+100!
的总和。
8.使用循环嵌套,编写一个输出如下图形的程序:
*
* *
* * *
* * * *
* * * * *
§1.4Java应用程序Application与小应用程序Applet
1.Applet小应用程序的生命周期有哪些过程?
2.Applet小应用程序运行的过程怎样?
3.请编写一个小应用程序,在显示图片的同时播放音乐。
4.Applet可以做下列那些操作?
()
A)读取客户端文件 B)在客户端主机上创建新文件
C)在客户端装载程序库 D)读取客户端部分系统变量
第二章面向对象的JAVA语言
§2.1概述
1.面向对象编程语言的基本特征是什么?
2.常见的面向对象的程序设计语言包括哪些?
3.Java语言中,被static关键字修饰的成员变量与类变量有什么区别?
4.面向过程程序设计的核心是:
A.商业逻辑B.客观实体C.算法D.要解决的问题
5.面向对象技术中的对象具有状态,行为和_________等三个基本属性。
6.使用一个对象前,必须声明并___________它。
§2.2类、对象和方法
1.什么是对象?
什么是类?
对象与类的关系是什么?
2.类的定义中包括那些基本信息?
3.定义一个类包括定义类头和定义_______两个部分。
4.类变量与实例变量的区别?
5.类方法与实例方法的区别?
6.符合对象和类关系的是:
A.人和老虎B.书和汽车C.楼和建筑物D.汽车和交通工具
7.什么是方法,以及方法的作用?
8.举例说明方法的调用?
9.简述方法的递归调用过程?
10.什么是方法的重载?
11.什么是异常?
试列出三个系统定义的运行时异常类。
12.try-catch-finally语句的执行顺序是怎样的?
13.Java程序可以分为Application和Applet两大类,能在WWW浏览器上运行的是_________。
14.如果子类中的某个方法的名字、返回值类型和参数列表与它的父类中的某个方法完全一样,则称子类中的这个方法__________了父类的同名方法。
15.定义类头时能使用的修饰符是()。
A)privateB)staticC)abstractD)protected
16.下列方法定义中,正确的是()。
A)intx(){charch='a';return(int)ch;}
B)voidx(){...returntrue;}
C)intx(){...returntrue;}
D)intx(inta,b){returna+b;}
§2.3构造方法
1.构造方法在类中的作用是什么?
2.在创建派生类的对象的时候,基类与派生类中构造方法的调用顺序怎样?
3.以下哪个方法仅在Applet程序被创建和首次被载入支持Java的浏览器时被调用
A)paint()B)init()C)action()D)start()
4.在某个类A中存在一个方法:
voidGetSort(intx),以下能作为这个方法的重载的声明的是
A)VoidGetSort(floatx)B)intGetSort(inty)
C)doubleGetSort(intx,inty)D)voidGet(intx,inty)
5.有一个类A,以下为其构造函数的声明,其中正确的是()。
A)voidA(intx){...}B)A(intx){...}
C)a(intx){...}D)voida(intx){...}
6阅读程序,根据程序功能,在指定的空白处填上适当的语句或语法成分,使程序完整。
1).下面是一个类的定义。
class____________//定义名为myclass的类
{
__________intvar=666;
staticintgetvar()
{
returnvar;
}
}
2).下面是用户程序对Applet类中方法paint()的重新定义。
__________voidpaint(Graphicsg)
{g.____________("你好!
",10,20);}
3).下面是用户程序对Applet类中方法action()的重新定义,功能为从单行文本编辑区input中输入数据赋给k。
TextField类的对象input和int型变量k已在类体中正确说明。
public___________action(Evente,Objecto)
{if(e.target==input)
k=Integer.parseInt(_______.getText());
repaint();
returntrue;
}
7.请指出下面程序中的错误。
publicclassTestextendsBase
{
publicTest()
{
super();
}
publicstaticvoidmain(String[]args)
{
Testt=newTest();
Testt2=newTest("TestName");
}
}
classBase
{
Stringname;
Base()
{
System.out.println("BaseConstructor");
}
Base(Stringname)
{
this.name=name;
}
}
§2.4继承
1.是一种软件重用形式,在这种形式中,新类获得现有类的数据和方法,并可增加新的功能。
2.派生类构造方法可以通过关键字_______调用基类构造方法。
3.Java语言的类间的继承关系是()。
A)多重的B)单重的C)线程的D)不能继承
4.编程题
(1)根据下面的要求实现圆类Circle:
●Circle类的成员变量:
radius 半径
●Circle类的方法成员
Circle() 构造方法,将半径置为0
Circle(doubler) 构造方法,创建Circle对象时将半径初始化为r
doublegetRadius() 获得圆的半径值
doublegetPerimeter() 获得圆的周长
doublegerArea() 获得圆的面积
voiddisp() 将圆的半径、周长、面积输出到屏幕
(2)继承上题中的圆Circle类,派生圆柱体类Cylinder,要求如下:
●Cylinder类的成员变量:
height表示圆柱体的高
●Cylinder类的方法成员:
Cylinder(doubler,doubleh) 构造方法,创建Cylinder对象时将圆半径初始化为r,圆柱高初始化为h
doublegetHeight() 获得圆柱体的高
doublegetVol() 获得圆柱体的体积
voiddispVol() 将圆柱体的体积输出到屏幕
5.创建如下图所示继承层次结构中的类。
Employee对象应当有姓名、年龄和社会保险号码,除此之外SalariedEmployee对象还有周薪,HourlyEmployee对象有相应的基本工资和工作小时数,CommissionEmployee对象应当有佣金率和销售总额,BasePlusCommissionEmployee对象应当有对应的基本工资。
每个类有合适的构造方法和访问其成员属性的方法。
请编写一个程序,实例化以上所有类的对象,输出相关员工的基本信息。
§2.5多态
1.实现如图所示的shape层次结构。
每个TwoDimensionalShape类应包含getArea方法,用来计算该图形的面积。
每个ThreeDimensionalShape类应包含getArea和getVolumn方法,分别用来计算该图形的面积和体积。
创建应用程序,该程序使用一个Shape引用数组来保存层次结构中的所有图形的具体类的对象,该程序打印每个数组元素所引用的对象。
此外,利用循环结构处理数组中的图形,以确定每个图形是TwoDimensionalShpae还是ThreeDimensionalShape类的对象,如果图形是TwoDimensionalShpae类的对象,则显示该图形的面积,如果是ThreeDimensionalShape类的对象,则显示该图形的面积和体积。
2.请指出下面程序中的错误
classFather
{
privateintage;
publicvoidsetAge(inta)
{
this.age=a;
}
publicintgetAge()
{
returnage;
}
publicvoiddisp()
{
System.out.println("ageis"+age);
}
}
classSonextendsFather
{
Stringname;
publicvoidsetName(Stringname)
{
name=name;
}
publicvoiddisp()
{
disp();
System.out.println("mynameis"+name);
}
}
publicclassTest
{
publicstaticvoidmain(Stringargs[])
{
Sons=newSon();
s.disp();
}
}
3.为了区分重载多态中同名的不同方法,要求()。
A)采用不同的形式参数列表B)返回值类型不同
C)调用时用类名或对象名做前缀D)参数名不同
§2.6抽象类与接口
1.什么是接口?
为什么要定义接口?
接口与类有何异同?
2.如何定义接口?
使用什么关键字?
3.一个类如何实现接口?
实现接口的类是否一定要重写该接口中的所有抽象方法?
§2.7包
1.Java中引入包的优点是什么?
2.如何将需要的外部类引入程序中?
如何引用包中的某个类?
如何引用整个包?
3.如何运行被打包后的字节码文件?
§2.8异常处理
1.什么是异常?
举出程序中常见的异常的种类?
2.Java中异常处理有什么优点?
3.在Java中,throw与throws有什么区别?
他们各自用在什么地方?
4.请设计一个Java程序,程序中要进行数组操作和除法操作,要求对所设计的程序可能出现的异常进行处理。
5.定义一个邮件地址异常类,当用户输入的邮件地址不合法时,抛出异常。
(其中邮件地址的合法格式为****@****,也就是说必须是在@符号左右出现一个或多个其他字符的字符串。
)
第三章数组、向量和字符串
§3.1数组
1.判断下面的说法是否正确。
如果错误,请说明原因
一个数组中可以存放多个不同类型的值
数组下标通常是float型的
二维数组其实质是一维数组的一维数组
2.找出并改正下面各程序段中的错误
设intb[]=newint[10];
for(inti=0;i<=b.length;i++){
b[i]=1;
}
设inta[][]={{1,2}{3,4}};
a[1,1]=5;
inta[10]=newint[10];
3.写出下面代码的输出结果
int[][]a=newint[10][5];
System.out.println(a.length);
System.out.println(a[3].length);
4.设有一个名为table的数组,试执行以下任务
a)声明并创建该数组为3行3列的整数数组。
b)该数组包含多少个元素?
c)用for结构将数组的每个元素初始化为各自下标的和(假设整数变量i,j为控制变量)
5.将一个数组中的值按逆序重新存放。
假定原来的顺序为4,1,3,5,9,2,1。
要求改为1,2,9,5,3,1,4。
6.现有类Book定义如下
ClassBook{
privateStringauthor;//作者
privateStringISBN;//书号
privatedoubleprice;//价格
publicStringgetAuthor(){returnthis.author;}//返回作者名
publicvoidsetAuthor(Stringauthor){this.author=author;}//设置作者名
publicStringgetISBN(){returnthis.ISBN;}//返回书号
publicvoidsetISBN(StringISBN){this.ISBN=ISBN;}//设置书号
publicdoublegetPrice(){returnthis.price;}//返回书价
publicvoidsetPrice(){this.price=price;}//设置书价
}
请用1个数组存放随机产生的10个书籍对象的数据,并显示其中书价最高图书的书号。
(要求使用对象数组完成)
7.设有定义语句inta[]={66,88,99};则以下对此语句的叙述错误的是()。
A)定义了一个名为a的一维数组B)a数组有3个元素
C)a数组的下标为1~3D)数组中的每个元素是整型
§3.2向量
1.填空题
a)Java的类 提供了类似于数组数据结构的功能,可以动态调整自身大小。
b)如不指定容量的增加值。
每次需要增加容量时,系统自动将Vector的大小。
c)向量中存放元素的类型必须是 。
2.下面代码的输出是什么?
Vectorvector=newVector(3,2);
for(inti=0;i<6;i++){
v.add("element"+i);
System.out.println(vector.capacity()+""+vector.size());
}
3.下面代码的输出是什么?
Vectorvector=newVector();
for(inti=0;i<6;i++){
vector.add("element"+i);
}
vector.remove
(1);
vector.remove(3);
4.简单解释Vector类的下列各个方法的作用:
a)add
b)insertElementAt
c)set
d)remove
e)removeAllElements
f)removeElementAt
g)firstElement
h)lastElement
i)isEmpty
j)contains
k)indexOf
l)size
m)capacity
5.解释为什么向一个当前大小小于其容量的Vector对象中插入元素是一个相对较快的操作,而向一个大小等于其容量的Vector对象插入元素是一个相对较慢的操作。
§3.3字符串
1.Java中的字符串有什么特点?
它与C/C++中的字符串有何区别?
2.判断正误。
如果是错误的,请说明理由。
a)在使用(==)运算符比较String对象时,如果String对象包含相同的值,则比较结果为真。
b)在创建String对象后可以修改。
3.对于以下各题,请编写一条语句以执行所指定的任务。
a)比较s1中的字符串与s2中的字符串是否具有相同的内容。
b)使用+=运算符将字符串s2添加到字符串s1的后面。
c)确定s1中字符串的长度。
4.编写一个使用String类中的indexOf()方法确定一字符串在另一字符串中出现次数的应用程序。
例如字符串“this”在字符串“thisismyfirstprogram.this…”中出现了2次。
第四章Java图形界面设计
§4.1图形用户界面和Swing常用组件
1.使用Swing中的组件创建图4.1.12所示的GUI。
2.使用Swing中的组件创建图4.1.13所示的GUI。
3.使用Swing中的组件创建图4.1.14所示的GUI。
图4.1.12图4.1.13
图4.1.14
§4.2对话框和菜单
1.对话框有和两种。
这两种对话框的区别是:
当对话框弹出时,只有关闭此对话框才能继续进行其它窗口的操作;当对话框弹出时,即使不关闭,也可以对后面的的窗口进行操作。
2.用户可以使用类提供的方法来生成各种标准的对话框,也可以使用类根据实际需要生成自定义对话框。
3.方法将JMenuBar添加到JFrame中。
4.类可用于创建菜单对象。
方法可以在菜单中放置分隔条。
5.使用Swing中的组件绘制图4.2.12所示的对话框。
(提示:
使用setBounds()方法来设置组件在对话框中的位置和大小)
图4.2.12
§4.3布局管理器
1.Java中有那些布局管理器?
各有什么特