Java基础上机题分类整理版.docx
《Java基础上机题分类整理版.docx》由会员分享,可在线阅读,更多相关《Java基础上机题分类整理版.docx(16页珍藏版)》请在冰豆网上搜索。
![Java基础上机题分类整理版.docx](https://file1.bdocx.com/fileroot1/2023-5/28/83197524-0e58-4963-be8e-dd726424c869/83197524-0e58-4963-be8e-dd726424c8691.gif)
Java基础上机题分类整理版
一、类和对象基础题(共13题)
1.编写一个Java应用程序,该程序中有3个类:
Lader、Circle和主类A。
具体要求如下:
Lader类具有类型为double的上底、下底、高、面积属性,具有返回面积的功能,包括一个构造方法对上底、下底、高进行初始化。
Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的功能,包括一个构造方法对半径进行初始化。
主类A用来测试类Lader和类Circle的功能。
2.按要求编写Java应用程序:
(1)编写西游记人物类(XiYouJiRenWu)
其中属性有:
身高(height),名字(name),武器(weapon)
方法有:
显示名字(printName),显示武器(printWeapon)
(2)在主类的main方法中创建二个对象:
zhuBaJie,sunWuKong。
并分别为他
们的两个属性(name,weapon)赋值,最后分别调用printName,printWeapon方法
显示二个对象的属性值。
3.编写Java应用程序。
首先定义一个描述银行账户的Account类,包括成员变
量“账号”和“存款余额”,成员方法有“存款”、“取款”和“余额查询”。
其次,
编写一个主类,在主类中测试Account类的功能。
4.编写Java应用程序。
首先,定义一个时钟类——Clock,它包括三个int型
成员变量分别表示时、分、秒,一个构造方法用于对三个成员变量(时、分、秒)
进行初始化,还有一个成员方法show()用于显示时钟对象的时间。
其次,再定义
一个主类——TestClass,在主类的main方法中创建多个时钟类的对象,使用这
些对象调用方法show()来显示时钟的时间。
5.编写Java应用程序。
首先,定义描述学生的类——Student,包括学号(int)、
姓名(String)、年龄(int)等属性;二个方法:
Student(intstuNo,Stringname,intage)
用于对对象的初始化,outPut()用于输出学生信息。
其次,再定义一个主类——
TestClass,在主类的main方法中创建多个Student类的对象,使用这些对象来测
试Student类的功能。
6.编写一个Java应用程序,该应用程序包括2个类:
Print类和主类E。
Print
类里有一个方法output()功能是输出100~999之间的所有水仙花数(各位数字的
立方和等于这个三位数本身,如:
371=33+73+13。
)在主类E的main方法中来
测试类Print。
7.编写Java应用程序。
首先,定义一个Print类,它有一个方法voidoutput(int
x),如果x的值是1,在控制台打印出大写的英文字母表;如果x的值是2,在
控制台打印出小写的英文字母表。
其次,再定义一个主类——TestClass,在主类
的main方法中创建Print类的对象,使用这个对象调用方法output()来打印出大
小写英文字母表。
8.按要求编写Java应用程序。
(1)建立一个名叫Cat的类:
属性:
姓名、毛色、年龄
行为:
显示姓名、喊叫
(2)编写主类:
创建一个对象猫,姓名为“妮妮”,毛色为“灰色”,年龄为2岁,在屏幕上输
出该对象的毛色和年龄,让该对象调用显示姓名和喊叫两个方法。
9.创建一个三角形类,成员变量三边,方法求周长,创建类主类A来测试它。
10.按要求编写Java应用程序。
(1)创建一个叫做People的类:
属性:
姓名、年龄、性别、身高
行为:
说话、计算加法、改名
编写能为所有属性赋值的构造方法;
(2)创建主类:
创建一个对象:
名叫“张三”,性别“男”,年龄18岁,身高1.80;
让该对象调用成员方法:
说出“你好!
”
计算23+45的值
将名字改为“李四”
11.按要求编写Java应用程序。
(1)创建一个叫做机动车的类:
属性:
车牌号(String),车速(int),载重量(double)
功能:
加速(车速自增)、减速(车速自减)、修改车牌号,查询车的载重量。
编写两个构造方法:
一个没有形参,在方法中将车牌号设置“XX1234”,速
度设置为100,载重量设置为100;另一个能为对象的所有属性赋值;
(2)创建主类:
在主类中创建两个机动车对象。
创建第一个时调用无参数的构造方法,调用成员方法使其车牌为“辽
A9752”,并让其加速。
创建第二个时调用有参数的构造方法,使其车牌为“辽B5086”,车速为150,
载重为200,并让其减速。
输出两辆车的所有信息
12.创建一个Point类,有成员变量x,y,方法getX(),setX(),还有一个构造方
法初始化x和y。
创建类主类A来测试它。
13.首先,编写一个类ChongZai,该类中有3个重载的方法voidprint();其次,
再编写一个主类来测试ChongZai类的功能。
二、数组相关(共4题)
14.已知2个一维数组:
a[]={3,4,5,6,7},b[]={1,2,3,4,5,6,7};把数组a与数组b
对应的元素乘积再赋值给数组b,如:
b[2]=a[2]*b[2];最后输出数组b的元素。
15.找出如下数组中最大的元素和最小的元素,
a[][]={{3,2,6},{6,8,2,10},{5},{12,3,23}}
16.按要求编写Java应用程序。
编写一个名为Test的主类,类中只有一个主方法;
在主方法中定义一个大小为50的一维整型数组,数组名为x,数组中存放着{1,
3,5,…,99}输出这个数组中的所有元素,每输出十个换一行;在主方法中定义一
个大小为10*10的二维字符型数组,数组名为y,正反对角线上存的是‘*’,其余
位置存的是‘#’;输出这个数组中的所有元素。
17.从键盘上输入一个正整数n,请按照以下五行杨辉三角形的显示方式,
输出杨辉三角形的前n行。
请采用循环控制语句来实现。
(三角形腰上的数为1,其他位置的数为其上一行相邻两个数之和。
)
1
11
121
1331
14641
15101051
三、继承相关(共13题)
18.实现如下类之间的继承关系,并编写Music类来测试这些类。
19.创建如下三个类:
(People类中的三个方法分别输出一些信息,ChinaPeople
和AmericanPeople类重写父类的三个方法)。
20.编写一个Java应用程序,该程序包括3个类:
A类、B类和主类E。
其中
类B是类A的子类,在子类B中新增了成员变量和成员方法,并且隐藏了父类
A的成员变量和重写了父类A的成员方法。
在主类E的main方法中,创建类B
的对象并赋给父类A的对象a,使用上转型对象a来测试上转型对象的一些特性。
21.编写一个Java应用程序,该程序包括3个类:
Monkey类、People类和主类
E。
要求:
(1)Monkey类中有个构造方法:
Monkey(Strings),并且有个publicvoidspeak()
方法,在speak方法中输出“咿咿呀呀......”的信息。
(2)People类是Monkey类的子类,在People类中重写方法speak(),在speak方法
中输出“小样的,不错嘛!
会说话了!
”的信息。
(3)在People类中新增方法voidthink(),在think方法中输出“别说话!
认真思考!
”
的信息。
(4)在主类E的main方法中创建Monkey与People类的对象类测试这2个类的功
能。
22.编写一个类A,该类创建的对象可以调用方法f输出小写的英文字母表。
然
后再编写一个A类的子类B,要求子类B必须继承类A的方法f(不允许重写),
子类B创建的对象不仅可以调用方法f输出小写的英文字母表,而且可以调用子
类新增的方法g输出大写的英文字母表。
最后编写主类C,在主类的main方法
中测试类A与类B。
23.实现一个名为Person的类和它的子类Employee,Employee有两个子类Faculty
和Staff。
具体要求如下:
(1)Person类中的属性有:
姓名name(String类型),地址address(String类型),
电话号码telphone(String类型)和电子邮件地址email(String类型);
(2)Employee类中的属性有:
办公室office(String类型),工资wage(double
类型),受雇日期hiredate(String类型);
(3)Faculty类中的属性有:
学位degree(String类型),级别level(String类型);
(4)Staff类中的属性有:
职务称号duty(String类型)。
24.编写一个Car类,具有final类型的属性品牌,具有功能drive;
定义其子类Aodi和Benchi,具有属性:
价格、型号;具有功能:
变速;
定义主类E,在其main方法中分别创建Aodi和Benchi的对象并测试对象的特
性。
25.按要求编写一个Java应用程序:
(1)编写一个矩形类Rect,包含:
两个protected属性:
矩形的宽width;矩形的高height。
两个构造方法:
1.一个带有两个参数的构造方法,用于将width和height属性初化;
2.一个不带参数的构造方法,将矩形初始化为宽和高都为10。
两个方法:
求矩形面积的方法area()
求矩形周长的方法perimeter()
(2)通过继承Rect类编写一个具有确定位置的矩形类PlainRect,其确定位置用
矩形的左上角坐标来标识,包含:
添加两个属性:
矩形左上角坐标startX和startY。
两个构造方法:
带4个参数的构造方法,用于对startX、startY、width和height属性
初始化;
不带参数的构造方法,将矩形初始化为左上角坐标、长和宽都为0
的矩形;
添加一个方法:
判断某个点是否在矩形内部的方法isInside(doublex,doubley)。
如在矩
形内,返回true,否则,返回false。
提示:
点在矩形类是指满足条件:
x>=startX&&x<=(startX+width)&&y=(startY-height)
(3)编写PlainRect类的测试程序
创建一个左上角坐标为(10,10),长为20,宽为10的矩形对象;
计算并打印输出矩形的面积和周长;
判断点(25.5,13)是否在矩形内,并打印输出相关信息。
26.定义类Human,具有若干属性和功能;定义其子类Man、Woman;
在主类Test中分别创建子类、父类和上转型对象,并测试其特性。
27.编写一个Animal类,具有属性:
种类;具有功能:
吃、睡。
定义其子类Fish
和Dog,定义主类E,在其main方法中分别创建其对象并测试对象的特性。
28.按要求编写一个Java应用程序:
(1)定义一个类,描述一个矩形,包含有长、宽两种属性,和计算面积方法。
(2)编写一个类,继承自矩形类,同时该类描述长方体,具有长、宽、高属性,
和计算体积的方法。
(3)编写一个测试类,对以上两个类进行测试,创建一个长方体,定义其长、
宽、高,输出其底面积和体积。
29.编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数
wheels和车重weight。
小车类Car是Vehicle的子类,其中包含的属性有载人数
loader。
卡车类Truck是Car类的子类,其中包含的属性有载重量payload。
每个
类都有构造方法和输出相关数据的方法。
最后,写一个测试类来测试这些类的功
能。
30.编写一个Shape类,具有属性:
周长和面积;
定义其子类三角形和矩形,分别具有求周长的方法。
定义主类E,在其main方法中创建三角形和矩形类的对象,
并赋给Shape类的对象a、b,使用对象a、b来测试其特性。
四、包和访问权限(共5题)
31.按要求编写Java应用程序:
①创建项目testpackage
在该项目下创建包pack1和包pack2
在pack1下创建类A和类B
在pack2下创建类B和类C
在pack1.B的main方法中创建一个类A的对象a
在pack2.C的main方法中创建一个类A的对象a
②在pack2.B中添加方法f如下:
publicvoidf(){
System.out.println("执行pack2包中的类B的方法f");
}
在pack2.C中创建pack2.B的对象b,并调用方法f
③在类A中添加如下三个成员变量:
int型的私有变量i
float型的变量f
double型的公有变量d
在pack1.B的main方法中为对象a的成员变量f和d分别赋值为2和3
在pack2.C的main方法中为对象a的成员变量d赋值为3
32.在包a中编写一个类Father,具有属性:
年龄(私有)、姓名(公有);
具有功能:
工作(公有)、开车(公有)。
在包a中编写一个子类Son,具有属性:
年龄(受保护的)、姓名;
具有功能:
玩(私有)、学习(公有)。
最后在包b中编写主类Test,在主类的main方法中测试类Father与类Son。
33.在包a中新建一个类A,在类A中有一个intadd(intm)方法,用来求1+2+…+m
的和。
在包b中新建一个类B,在类B中有一个intcheng(intn)方法,用来求n!
的结果。
在包c中新建一个主类C,调用A、B中的方法输出1+2+…+30的和,
以及10!
的计算结果。
五、接口(共7题)
34.编写2个接口:
InterfaceA和InterfaceB;在接口InterfaceA中有个方法void
printCapitalLetter();在接口InterfaceB中有个方法voidprintLowercaseLetter();然
后写一个类Print实现接口InterfaceA和InterfaceB,要求printCapitalLetter()方法
实现输出大写英文字母表的功能,printLowercaseLetter()方法实现输出小写英文
字母表的功能。
再写一个主类E,在主类E的main方法中创建Print的对象并赋
值给InterfaceA的变量a,对象a调用printCapitalLetter方法;最后再在主类E
的main方法中创建Print的对象并赋值给InterfaceB的变量b,对象b调用
printLowercaseLetter方法。
35.按要求编写Java程序:
(1)编写一个接口:
InterfaceA,只含有一个方法intmethod(intn);
(2)编写一个类:
ClassA来实现接口InterfaceA,实现intmethod(intn)接口方
法时,要求计算1到n的和;
(3)编写另一个类:
ClassB来实现接口InterfaceA,实现intmethod(intn)接口
方法时,要求计算n的阶乘(n!
);
(4)编写测试类E,在测试类E的main方法中使用接口回调的形式来测试实现
接口的类。
36.中国特色社会主义的体制中有这样的现象:
地方省政府要坚持党的领导和按
照国务院的指示进行安全生产。
请编写一个java应用程序描述上述的体制现象。
要求如下:
(1)该应用程序中有一个“党中央”接口:
CentralPartyCommittee,该接口中
有个“坚持党的领导”方法:
voidpartyLeader()
(2)该应用程序中有一个“国务院”抽象类:
StateCouncil,该抽象类中有个“安
全生产”的抽象方法:
abstractvoidsafetyInProduction()
(3)该应用程序中有一个“省政府”类:
Province,该类继承StateCouncil抽象
类并且实现CentralPartyCommittee接口;在实现partyLeader()方法时输出“我们
各省人民一定坚持党的领导!
”;在重写safetyInProduction()方法时输出“我们各
省人民一定按照国务院的指示进行安全生产!
”。
(4)该应用程序中有一个主类E,在主类E的main方法中创建Province类的对
象,来测试Province类的功能。
37.看下图实现如下接口和类,并完成Adventure中的主方法。
38.利用接口做参数,写个计算器,能完成+-*/运算
(1)定义一个接口Compute含有一个方法intcomputer(intn,intm);
(2)设计四个类分别实现此接口,完成+-*/运算
(3)设计一个类UseCompute,含有方法:
publicvoiduseCom(Computecom,intone,inttwo)
此方法要求能够:
1.用传递过来的对象调用computer方法完成运算
2.输出运算的结果
(4)设计一个测试类,调用UseCompute中的方法useCom来完成+-*/运算
49.按要求编写一个Java应用程序程序:
(1)定义一个接口CanFly,描述会飞的方法publicvoidfly();
(2)分别定义类飞机和鸟,实现CanFly接口。
(3)定义一个测试类,测试飞机和鸟,在main方法中创建飞机对象和鸟对象,
再定义一个makeFly()方法,其中让会飞的事物飞。
并在main方法中调用该方法,
让飞机和鸟起飞。
40.定义一个“点”(Point)类用来表示三维空间中的点(有三个坐标)。
要求如下:
(1)可以生成具有特定坐标的点对象。
(2)提供可以设置三个坐标的方法。
(3)提供可以计算该“点”距原点距离平方的方法。
(4)编写主类程序验证。