博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java基础接口练习
阅读量:5879 次
发布时间:2019-06-19

本文共 6329 字,大约阅读时间需要 21 分钟。

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);    }}

 

转载于:https://www.cnblogs.com/jingzhenhua/p/5903122.html

你可能感兴趣的文章
CSVN配置自动备份策略
查看>>
win10刻录光盘失败,一直显示有准备好写入到光盘中的文件
查看>>
JavaScript之this使用
查看>>
UIScrollView
查看>>
进制转换学习
查看>>
【ospf-基础配置】
查看>>
课后作业-结对编程项目总结
查看>>
2.python 核心数据类型
查看>>
Linux内核设计第二周学习总结 完成一个简单的时间片轮转多道程序内核代码
查看>>
PyQt QString 与 Python str&unicode
查看>>
bat脚本中的%~的作用
查看>>
jqueryEasyUI form表单提交的一个困惑
查看>>
db2 托管事务未设置方法有问题
查看>>
【Bitmap Index】B-Tree索引与Bitmap位图索引的锁代价比较研究
查看>>
oracle之检查点(Checkpoint)
查看>>
美国数学月刊征解题
查看>>
[zz]Lessons from Pixar: Why Software Developers Should Be Storytellers
查看>>
C# 导出数据到Excel模板中(转)
查看>>
UVA532 Dungeon Master
查看>>
sqlite3开发环境搭建
查看>>