一、 接口(共7题)
34.编写2个接口:InterfaceA和InterfaceB;在接口InterfaceA中有个方法void
printCapitalLetter();在接口InterfaceB中有个方法void printLowercaseLetter();然
后写一个类Print实现接口InterfaceA和Interfac]’eB,要求printCapitalLetter()方法
实现输出大写英文字母表的功能,printLowercaseLetter()方法实现输出小写英文
字母表的功能。再写一个主类E,在主类E的main方法中创建Print的对象并赋
值给InterfaceA的变量a,对象a调用printCapitalLetter方法;最后再在主类E
的main方法中创建Print的对象并赋值给InterfaceB的变量b,对象b调用
printLowercaseLetter方法。
package lianxi; public interface InterfaceA { void printCapitalLetter(); }
package lianxi; public interface InterfaceB { void printLowercaseLetter(); }
package lianxi; public class Print1 implements InterfaceA, InterfaceB { @Override public void printLowercaseLetter() { for (int i = 97; i < 123; i++) { System.out.print((char)i); } System.out.println(); } @Override public void printCapitalLetter() { for (int i =65; i < 91; i++) { System.out.print((char)i); } System.out.println(); } }
package lianxi; public class E { public static void main(String[] args) { InterfaceA a=new Print1(); InterfaceB b=new Print1(); a.printCapitalLetter(); b.printLowercaseLetter(); } }
35.按要求编写Java程序:
(1)编写一个接口:InterfaceA,只含有一个方法int method(int n);
(2)编写一个类:ClassA来实现接口InterfaceA,实现int method(int n)接口方
法时,要求计算1到n的和;
(3)编写另一个类:ClassB来实现接口InterfaceA,实现int method(int n)接口
方法时,要求计算n的阶乘(n!);
(4)编写测试类E,在测试类E的main方法中使用接口回调的形式来测试实现
接口的类。
package a; public interface InterfaceA { int method(int n); }
package a; public class ClassA implements InterfaceA { public int method(int n) { int sum=0; for (int i = 1; i <=n; i++) { sum+=i; } System.out.println("1+2+3+......+"+n+"="+sum); return sum; } }
package a; public class ClassB implements InterfaceA { public int method(int n) { int sum=1; for (int i = 1; i <=n; i++) { sum*=i; } System.out.println(n+"!="+sum); return sum; } }
package a; public class E { public static void main(String[] args) { InterfaceA a=new ClassA(); InterfaceA b=new ClassB(); a.method(5); b.method(5); } }
36.中国特色社会主义的体制中有这样的现象:地方省政府要坚持党的领导和按
照国务院的指示进行安全生产。请编写一个java应用程序描述上述的体制现象。
要求如下:
(1)该应用程序中有一个“党中央”接口:CentralPartyCommittee,该接口中
有个“坚持党的领导”方法:void partyLeader()
(2)该应用程序中有一个“国务院”抽象类:StateCouncil,该抽象类中有个“安
全生产”的抽象方法:abstract void safetyInProduction()
(3)该应用程序中有一个“省政府”类:Province,该类继承StateCouncil抽象
类并且实现CentralPartyCommittee接口;在实现partyLeader()方法时输出“我们
各省人民一定坚持党的领导!”;在重写safetyInProduction()方法时输出“我们各
省人民一定按照国务院的指示进行安全生产!”。
(4)该应用程序中有一个主类E,在主类E的main方法中创建Province类的对
象,来测试Province类的功能。
package a; public interface CentralPartyCommittee { void partyLeader(); }
package a; public abstract class StateCouncil{ abstract void safetyInProduction(); }
package a; public class Province extends StateCouncil implements CentralPartyCommittee { public void partyLeader() { System.out.println("我们各省人民一定坚持党的领导!"); } @Override void safetyInProduction() { System.out.println("我们各省人民一定按照国务院的指示进行安全生产!"); } }
package a; public class E1 { public static void main(String[] args) { Province p=new Province(); CentralPartyCommittee a=p; StateCouncil b=p; a.partyLeader(); b.safetyInProduction(); } }
37.看下图实现如下接口和类,并完成Adventure中的主方法。
package a; public interface CanSwim { void swim(); }
package a; public interface CanFly { void fly(); }
package a; public abstract class ActionCharacter { public abstract void fight(String emp); public void speak(String s) { System.out.println(s); } }
package a; public class Hero extends ActionCharacter implements CanSwim, CanFly { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public Hero(String name) { super(); this.name = name; } @Override public void fly() { System.out.println(name+" 飞"); } @Override public void swim() { System.out.println(name+" 游泳"); } public void fight(String emp) { System.out.println(name+" 武器"+emp+" 戦斗"); } }
package a; public class Adventure { public static void main(String[] args) { Hero hb=new Hero("超人"); hb.swim(); hb.fly(); hb.fight("拳头"); CanFly cf=hb; cf.fly(); CanSwim cs=hb; cs.swim(); ActionCharacter ac=hb; ac.speak("为了正义"); ac.fight("蛮力"); } }
38.利用接口做参数,写个计算器,能完成+-*/运算
(1)定义一个接口Compute含有一个方法int computer(int n,int m);
(2)设计四个类分别实现此接口,完成+-*/运算
(3)设计一个类UseCompute,含有方法:
public void useCom(Compute com, int one, int two)
此方法要求能够:1.用传递过来的对象调用computer方法完成运算
2.输出运算的结果
(4)设计一个测试类,调用UseCompute中的方法useCom来完成+-*/运算
package b; public interface Computer { int computer(int n,int m); }
package b; public class Jia implements Computer { @Override public int computer(int n, int m) { int jia; jia=m+n; System.out.println(m+"+"+n+"="+jia); return jia; } }
package b; public class Jian implements Computer { @Override public int computer(int n, int m) { int jian; jian=m-n; System.out.println(m+"-"+n+"="+jian); return jian; } }
package b; public class Cheng implements Computer { @Override public int computer(int n, int m) { int cheng; cheng=m*n; System.out.println(m+"*"+n+"="+cheng); return cheng; } }
package b; public class Chu implements Computer { @Override public int computer(int n, int m) { int chu; chu=m/n; System.out.println(m+"/"+n+"="+chu); return chu; } }
package b; public class UseComputer implements Computer { @Override public int computer(int n, int m) { return 0; } public void useCom(Computer com, int n, int m) { com.computer(n, m); } }
package b; public class TestComputer { public static void main(String[] args) { UseComputer m=new UseComputer(); Jia a=new Jia(); Jian b=new Jian(); Cheng c=new Cheng(); Chu d=new Chu(); m.useCom(a, 3, 5); m.useCom(b, 3, 5); m.useCom(c, 3, 5); m.useCom(d, 3, 5); } }
39.按要求编写一个Java应用程序程序:
(1)定义一个接口CanFly,描述会飞的方法public void fly();
(2)分别定义类飞机和鸟,实现CanFly接口。
(3)定义一个测试类,测试飞机和鸟,在main方法中创建飞机对象和鸟对象,
再定义一个makeFly()方法,其中让会飞的事物飞。并在main方法中调用该方法,
让飞机和鸟起飞。
package com.hry.test; //代表会飞的事物 public interface CanFly { void fly(); }
package com.hry.test; //飞机 //实现了会飞的事物的能力 public class Plane implements CanFly{ @Override public void fly() { // TODO 自动生成的方法存根 System.out.println("我是飞机,我能飞"); } }
package com.hry.test; //鸟 public class Bird implements CanFly{ @Override public void fly() { // TODO 自动生成的方法存根 System.out.println("我是鸟,我能飞"); } }
package com.hry.test; public class TestFly { public static void main(String[] args) { // TODO 自动生成的方法存根 //实例化 飞机 Plane p=new Plane(); new TestFly().makeFly(p); //实例化 鸟 Bird b=new Bird(); new TestFly().makeFly(b); } //让会飞的事物飞起来 public void makeFly(CanFly p) { p.fly(); } }