1、一、 类和对象基础题(共13题) 1.编写一个Java应用程序,该程序中有3个类:Lader、Circle和主类A。具体要求如下:Lader类具有类型为double的上底、下底、高、面积属性,具有返回面积的功能,包括一个构造方法对上底、下底、高进行初始化。Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的功能,包括一个构造方法对半径进行初始化。主类A用来测试类Lader和类Circle的功能。 解答:解题思路:该题需要构建Lader、Circle和主类A,Lader类主要是做什么什么,A类主要做什么,起什么作用。 解题过程(关键代码): 解题总结:该题用到
2、了什么什么知识点 class Lader{ double s,x,g,area; double getarea() { return ((s+x)*g*0.5);} Lader(double s,double x,double g) {this.s=s; this.x=x; this.g=g;} } class Circle{ double r,m,l; Circle(double rr) {r=rr;} double getm(){ return 3.14*r*r; } double getl(){ re
3、turn 2*3.14*r; } } public class A{ public static void main(String args[]){ Lader text=new Lader(3,4,5); System.out.println("上底下底高分别为3,4,5的梯形面积为:"+text.getarea()); Circle text1=new Circle(5); System.out.println("半径为5的圆面积是:"+text1.getm()+",周长是"+text1.getl()); }
4、} 结题总结:本题用到了 构造方法,new实例化对象,方法的声明和调用以及对象的引用等等。 2.按要求编写Java应用程序: (1)编写西游记人物类(XiYouJiRenWu) 其中属性有:身高(height),名字(name),武器(weapon) 方法有:显示名字(printName),显示武器(printWeapon) (2)在主类的main方法中创建二个对象:zhuBaJie,sunWuKong。并分别为他 们的两个属性(name,weapon)赋值,最后分别调用printName, printWeapon方法 显示二个对象的属性值。 package java2;
5、class XiYouJiRenWu{ double height; String name,weapon; void printName(String name){ System.out.println("name:"+name);} void printWeapon(String weapon){ System.out.println("weapon:"+weapon);} } public class People { public static void main(String[] args) { XiYouJiRenWu zhuBaJie
6、new XiYouJiRenWu(); XiYouJiRenWu sunWuKong=new XiYouJiRenWu(); zhuBaJie.name="猪八戒"; sunWuKong.name="孙悟空"; zhuBaJie.weapon="九齿钉耙"; sunWuKong.weapon="如意金箍棒"; zhuBaJie.printName(zhuBaJie.name); zhuBaJie.printWeapon(zhuBaJie.weapon); sunWuKong.printName(sunWuKong.name); sunWu
7、Kong.printWeapon(sunWuKong.weapon); }} 3.编写Java应用程序。首先定义一个描述银行账户的Account类,包括成员变 量“账号”和“存款余额”,成员方法有“存款”、“取款”和“余额查询”。其次, 编写一个主类,在主类中测试Account类的功能。 class Account{ protected String AccountNumber; protected float balance; float desposit(float amout){ balance+=amout; return balance;
8、 } float withdraw(float amout){ balance-=amout; return balance; } Account(){this("",0);} Account(String Number,float balance) { AccountNumber=Number; this.balance=balance; } void show() { System.out.printf("账号:%s的余额是:%f",AccountNumber,balance); } } public class Tex
9、t{ public static void main(String args[]){ Account a1=new Account("1000001",2000f); a1.desposit(1000f); a1.withdraw(500f); a1.show(); } } 4.编写Java应用程序。首先,定义一个时钟类——Clock,它包括三个int型 成员变量分别表示时、分、秒,一个构造方法用于对三个成员变量(时、分、秒) 进行初始化,还有一个成员方法show()用于显示时钟对象的时间。其次,再定义 一个主类——Test
10、Class,在主类的main方法中创建多个时钟类的对象,使用这 些对象调用方法show()来显示时钟的时间。 class Clock{ int hour,min,sec; Clock(int h,int m,int s){ hour=h; min=m; sec=s; } Clock(){} void show() { System.out.printf("时间 %d:%d:%d",hour,min,sec); System.out.println(); } } public class TextClass{ publi
11、c static void main(String args[]){ Clock c1=new Clock(4,20,9); Clock c2=new Clock(); Clock c3=new Clock(14,2,9); c2.hour=2; c2.min=3; c2.sec=4; c1.show(); c2.show(); c3.show(); } } 5.编写Java应用程序。首先,定义描述学生的类——Student,包括学号(int)、 姓名(String)、年龄(int)等属性;二个方法:Student
12、int stuNo,String name,int age) 用于对对象的初始化,outPut()用于输出学生信息。其次,再定义一个主类—— TestClass,在主类的main方法中创建多个Student类的对象,使用这些对象来测 试Student类的功能。 class Student{ int Number; String Name; int age; Student(int stuNo,String name,int age){ Number=stuNo; Name=name; this.age=age; } void outPut()
13、 { System.out.printf("学号 :%d 姓名:%s 年龄:%d",Number,Name,age); System.out.println(); } } public class TextClass{ public static void main(String args[]){ Student s1=new Student(12001,"张三",21); Student s2=new Student(12002,"张飞",20); s1.outPut(); s2.outPut();
14、 } } 6.编写一个Java应用程序,该应用程序包括2个类:Print类和主类E。Print 类里有一个方法output()功能是输出100 ~ 999之间的所有水仙花数(各位数字的 立方和等于这个三位数本身,如: 371 = 33 + 73 + 13。)在主类E的main方法中来 测试类Print。class Print{ void output() { int a,b,c; for(int i=100;i<1000;i++) { a=i%10; b=i/10%10; c=i/100; if((a*a*a+b*b*b+c
15、c*c)==i) System.out.print(i+"\t"); } } } public class E{ public static void main(String args[]){ Print text=new Print(); text.output(); } } 7.编写Java应用程序。首先,定义一个Print类,它有一个方法void output(int x),如果x的值是1,在控制台打印出大写的英文字母表;如果x的值是2,在 控制台打印出小写的英文字母表。其次,再定义一个主类——T
16、estClass,在主类 的main方法中创建Print类的对象,使用这个对象调用方法output ()来打印出大 小写英文字母表。class Print{ void output(int x) { if(x==1) {for(int j=65;j<=90;j++) System.out.printf("%c ",j); System.out.println();} else if(x==2) { for(int j=97;j<=122;j++) System.out.printf("%c ",j); System.out.p
17、rintln(); } } } public class TestClass{ public static void main(String args[]){ Print p=new Print(); p.output(1); p.output(2); } } public static void main(String args[]){ Cat cat=new Cat("妮妮8.按要求编写Java应用程序。 (1)建立一个名叫Cat的类: 属性:姓名、毛色、年龄 行为:显示姓名、喊叫 (2)编写主类:
18、 创建一个对象猫,姓名为“妮妮”,毛色为“灰色”,年龄为2岁,在屏幕上输 出该对象的毛色和年龄,让该对象调用显示姓名和喊叫两个方法。 class Cat{ String name,color; int age; void showname(){ System.out.println(name); } void shout(String s) { System.out.println(s); } Cat(String nam,String colo,int ag){ name=nam; color=colo; a
19、ge=ag;} } public class TestClass{ ","灰色",2); cat.showname(); System.out.println("颜色是"+cat.color+" 年龄是"+cat.age+"岁"); cat.shout("喵喵~~"); } } 9.创建一个三角形类,成员变量三边,方法求周长,创建类主类A来测试它。 class triangle{ int a,b,c; void showperimeter(){ System.out.println("周长是"+(a+b+c)); }
20、 triangle(int a,int b,int c){ this.a=a; this.b=b; this.c=c; } } public class A{ public static void main(String args[]){ triangle t=new triangle(3,4,5); t.showperimeter(); } } 10.按要求编写Java应用程序。 (1)创建一个叫做People的类: 属性:姓名、年龄、性别、身高 行为:说话、计算加法、改名 编写能为所有属性赋值的构造方法;
21、 (2)创建主类: 创建一个对象:名叫“张三”,性别“男”,年龄18岁,身高1.80; 让该对象调用成员方法: 说出“你好!” 计算23+45的值 将名字改为“李四” class People{ String name,sex; int age; float height; void speak(String s){ System.out.println(s); } void add(int a,int b){ System.out.printf("%d+%d=%d\n",a,b,a+b); } void rename(String na
22、me1){ name=name1; System.out.println(name); } People(String name_,int age_,String sex_,float height_){ name=name_; age=age_; sex=sex_; height=height_; } } public class A{ public static void main(String args[]){ People t=new People("张三",18,"男",1.80f); t.speak("你好!
23、"); t.add(23,45); t.rename("李四"); } } 11.按要求编写Java应用程序。 (1)创建一个叫做机动车的类: 属性:车牌号(String),车速(int),载重量(double) 功能:加速(车速自增)、减速(车速自减)、修改车牌号,查询车的载重量。 编写两个构造方法:一个没有形参,在方法中将车牌号设置“XX1234”,速 度设置为100,载重量设置为100;另一个能为对象的所有属性赋值; (2)创建主类: 在主类中创建两个机动车对象。 创建第一个时调用无参数的构造方法,调用成员方法使其车牌为“辽 A9752”,并
24、让其加速。 创建第二个时调用有参数的构造方法,使其车牌为“辽B5086”,车速为150, 载重为200,并让其减速。 输出两辆车的所有信息 class Car{ String number; int speed; double deadweight; Car(String number,int speed,double deadweight) {this.number=number; this.speed=speed; this.deadweight=deadweight;} Car() {number="XX1234"; speed=10
25、0; deadweight=100;} void accelerate(int speed1) { speed+=speed1; } void reduction(int speed2){ speed-=speed2; } void ChangeNumber(String Number){ number=Number; } void showdeadweight() {System.out.println(deadweight);} } public class A{ public static void main(S
26、tring args[]){ Car c1=new Car(); c1.ChangeNumber("辽A9752"); c1.accelerate(30); Car c2=new Car("辽B5086",150,200); c2.reduction(50); System.out.println(c1.number+" 车速:"+c1.speed+" 载重量:"+c1.deadweight); System.out.println(c2.number+" 车速:"+c2.speed+" 载重量:"+c2.deadweight);
27、 } } 12.创建一个Point类,有成员变量x,y,方法getX(),setX(),还有一个构造方 法初始化x和y。创建类主类A来测试它。 class Point{ private int x; public String y; public int getX(){ return this.x;} public void setX(int x) { this.x=x;} Point(int x,String y){ this.x=x; this.y=y; } } public class
28、A{ public static void main(String args[]){ Point p=new Point(3,"Text1"); Point P1=new Point(55,"text2"); System.out.println(p.getX()+" "+p.y); System.out.println(P1.getX()+" "+P1.y); } } 13.首先,编写一个类ChongZai,该类中有3个重载的方法void print();其次, 再编写一个主类来测试ChongZai类的功能。 cl
29、ass ChongZai{ public double area(double radius){ return (Math.PI*radius*radius); } public double area(double length,double width){ return (length*width); } public double area(double length,double width,double height){ return ( length*width*height); } } public class A{ pub
30、lic static void main(String args[]){ ChongZai t=new ChongZai(); System.out.println("圆的半径为5,面积是:"+t.area(5)); System.out.println("矩形长为6,宽为21,面积是:"+t.area(6,21)); System.out.println("立方体长宽高分别为4,5,6,面积是:"+t.area(4,5,6)); } } 二、 数组相关(共4题) 14.已知2个一维数组:a[]={3,4,5,
31、6,7},b[]={1,2,3,4,5,6,7};把数组a与数组b 对应的元素乘积再赋值给数组b,如:b[2]=a[2]*b[2];最后输出数组b的元素。 public class A{ public static void main(String args[]){ int[] a={3,4,5,6,7}; int b[]={1,2,3,4,5,6,7}; for(int i=0;i<5;i++) b[i]*=a[i]; for(int j:b) System.out.print(j+","); } } 15.找出如下
32、数组中最大的元素和最小的元素, a[][]={{3,2,6},{6,8,2,10},{5},{12,3,23}} public class A{ public static void main(String args[]){ int[][] a={{3,2,6},{6,8,2,10},{5},{12,3,23}}; int min=a[0][0],max=a[0][0]; for(int i=0;i<4;i++) { for(int j=0;jmax) ma
33、x=a[i][j];
if(a[i][j] 34、位置存的是‘#’;输出这个数组中的所有元素。
public class Text{
public static void main(String args[]){
int x[];
x=new int[50];
int j=0,k=0;
for(int i=0;i<50;i++)
{ x[i]=2*i+1;
System.out.print(x[i]+"\t");
j++;
if(j%10==0)
System.out.println();
}
char[][] y=new char[10] 35、[10];
for(int r=0;r<10;r++)
{
for(int w=0;w<10;w++)
{if((r==w)||(9-r==w))
y[r][w]='*';
else
y[r][w]='#';
System.out.print(y[r][w]+"\t");
k++;
if(k%10==0)
System.out.println();
}
}
}
}
17.从键盘上输入一个正整数n,请按照以下五行杨辉三角 36、形的显示方式,
输出杨辉三角形的前n行。请采用循环控制语句来实现。
(三角形腰上的数为1,其他位置的数为其上一行相邻两个数之和。)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
import java.util.Scanner;
public class Text{
public static void main(String args[]){
Scanner sc=new Scanner(System.in);
System.out.println 37、"请输入杨辉三角形n的值:(0~~25)");
int n=sc.nextInt();
int a[][]=new int[25][25];
for(int i=0;i 38、for(int j=0;j<=i;j++)
System.out.print(a[i][j]+"\t");
System.out.println();}
}
}
三、 继承相关(共13题)
18.实现如下类之间的继承关系,并编写Music类来测试这些类。
class Instrument{
public void play(){
System.out.println("弹奏乐器");
}
}
class Wind extends Instrument{
@Override
public vo 39、id play(){
System.out.println("弹奏Wind");
}
public void play2(){
System.out.println("调用Wind的paly2");
}
}
class Brass extends Instrument{
@Override
public void play(){
System.out.println("弹奏Brass");
}
public void play2(){
System.out.println("调用Brass的paly2");
}
40、 }
public class Music{
public static void tune(Instrument i)
{
i.play();
}
public static void main(String args[]){
Wind a1=new Wind();
Brass a2=new Brass();
tune(a1);
tune(a2);
}
}
19.创建如下三个类:(People类中的三个方法分别输出一些信息,ChinaPeople
和AmericanPeople类重写父类的三个方法)。
pa 41、ckage java1;
public class People {
protected double height;
protected double weight;
public void speakHello(){
System.out.println("Welcome!");
}
public void averageHeight(){System.out.println("Height");}
public void averageWeight(){System.out.println("Weight");}
}
package java1;
42、public class AmericanPeople extends People {
public void speakHello(){
System.out.println("Hello!");
}
public void averageHeight(){
System.out.println("180cm");
}
public void averageWeight(){System.out.println("144kg");}
public void americarBoxing(){
System.out.println("直拳,勾拳"); 43、
}
}
package java1;
public class ChinaPeople extends People {
public void speakHello(){
System.out.println("你好!");
}
public void averageHeight(){
System.out.println("185c m");
}
public void averageWeight(){System.out.println("140kg");}
public void ChinaGongfu(){
System.out. 44、println("坐如钟,站如松,睡如弓");
}}
20.编写一个Java应用程序,该程序包括3个类: A类、B类和主类E。其中
类B是类A的子类,在子类B中新增了成员变量和成员方法,并且隐藏了父类
A的成员变量和重写了父类A的成员方法。在主类E的main方法中,创建类B
的对象并赋给父类A的对象a,使用上转型对象a来测试上转型对象的一些特性。
class A{ int a1=5;
void mA() { System.out.println("A.mA"); }
}
class B extends A {
int b1=6;
int a 45、1=7;
void mB() { System.out.println("B.mB"); }
void mA() { System.out.println("B.mA"); }
}
public class E {
public static void main(String[] args) {
B b=new B();
A a=b;
System.out.println("b.a1="+b.a1);
System.out.println("b.b1="+b.b1);
b.mA();
46、 b.mB();
System.out.println("a.a1="+a.a1);
a.mA();
}
}
21.编写一个Java应用程序,该程序包括3个类:Monkey类、People类和主类
E。要求:
(1) Monkey类中有个构造方法:Monkey (String s),并且有个public void speak()
方法,在speak方法中输出“咿咿呀呀......”的信息。
(2)People类是Monkey类的子类,在People类中重写方法speak(),在speak方法
中输出“小样的,不错嘛!会说话了!”的 47、信息。
(3)在People类中新增方法void think(),在think方法中输出“别说话!认真思考!”
的信息。
(4)在主类E的main方法中创建Monkey与People类的对象类测试这2个类的功
能。
class Monkey{
Monkey (String s){
System.out.println(s);
}
public void speak(){
System.out.println("咿咿呀呀......");
}
}
class People extends Monkey {
People(String s) {
48、 super(s);
}
public void speak(){
System.out.println("小样的,不错嘛!会说话了!");
}
public void think(){
System.out.println("别说话!认真思考!");
}
}
public class E{
public static void main(String[] args) {
Monkey monkey = new Monkey("我是猴子");
monkey.speak();
People people = new People("刘德华" 49、);
people.speak();
people.think();
}
}
22.编写一个类A,该类创建的对象可以调用方法f输出小写的英文字母表。然
后再编写一个A类的子类B,要求子类B必须继承类A的方法f(不允许重写),
子类B创建的对象不仅可以调用方法f输出小写的英文字母表,而且可以调用子
类新增的方法g输出大写的英文字母表。最后编写主类C,在主类的main方法
中测试类A与类B。
class A {
public void f(){
System.out.println("英文字母小写:");
for(char d='a';d< 50、'z';d++)
System.out.print(d+"\t");
System.out.println();
}
}
class B extends A{
public void g(){
System.out.println("英文字母大写:");
for(char d='A';d<='Z';d++)
System.out.print(d+"\t");
System.out.println();
}
}
public class C
{
public static






