1、实现如下类之间的继承关系,并编写Music类来测试这些类。
public classInstrument {public voidplay(){
System.out.println("弹奏乐器!");
}
}
public class Wind extendsInstrument{//复写play方法
public voidplay(){
System.out.println("弹奏Wind!");
}public voidplay2(){
System.out.println("调用wind的play2");
}
}
public class Brass extendsInstrument {//复写play方法
public voidplay(){
System.out.println("弹奏brass!");
}public voidplay2(){
System.out.println("调用brass的play2!");
}
}
public classMusic {public static voidtune(Instrument i){
i.play();
}public static voidmain(String[] args){
Wind w=newWind();
Brass b=newBrass();
tune(w);
tune(b);
}
}
2、创建如下三个类:(People类中的三个方法分别输出一些信息,ChinaPeople和AmericanPeople类重写父类的三个方法)。
public classPeople {protected doubleheight;protected doubleweight;public doublegetHeight() {returnheight;
}public void setHeight(doubleheight) {this.height =height;
}public doublegetWeight() {returnweight;
}public void setWeight(doubleweight) {this.weight =weight;
}public voidspeakHello(){
System.out.println("你好!!!");
}public voidaverageHeight(){
System.out.println("平均身高是:"+height);
}public voidaverageWeight(){
System.out.println("平均体重是:"+weight);
}
}
public class ChinaPeople extendsPeople {public voidspeakHello(){
System.out.println("你好,我是中国人!");
}public voidaverageHeight(){
System.out.println("中国人的平均身高是:"+height);
}public voidaverageWeight(){
System.out.println("中国人的平均体重是:"+weight);
}public voidchinaGongfu(){
System.out.println("我会中国功夫:坐如钟,站如松,睡如弓!");
}
}
public class AmericanPeople extendsPeople {public voidspeakHello(){
System.out.println("你好,我是美国人!");
}public voidaverageHeight(){
System.out.println("美国人的平均身高是:"+height);
}public voidaverageWeight(){
System.out.println("美国人的平均体重是:"+weight);
}public voidamercianBoxing(){
System.out.println("我会美式拳击:直拳,上勾拳!");
}
}
public classTestPeople {public static voidmain(String[] args) {
ChinaPeople chp=newChinaPeople();
chp.height=180;
chp.weight=130;
chp.speakHello();
chp.averageHeight();
chp.averageWeight();
chp.chinaGongfu();
AmericanPeople amp=newAmericanPeople();
amp.setHeight(175);
amp.setWeight(150);
amp.speakHello();
amp.averageHeight();
amp.averageWeight();
amp.amercianBoxing();
}
}
3、编写一个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个类的功能。
public classMonkey {private String name; //声明属性name//getter、setter方法
publicString getName() {returnname;
}public voidsetName(String name) {this.name =name;
}//构造方法
Monkey(String s){this.name=s;
}//成员方法
public voidspeak(){
System.out.println("咿咿呀呀.........");
}
}
public class People00 extendsMonkey {
People00(String s) {super(s);
}//重写speak()方法
public voidspeak(){
System.out.println("小样的,不错嘛!会说话了!");
}voidthink(){
System.out.println("别说话!认真思考!");
}
}
public classE {public static voidmain(String[] args) {
Monkey m=new Monkey("Toney");
System.out.println("我是猴子"+m.getName());
m.speak();
People00 p=new People00("Tom");
System.out.println("我是人类"+p.getName());
p.speak();
p.think();
}
}
4、定义类Human,具有若干属性和功能;定义其子类Man、Woman;在主类Test中分别创建子类、父类和上转型对象,并测试其特性。
public classHuman {privateString name;private intage;privateString sex;publicString getName() {returnname;
}public voidsetName(String name) {this.name =name;
}public intgetAge() {returnage;
}public void setAge(intage) {this.age =age;
}publicString getSex() {returnsex;
}public voidsetSex(String sex) {this.sex =sex;
}public voidspeak(){
System.out.println("I am a human.");
}public voidrun(){
System.out.println("I can run.");
}public voidgetInfo(){
System.out.println("我的名字是:"+getName()+" 我的年龄是:"+getAge()+" 我的性别是:"+getSex());
Man m=newMan();
}
}
public class Man extendsHuman{public voidman(){if(getSex()=="男人"){
System.out.println("I am a man.");
}else{
System.out.println("I am not a man.");
}
}public voidrun(){
System.out.println("我是雄狮一样强壮的男人.");
}
}
public class Woman extendsHuman {public voidwoman(){if(getSex()=="女"){
System.out.println("I am a woman.");
}else{
System.out.println("I am not a woman.");
}
}
}
public classTestHuman {public static voidmain(String[] agrs){
Man m=newMan();
m.setName("Dave");
m.setAge(28);
m.setSex("男");
m.getInfo();
m.speak();
m.run();
m.man();//隐式转换//上转型对象
Human h=newWoman();
h.setName("Jude");
h.setAge(58);
h.setSex("女");
h.speak();
h.run();
h.getInfo();if(h instanceofWoman){
Woman w=(Woman)h;
w.woman();
}else{
System.out.println("类型不符!");
}
}
}
5、编写一个Animal类,具有属性:种类;具有功能:吃、睡。定义其子类Fish和Dog,定义主类E,在其main方法中分别创建其对象并测试对象的特性。
public classAnimal {privateString zhonglei;privateString name;publicString getZhonglei() {returnzhonglei;
}public voidsetZhonglei(String zhonglei) {this.zhonglei =zhonglei;
}publicString getName() {returnname;
}public voidsetName(String name) {this.name =name;
}public voideat(){
System.out.println("我需要觅食!");
}public voidsleep(){
System.out.println("我需要睡觉!");
}public voidgetInfo(){
System.out.println("我的名字是:"+getName()+" 我的种类是:"+getZhonglei());
}
}
public class Fish extendsAnimal {public voidspeak(){
System.out.println("我是"+getZhonglei());
}public voideat(){
System.out.println("我吃鱼食!");
}
}
public class Dog extendsAnimal{public voidspeak(){
System.out.println("我是"+getZhonglei());
}public voideat(){
System.out.println("我吃狗粮!");
}
}
public classTestAnimal {public static voidmain(String[] args){
Animal a=newFish();
a.setName("Tom");
a.setZhonglei("动物");
a.getInfo();
a.eat();
a.sleep();if(a instanceofFish){
Fish f=(Fish)a;
f.setZhonglei("鱼类");
f.eat();
f.getInfo();
}else{
System.out.println("类型不符!");
}
Dog d= newDog();
d.setName("哮天犬");
d.setZhonglei("哺乳动物");
d.getInfo();
Animal aa=(Dog)d;
aa.eat();
aa.sleep();
}
}
6、按要求编写一个Java应用程序:
(1)定义一个类,描述一个矩形,包含有长、宽两种属性,和计算面积方法。
(2)编写一个类,继承自矩形类,同时该类描述长方体,具有长、宽、高属性,和计算体积的方法。
(3)编写一个测试类,对以上两个类进行测试,创建一个长方体,定义其长、宽、高,输出其底面积和体积。
public classJuxing {private doublechang;private doublekuan;public doublegetChang() {returnchang;
}public void setChang(doublechang) {this.chang =chang;
}public doublegetKuan() {returnkuan;
}public void setKuan(doublekuan) {this.kuan =kuan;
}public doublearea(){return chang*kuan;
}
}
public class ChangFangTi extendsJuxing {private doublegao;public doublegetGao() {returngao;
}public void setGao(doublegao) {this.gao =gao;
}public doubletiji(){return area()*gao;
}
}
public classTest {public static voidmain(String[] args){
ChangFangTi a=newChangFangTi();
a.setChang(12);
a.setKuan(10);
a.setGao(5);
System.out.println("长方体的底面积是:"+a.area());
System.out.println("长方体的体积是:"+a.tiji());
}
}
7、编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数wheels和车重weight。小车类Car是Vehicle的子类,其中包含的属性有载人数loader。卡车类Truck是Car类的子类,其中包含的属性有载重量payload。每个类都有构造方法和输出相关数据的方法。最后,写一个测试类来测试这些类的功能。
public classVehicle {private intwheels;private doubleweight;public intgetWheels() {returnwheels;
}public void setWheels(intwheels) {this.wheels =wheels;
}public doublegetWeight() {returnweight;
}public void setWeight(doubleweight) {this.weight =weight;
}
Vehicle(){
}
Vehicle(int wheels,doubleweight){this.wheels=wheels;this.weight=weight;
}public voidgetInfo(){
System.out.println("车轮的个数是:"+wheels+" 车重:"+weight);
}
}
public class Car extendsVehicle {private intloader;public intgetLoader() {returnloader;
}public void setLoader(intloader) {this.loader =loader;
}
Car(){
}
Car(int wheels,double weight,intloader){super(wheels,weight);this.loader=loader;
}public voidloader(){if(loader<=6){
System.out.println("这辆车能载"+loader+"人");
}else{
System.out.println("超员了");
}
}
}
public class Truck extendsCar {
Truck(){super();
}private doublepayload;public doublegetPayload() {returnpayload;
}public void setPayload(doublepayload) {this.payload =payload;
}public voidpayload(){if(payload<=1000){
System.out.println("这辆车的载重是"+payload);
}else{
System.out.println("超重了");
}
}
}
public classTestcar {public static voidmain(String[] args){
Car c=new Car(4,600,4);
c.getInfo();
c.loader();
Truck t=newTruck();
t.setLoader(3);
t.setPayload(800);
t.setWeight(1000);
t.setWheels(6);
t.getInfo();
t.loader();
t.payload();
}
}
8、编写一个Shape类,具有属性:周长和面积;定义其子类三角形和矩形,分别具有求周长的方法。定义主类E,在其main方法中创建三角形和矩形类的对象,并赋给Shape类的对象a、b,使用对象a、b来测试其特性。
public classShape {private intbian;private doublezhouchang;private doublemianji;public intgetBian() {returnbian;
}public void setBian(intbian) {this.bian =bian;
}public doublegetZhouchang() {returnzhouchang;
}public void setZhouchang(doublezhouchang) {this.zhouchang =zhouchang;
}public doublegetMianji() {returnmianji;
}public void setMianji(doublemianji) {this.mianji =mianji;
}public voidbian(){
System.out.println("您创建了一个"+bian+"边形!");
}
}
public class San extendsShape{double[] bianchang=new double[3];
San(){
}
San(double a,double b, doublec){
bianchang[0]=a;
bianchang[1]=b;
bianchang[2]=c;
}public voidzhouchang(){if(getBian()==3&&bianchang[0]+bianchang[1]>bianchang[2]&&bianchang[0]-bianchang[1]
sum+=bianchang[i];
System.out.print(" 边长"+(i+1)+"是"+bianchang[i]);
}
System.out.println(" 三角形的周长是:"+sum);
}else{
System.out.println("这不是一个三角形");
}
}
}
public class Juxx extendsShape {double[] bianchang=new double[4];
Juxx(){}
Juxx(double a,double b,double c,doubled){
bianchang[0]=a;
bianchang[1]=b;
bianchang[2]=c;
bianchang[3]=d;
}public voidzhouchang(){if(getBian()==4 && bianchang[0]==bianchang[2]&&bianchang[1]==bianchang[3]){double sum=0;for(int i=0;i
sum+=bianchang[i];
System.out.print(" 边长"+(i+1)+"是"+bianchang[i]);
}
System.out.println(" 矩形的周长是:"+sum);
}else{
System.out.println("这不是一个矩形");
}
}
}
public classTestE {public static voidmain(String[] args){
Shape s=newShape();
s.setBian(5);
s.bian();
San sa=new San(3,4,5);
sa.setBian(3);
sa.zhouchang();
Juxx ju=new Juxx(3,4,3,4);
ju.setBian(4);
ju.zhouchang();
}
}



