java基础接口练习
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
java基础接⼝练习
1、编写2个接⼝:InterfaceA和InterfaceB;在接⼝InterfaceA中有个⽅法voidprintCapitalLetter();在接⼝InterfaceB中有个⽅法void printLowercaseLetter();然后写⼀个类Print实现接⼝InterfaceA和InterfaceB,要求printCapitalLetter()⽅法实现输出⼤写英⽂字母表的功能,printLowercaseLetter()⽅法实现输出⼩写英⽂字母表的功能。
再写⼀个主类E,在主类E的main⽅法中创建Print的对象并赋值
给InterfaceA的变量a,对象a调⽤printCapitalLetter⽅法;最后再在主类E的main⽅法中创建Print的对象并赋值给InterfaceB的变量b,对象b调⽤printLowercaseLetter⽅法。
public interface InterfaceA {
void printCapitalLetter();
}
public interface InterfaceB {
void printLowercaseLetter();
}
public class Print implements InterfaceA,InterfaceB {
@Override
public void printLowercaseLetter() {
char[] chr=new char[26];
char j=65;
for(int i=0;i<=25;i++){
chr[i]=j;
j++;
}
System.out.print("⼤写字母:");
for(char temp:chr){
System.out.print(temp);
}
System.out.println();
}
@Override
public void printCapitalLetter() {
char[] chr=new char[26];
char j=97;
for(int i=0;i<=25;i++){
chr[i]=j;
j++;
}
System.out.print("⼩写字母:");
for(char temp:chr){
System.out.print(temp);
}
System.out.println();
}
}
public class E {
public static void main(String[] args){
InterfaceA a =new Print();
a.printCapitalLetter();
InterfaceB b=new Print();
b.printLowercaseLetter();
}
}
2、按要求编写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⽅法中使⽤接⼝回调的形式来测试实现接⼝的类。
public interface InterfaceA {
void printCapitalLetter();
int method(int n);
}
public class ClassA implements InterfaceA{
@Override
public int method(int n) {
// 1到n的和
int sum=0;
for(int i=0;i<=n;i++){
sum+=i;
}
return sum;
}
@Override
public void printCapitalLetter() {
// TODO ⾃动⽣成的⽅法存根
}
public class ClassB implements InterfaceA{
@Override
public int method(int n) {
//n的阶乘
int sum=1;
for(int i=1;i<=n;i++){
sum*=i;
}
return sum;
}
@Override
public void printCapitalLetter() {
// TODO ⾃动⽣成的⽅法存根
}
}
public class E {
public static void main(String[] args){
InterfaceA a =new Print();
a.printCapitalLetter();
InterfaceB b=new Print();
b.printLowercaseLetter();
InterfaceA e=new ClassA();
InterfaceA ee=new ClassB();
System.out.println("1到100的和是:"+e.method(100));
System.out.println("10的阶乘是:"+ee.method(10));
}
}
3、中国特⾊社会主义的体制中有这样的现象:地⽅省政府要坚持党的领导和按照国务院的指⽰进⾏安全⽣产。
请编写⼀个java应⽤程序描述上述的体制现象。
要求如下:
(1)该应⽤程序中有⼀个“党中央”接⼝:CentralPartyCommittee,该接⼝中有个“坚持党的领导”⽅法:void partyLeader()
(2)该应⽤程序中有⼀个“国务院”抽象类:StateCouncil,该抽象类中有个“安全⽣产”的抽象⽅法:abstract void safetyInProduction()
(3)该应⽤程序中有⼀个“省政府”类:Province,该类继承StateCouncil抽象类并且实现CentralPartyCommittee接⼝;在实现partyLeader()⽅法时输出“我们各省⼈民⼀定坚持党的领导!”;在重写safetyInProduction()⽅法时输出“我们各省⼈民⼀定按照国务院的指⽰进⾏安全⽣产!”。
(4)该应⽤程序中有⼀个主类E,在主类E的main⽅法中创建Province类的对象,来测试Province类的功能。
public interface CentralPartyCommittee {
void partyLeader();
}
public abstract class StateCouncil {
abstract void safetyInProduction();
}
public class Province extends StateCouncil implements CentralPartyCommittee {
@Override
public void partyLeader() {
System.out.println("我们各省⼈民⼀定坚持党的领导!");
}
@Override
void safetyInProduction() {
System.out.println("我们各省⼈民⼀定按照国务院的指⽰进⾏安全⽣产!"); }
}
public class E {
public static void main(String[] args){
//第三题
Province pro=new Province();
pro.partyLeader();
pro.safetyInProduction();
}
}
4、看下图实现如下接⼝和类,并完成Adventure中的主⽅法。
public interface CanSwim {
void swim();
}
public interface CanFly {
void fly();
}
public abstract class ActionCharacter {
abstract void fight(String emp);
void speak(String s){
System.out.println(s);
}
}
public class Hero extends ActionCharacter implements CanSwim,CanFly {
String name;
Hero(String name){
=name;
}
@Override
public void fly() {
System.out.println(name+" I can fly!");
}
@Override
public void swim() {
System.out.println(name+" I can swim!");
}
@Override
void fight(String emp) {
System.out.println(emp);
}
}
public class Adventure {
public static void main(String[] args) {
Hero hb=new Hero("超⼈");
hb.swim();
hb.fly();
hb.fight("我要Fighting!");
hb.speak("I am superman!");
CanFly cf=hb;
cf.fly();
CanSwim cs=hb;
cs.swim();
ActionCharacter ac=hb;
ac.fight("我要打仗!");
ac.speak("我是超⼈,我⽆敌!");
}
}
5、利⽤接⼝做参数,写个计算器,能完成+-*/运算
(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来完成+-*/运算
public interface Compute {
int computer(int n,int m);
}
public class Jia implements Compute {
@Override
public int computer(int n, int m) {
return n+m;
}
}
public class Jian implements Compute{
@Override
public int computer(int n, int m) {
return n-m;
}
}
public class Cheng implements Compute {
@Override
public int computer(int n, int m) {
return n*m;
}
}
public class Chu implements Compute {
@Override
public int computer(int n, int m) {
int sum = 0;
try{
sum=n/m;
}catch(Exception e){
System.out.println("被除数不能为0");
}
return sum;
}
}
public class UseCompute {
public void useCom(Compute com, int one, int two){ System.out.println(puter(one, two));
}
}
public class Testcompute {
public static void main(String[] args) {
UseCompute uc=new UseCompute();
System.out.print("10+5=");
eCom(new Jia(),10,5);
System.out.print("10-5=");
eCom(new Jian(),10,5);
System.out.print("10X5=");
eCom(new Cheng(),10,5);
System.out.print("10/5=");
eCom(new Chu(),10,5);
eCom(new Chu(),10,0);
}
}。