java基础接口练习

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java基础接口练习相关的知识,希望对你有一定的参考价值。

1、编写2个接口:InterfaceAInterfaceB;在接口InterfaceA中有个方法voidprintCapitalLetter();在接口InterfaceB中有个方法void printLowercaseLetter();然后写一个类Print实现接口InterfaceAInterfaceB,要求printCapitalLetter()方法实现输出大写英文字母表的功能,printLowercaseLetter()方法实现输出小写英文字母表的功能。再写一个主类E,在主类Emain方法中创建Print的对象并赋值给InterfaceA的变量a,对象a调用printCapitalLetter方法;最后再在主类Emain方法中创建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){
        this.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(com.computer(one, two));
    }
}
public class Testcompute {

    public static void main(String[] args) {
        UseCompute uc=new UseCompute();
        System.out.print("10+5=");
        uc.useCom(new Jia(),10,5);
        System.out.print("10-5=");
        uc.useCom(new Jian(),10,5);
        System.out.print("10X5=");
        uc.useCom(new Cheng(),10,5);
        System.out.print("10/5=");
        uc.useCom(new Chu(),10,5);
        
        uc.useCom(new Chu(),10,0);
    }

}

技术分享

 

以上是关于java基础接口练习的主要内容,如果未能解决你的问题,请参考以下文章

java基础 接口练习

Java 基础接口练习题

Java 基础练习题2

Java基础:封装

Java基础——关于接口和抽象类的几道练习题

Java Lambda