资源描述
一、 类和对象基础题(共13题)
1.编写一个Java应用程序,该程序中有3个类:Lader、Circle和主类A。具体要求如下:Lader类具有类型为double的上底、下底、高、面积属性,具有返回面积的功能,包括一个构造方法对上底、下底、高进行初始化。Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的功能,包括一个构造方法对半径进行初始化。主类A用来测试类Lader和类Circle的功能。
解答:解题思路:该题需要构建Lader、Circle和主类A,Lader类主要是做什么什么,A类主要做什么,起什么作用。
解题过程(关键代码):
解题总结:该题用到了什么什么知识点
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(){
return 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());
}
}
结题总结:本题用到了 构造方法,new实例化对象,方法的声明和调用以及对象的引用等等。
2.按要求编写Java应用程序:
(1)编写西游记人物类(XiYouJiRenWu)
其中属性有:身高(height),名字(name),武器(weapon)
方法有:显示名字(printName),显示武器(printWeapon)
(2)在主类的main方法中创建二个对象:zhuBaJie,sunWuKong。并分别为他
们的两个属性(name,weapon)赋值,最后分别调用printName, printWeapon方法
显示二个对象的属性值。
package java2;
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=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);
sunWuKong.printWeapon(sunWuKong.weapon);
}}
3.编写Java应用程序。首先定义一个描述银行账户的Account类,包括成员变
量“账号”和“存款余额”,成员方法有“存款”、“取款”和“余额查询”。其次,
编写一个主类,在主类中测试Account类的功能。
class Account{
protected String AccountNumber;
protected float balance;
float desposit(float amout){
balance+=amout;
return balance;
}
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 Text{
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()用于显示时钟对象的时间。其次,再定义
一个主类——TestClass,在主类的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{
public 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(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()
{
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();
}
}
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*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,在
控制台打印出小写的英文字母表。其次,再定义一个主类——TestClass,在主类
的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.println();
}
}
}
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)编写主类:
创建一个对象猫,姓名为“妮妮”,毛色为“灰色”,年龄为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;
age=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));
}
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的类:
属性:姓名、年龄、性别、身高
行为:说话、计算加法、改名
编写能为所有属性赋值的构造方法;
(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 name1){
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("你好!");
t.add(23,45);
t.rename("李四");
}
}
11.按要求编写Java应用程序。
(1)创建一个叫做机动车的类:
属性:车牌号(String),车速(int),载重量(double)
功能:加速(车速自增)、减速(车速自减)、修改车牌号,查询车的载重量。
编写两个构造方法:一个没有形参,在方法中将车牌号设置“XX1234”,速
度设置为100,载重量设置为100;另一个能为对象的所有属性赋值;
(2)创建主类:
在主类中创建两个机动车对象。
创建第一个时调用无参数的构造方法,调用成员方法使其车牌为“辽
A9752”,并让其加速。
创建第二个时调用有参数的构造方法,使其车牌为“辽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=100;
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(String 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);
}
}
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 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类的功能。
class 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{
public 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,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.找出如下数组中最大的元素和最小的元素,
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;j<a[i].length;j++)
{
if(a[i][j]>max)
max=a[i][j];
if(a[i][j]<min)
min=a[i][j];
}
}
System.out.println("最大的元素是"+max+"\n最小的元素是"+min);
}
}
16.按要求编写Java应用程序。
编写一个名为Test的主类,类中只有一个主方法;
在主方法中定义一个大小为50的一维整型数组,数组名为x,数组中存放着{1,
3,5,…,99}输出这个数组中的所有元素,每输出十个换一行;在主方法中定义一
个大小为10*10的二维字符型数组,数组名为y,正反对角线上存的是‘*’,其余
位置存的是‘#’;输出这个数组中的所有元素。
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][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,请按照以下五行杨辉三角形的显示方式,
输出杨辉三角形的前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("请输入杨辉三角形n的值:(0~~25)");
int n=sc.nextInt();
int a[][]=new int[25][25];
for(int i=0;i<n;i++)
a[i][0]=1;
for(int i=1;i<n;i++)
for(int j=1;j<=i;j++)
{if(i==j)
a[i][j]=1;
else
a[i][j]=a[i-1][j]+a[i-1][j-1];
}
for(int i=0;i<n;i++)
{ 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 void 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");
}
}
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类重写父类的三个方法)。
package 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;
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("直拳,勾拳");
}
}
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.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 a1=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();
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方法
中输出“小样的,不错嘛!会说话了!”的信息。
(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) {
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("刘德华");
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<='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
展开阅读全文