期末复习JAVA题Word格式.docx
- 文档编号:18232348
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:61
- 大小:31.42KB
期末复习JAVA题Word格式.docx
《期末复习JAVA题Word格式.docx》由会员分享,可在线阅读,更多相关《期末复习JAVA题Word格式.docx(61页珍藏版)》请在冰豆网上搜索。
}
else
c=true;
if(c==true)
是回文数"
}else{
不是回文数"
)
3.数组逆序输出
publicclasssz{
inta[]={1,2,3,4,5,6,7,8,9,0};
for(inti=9;
i>
=0;
i--){
;
4.水仙花数
publicclasssxh{
inta,b,c;
for(inti=100;
=999;
a=i/10%10;
b=i%10;
c=i/100;
if(i==a*a*a+b*b*b+c*c*c)
;
5.素数
publicclassSushu{
publicstaticvoidmain(String[]args){
=200;
booleanb=false;
for(intj=2;
j<
=Math.sqrt(i);
j++){
if(i%j==0){
b=true;
break;
{b=false;
if(b==false)
6.最大公约数和最小公倍数
publicclassSz{
publicstaticvoidmain(String[]args){
inta,b,m;
Scanners=newScanner(System.in);
"
键入一个整数:
a=s.nextInt();
再键入一个整数:
b=s.nextInt();
deffcd=newdeff();
m=cd.deff(a,b);
intn=a*b/m;
最大公约数:
+m);
最小公倍数:
+n);
classdeff{
publicintdeff(intx,inty){
intt;
if(x<
y){
t=x;
x=y;
y=t;
while(y!
=0){
if(x==y)
returnx;
else{
intk=x%y;
x=y;
y=k;
}
returnx;
1、题目:
一个数如果恰好等于它的因子之和,这个数就称为"
完数"
。
例如6=1+2+3.编程
找出1000以内的所有完数。
publicclassshishu{
inti;
for(i=2;
i<
=1000;
i++){
intsum=0;
for(intj=1;
j<
=i/2;
j++){
if(i%j==0){
//;
sum=sum+j;
}
if(sum==i){
;
}
2.假如我们在开发一个系统时需要对员工进行建模,员工包含3个属性:
姓名、工号以及工资。
经理也是员工,除了含有员工的属性外,另外还有一个奖金属性。
请使用继承的思想设计出员工类和经理类。
要求类中提供必要的方法进行属性访问。
publicclassmanagerextendsyg{
protectedintaward;
publicstaticvoidmain(String[]args){
yga=newyg();
a.setdata("
张晓晓"
"
01234"
5000);
a.print();
managerb=newmanager();
b.setdata("
黄洋洋"
01235"
6000);
b.award=20000;
b.print();
奖金"
+b.award);
;
classyg{
protectedStringname;
protectedStringnum;
protectedintsalary;
voidsetdata(Stringxm,Stringgh,intgz){
name=xm;
num=gh;
salary=gz;
publicvoidprint(){
姓名:
+name);
工号"
+num);
工资"
+salary);
3.以点类作为基类,从点派生出圆,从圆派生圆柱,设计成员函数输出它们的面积和体积。
packagethird;
publicclassCircleextendspoint{
protectedintr;
Circle(intr,intx,inty){
super(x,y);
this.r=r;
publicdoublearea(){
return3.14*r*r;
publicclassCylinerextendsCircle{
protectedinth;
Cyliner(inth,intx,inty,intr){
super(x,y,r);
this.h=h;
publicdoublevolume(){
returnarea()*h;
Circlea=newCircle(2,2,4);
Cylinerb=newCyliner(2,2,3,4);
圆的面积是:
+a.area());
圆的体积是:
+b.volume());
publicclasspoint{
protectedintx;
protectedinty;
point(){
this.x=0;
this.y=0;
point(intx,inty){
this.x=x;
this.y=y;
4.定义一个抽象基类Shape,它包含三个抽象方法center()、diameter()、getArea(),从Shape类派生出Square和Circle类,这两个类都用center()计算对象的中心坐标,diameter()计算对象的外界圆直径,getArea()方法计算对象的面积。
编写编写应用程序使用Rectangle类和Circle类。
packageW1;
publicabstractclassShape
{
abstractvoidcenter();
abstractvoiddiameter();
abstractvoidgetArea();
publicclassSquareextendsShape{
@Override
voidcenter(){
}
voiddiameter(){
}
voidgetArea(){
publicclassCircleextendsShape{
voidcenter(){
}
voidgetArea(){
packageW1;
publicclassRectangleextendsSquare{
publicclassTest{
publicstaticvoidmain(String[]args)
{
Circlec=newCircle();
Squarer=newRectangle();
c.center();
c.diameter();
c.getArea();
r.center();
r.diameter();
r.getArea();
实现一个名为Person的类和它的子类Employee,
Manager是Employee的子类,设计一个接口Add用于涨工资,普通员工一次能涨10%,经理能涨20%。
具体要求如下:
(1)Person类中的属性有:
姓名name(String类型),地址address(String类型)并写出该类的构造方法;
(2)Employee类中的属性有:
工号ID(String型),工资wage(double类型),工龄(int型),写出该类的构造方法;
(3)Manager类中的属性有:
级别level(String类型),写出该类的构造方法;
publicclassperson{
privateStringname;
privateStringaddress;
publicperson(Stringname2,Stringaddress2){
publicvoidPerson(Stringn,Stringa){
this.setName(n);
this.setAddress(a);
}
publicvoidsetName(Stringn){
this.name=n;
publicvoidsetAddress(Stringa){
this.address=a;
privateStringgetName(){
returnthis.name;
privateStringgetAddress(){
returnthis.address;
lassEmpolyeeextendsperson{
privateintemployeeNo;
privatedoublepay;
privateintage;
publicEmpolyee(Stringname,Stringaddress,intempolyeeNO,
doublepay,intage){
super(name,address);
this.setEmployeeNo(empolyeeNO);
this.setPay(pay);
this.setAge(age);
publicvoidsetEmployeeNo(inte){
this.employeeNo=e;
publicvoidsetPay(doublep){
this.pay=p;
publicvoidsetAge(inta){
this.age=a;
publicintgetEmployeeNo(){
returnthis.employeeNo;
publicdoublegetPay(){
returnthis.pay;
publicintgetAge(){
returnthis.age;
classManagerextendsEmpolyee{
privateintlevel;
publicManager(Stringname,Stringaddress,intempolyeeNO,doublepay,
intage,intlevel){
super(name,address,empolyeeNO,pay,age);
this.setLevel(level);
publicvoidsetLevel(intl){
this.level=l;
publicintgetLevel(){
returnthis.level;
publicvoidprintInfo(){
+this.getName()+"
工号:
+this.getEmployeeNo()+"
工龄:
+this.getAge()+"
级别:
+this.getLevel()+"
地址:
+this.getAddress());
原工资:
+this.getPay());
涨工资后的工资:
+newAdd().addPay(this.getLevel(),
this.getPay()));
privateStringgetAddress(){
returnnull;
privateStringgetName(){
classAdd{
publicdoubleaddPay(intlevel,doublepay){
if(level==0){
pay=(1+0.1)*pay;
elseif(level==1){
pay=(1+0.2)*pay;
else{
级别只能为0或1,0表示普通员工,1则表示经理,操作无效!
returnpay;
publicclassExtendsDemo{
publicstaticvoidmain(String[]args){
Managerm1=newManager("
张三"
南京路"
0001,2000,10,0);
Managerm2=newManager("
李四"
长江路"
0002,3000,15,1);
m1.printInfo();
************************************************"
m2.printInfo();
编写一个测试类,产生一个员工和一个经理并输出其具有的信息。
1.定义一个接口Assaultable(可攻击的),该接口有一个抽象方法attack()。
2.定义一个接口Mobile(可移动的),该接口有一个抽象方法move()。
3.定义一个抽象类Weapon,实现Assaultable接口和Mobile接口,但并没有给出具体的实现方法。
4.定义3个类:
Tank,Flighter,WarShip都继承自Weapon,分别用不同的方式实现Weapon类中的抽象方法。
5.写一个类Army,代表一支军队,这个类有一个属性是Weapon数组w(用来存储该军队所拥有的所有武器);
该类还提供一个构造方法,在构造方法里通过传一个int类型的参数来限定该类所能拥有的最大武器数量,并用这一大小来初始化数组w。
该类还提供一个方法addWeapon(Weaponwa),表示把参数wa所代表的武器加入到数组w中。
在这个类中还定义两个方法attackAll()和moveAll(),让w数组中的所有武器攻击和移动。
6.写一个主方法去测试以上程序。
classArmy{
privateWeapon[]w=null;
privateintsize=0;
privateArmy(){
publicArmy(inti){
w=newWeapon[i];
publicvoidaddWeapon(Weaponweapon){
if(size>
=w.length){
军队装备足够了!
return;
}else{
w[size]=weapon;
size++;
publicvoidattacAll(){
for(Weaponwea:
w){
if(wea!
=null){
wea.attack();
publicvoidmoveAll(){
wea.move();
packageA1;
classFlighterextendsWeapon{
publicvoidattack(){
Flighterattacks"
publicvoidmove(){
Flightermoves"
publicclassNotSimple{
Armya=newArmy(3);
a.addWeapon(newTank());
a.addWeapon(newFlighter());
a.addWeapon(newWarShip());
a.attacAll();
a.moveAll();
interfaceAssaultable{
abstractpublicvoidattack();
interfaceMobile{
abstractpublicvoidmove();
abstractclassWeaponimplementsAssaultable,Mobile{
classTankextendsWeapon{
Tankattacks"
publicvoidmove(){
Tankmoves"
classWarShipextendsWeapon{
publicvoidattack(){
WarShipattacks"
WarShipmoves"
publicvoidattack(){
publicvoidmove(){
}}
abstractclassWeaponimplementsAssaultable,Mobile{
classTanke
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 期末 复习 JAVA
![提示](https://static.bdocx.com/images/bang_tan.gif)