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方法

//InterfaceA接口
public interface InterfaceA {
        void printCapitalLetter();
}
//InterfaceB接口
public interface InterfaceB {
         void printLowercaseLetter();
}
public class Print implements InterfaceA, InterfaceB {

    @Override
    public void printLowercaseLetter() {
    System.out.println("ABCDEFGHIJKLMNOPQISTUVWXYZ");

    }

    @Override
    public void printCapitalLetter() {
        System.out.println("abcdefghijklmnopqistuvwxyz");

    }

}
public class E {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        //给Print创建对象,并调InterfaceA的接口
    Print a = new Print();
    a.printCapitalLetter();
    //给Print创建对象,并调InterfaceB的接口
    Print 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 InterfaceA2 {
    int method(int n);
}
//接口的实现
public class ClassA implements InterfaceA2 {

    int sum =0;
    public int method(int n) {
        // TODO 自动生成的方法存根
        for(int i =1;i<n;i++)
        {
            sum+=i;
        }
        System.out.println("1+2+3+4......+n="+sum);
        return sum;
    }

}
public class ClassB implements InterfaceA2 {

    int sum=0;
    public int method(int n) {
        // TODO 自动生成的方法存根
        for(int i =1;i<n;i++)
        {
            sum*=i;
        }
        System.out.println("1*2*3*4.....*n ="+sum);
        return sum;
    }

}
public class E2 {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        //声明接口变量
        InterfaceA2 a;
        //实例化接口对象中存放对象的引用
        a = new ClassA();
        //接口回调
        a.method(6);
        //实例化接口对象中存放对象的引用
        a=new ClassB();
        //接口回调
        a.method(7);
    }

}

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 E3 {

    public static void main(String[] args) {
        Province a = new Province();
        a.partyLeader();
        a.safetyInProduction();

    }

}

4.看下图实现如下接口和类,并完成Adventure中的主方法。

//能飞的接口
public interface CanFly {
        void fly();
}
//游泳的接口
public interface CanSwim {
        void swim();
}
public abstract class ActionCharacter {
                       //抽象方法
            public abstract void finght(String emp);
                       //已经实现的方法
            public void speak(String s)
            {
                System.out.println(s);
            }
}
//继承并实现父类中所有的方法
public class Hero extends ActionCharacter implements CanSwim, CanFly {
        String name;
    public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;

        }

    @Override
    public void fly() {
        System.out.println(name+"能飞");

    }

    @Override
    public void swim() {
        System.out.println(name+"能游");

    }

    @Override
    public void finght(String emp) {
        System.out.println(name+"还能打");

    }

}
public static void main(String[] args) {
        // TODO 自动生成的方法存根
            Hero hb = new Hero();
            hb.setName("大飞");
            hb.swim();
            hb.finght("是");
            hb.fly();
          //声明CanFly类型变量cf
            CanFly  cf;
           //将hb的值赋给cf
            cf =hb;
           //用cf调用fly方法
            cf.fly();
            CanSwim cs;
            cs=hb;
            cs.swim();
            ActionCharacter ac;
            ac=hb;
            ac.speak("说");
            ac.finght("打");

    }

}

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 Jian implements Compute {

    @Override
    public int computer(int n, int m) {
        int jian =n-m;
        System.out.println(n+"-"+m+"="+jian);
        return jian;
    }

}
public class Jia implements Compute {

    @Override
    public int computer(int n, int m) {
        // TODO 自动生成的方法存根
        int jia =n+m;
        System.out.println(n+"+"+m+"="+jia);
        return jia;
    }

}

public class Cheng implements Compute {


@Override
public int computer(int n, int m) {
// TODO 自动生成的方法存根
int cheng =n*m;
System.out.println(n+"*"+m+"="+cheng);
return cheng;
}


}

 
public class Chu implements Compute {

    @Override
    public int computer(int n, int m) {
        int chu =n/m;
        System.out.println(n+"/"+m+" ="+chu);
        return chu;
    }

}
public class UseComputer implements Compute {

    @Override
    public int computer(int n, int m) {
        // TODO 自动生成的方法存根
        return 0;
    }
      public void useCom(Compute com, int n, int m)
        {
            com.computer(n, m);
        }
}
public class TestUseComputer {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        UseComputer a = new UseComputer();
        Jia a1 =new Jia();
        Jian a2 = new Jian();
        Cheng a3 = new Cheng();
        Chu a4 = new Chu();
        a.useCom(a1, 4, 7);
        a.useCom(a2, 3, 5);
        a.useCom(a3, 2, 8);
        a.useCom(a4, 7, 1);
    }

}

时间: 2024-11-24 23:20:01

java基础 接口练习的相关文章

JAVA基础接口集合框架

接口--------------------------------------------------------------------------------一.接口(是一种规范)1.接口名/接口文件与类类似,也是用.java文件编写2.关键字 interface 接口名命名规范与类名相同 习惯上可以使用I开头表示3. 接口额访问修饰符只能使用public和default修饰不能使用private和protected在接口中默认缺省为public4.接口中的所有属性只能为公开的静态的常量而

java基础--接口与反射总结

一.接口 接口中所有的方法默认public static final,不必再写. 接口中可以定义常量,但不能含有实例域.在java SE8之前,不能在接口中实现方法. 一个类可以实现多个方法implements 接口1,接口2...多个接口之间用","隔开. 克隆:要实现克隆先实现Cloneable接口,重新定义clone方法,并指定public修饰符. 默认clone是浅克隆,要实现深克隆需要自己重写clone. 所有的数组类型都有一个public的clone方法. 二.反射 概念:

Java基础-接口中国特色社会主义的体制中有这样的现象:地方省政府要坚持党的领导和按 照国务院的指示进行安全生产。请编写一个java应用程序描述上述的体制现象。 要求如下: (1)该应用程序中有一个“党中央”接口:CentralPartyCommittee,该接口中 有个“坚持党的领导”方法:void partyLeader() (2)该应用程序中有一个“国务院”抽象类:StateCouncil,

36.中国特色社会主义的体制中有这样的现象:地方省政府要坚持党的领导和按 照国务院的指示进行安全生产.请编写一个java应用程序描述上述的体制现象. 要求如下: (1)该应用程序中有一个“党中央”接口:CentralPartyCommittee,该接口中 有个“坚持党的领导”方法:void partyLeader() (2)该应用程序中有一个“国务院”抽象类:StateCouncil,该抽象类中有个“安 全生产”的抽象方法:abstract void safetyInProduction() (

java基础接口练习

1.编写2个接口:InterfaceA和InterfaceB:在接口InterfaceA中有个方法voidprintCapitalLetter():在接口InterfaceB中有个方法void printLowercaseLetter():然后写一个类Print实现接口InterfaceA和InterfaceB,要求printCapitalLetter()方法实现输出大写英文字母表的功能,printLowercaseLetter()方法实现输出小写英文字母表的功能.再写一个主类E,在主类E的ma

java基础接口回调的实现

//接口回调理解:先创建好接口,需要使用的时候用匿名内部类实现接口,就叫接口回调,以下是我设计的程序. package callback; import java.util.ArrayList; import java.util.List; import java.util.Scanner; //接口 package callback; public interface CallPhone { public void playPhone(); } //PhoneNum类 package call

JAVA 基础 接口

抽象类和抽象方法 抽象方法 在面向对象编程语言中抽象方法指一些只有方法声明而没有具体方法体的方法抽象方法一般存在于抽象类或接口中. java中,抽象方法就是以 abstract 修饰的方法,只需要声明而不需要实现 abstract void f(); 抽象类 包含抽象方法的类叫抽象类. abstract class Sample {     private int param1;     abstract void f1();     void f2() {} } 注: 1.如果一个类包含有抽象

Java基础——接口

一:接口,英文称作interface,在软件工程中,接口泛指供别人调用的方法或者函数. 在封装与接口中,private关键字封装了对象的内部成员.经过封装,产品隐藏了内部细节,只提供给用户接口(interface). 接口是非常有用的概念,可以辅助我们的抽象思考.在现实生活中,当我们想起某个用具的时候,往往想到的是该用具的功能性接口.比如杯子,我们想到加水和喝水的可能性,高于想到杯子的材质和价格.也就是说,一定程度上,用具的接口等同于用具本身.内部细节则在思考过程中被摒弃. 在public和pr

java基础---接口(二)

1.为什么使用接口 防盗门可以继承门的同时又继承锁吗?不可以 如何解决这个问题,接口 2.什么是接口 语法 public interface MyInterface { public void foo(): //其他方法 } 3.接口特性 1.接口丌可以被实例化 2.实现类必须实现接口的所有方法 3.实现类可以实现多个接口 4.接口中的变量都是静态常量 5.接口中的方法都是抽象方法 Java单继承多实现 4.如何使用接口 用Java接口来实现 1.根据需求设计方法 2.实现所有方法 3.用多态的

java基础 接口私有方法

1 /** 2 * 问题描述: 3 * 我们需要抽取一个共有方法,用来解决两个默认方法之间重复代码的问题 4 * 但是这个共有方法不应该让实现类使用,应该是私有化的. 5 * 6 * 解决方案: 7 * 从java 9开始,接口当中允许定义私有方法. 8 * 1.普通私有方法,解决多个默认方法之间重复代码问题 9 * 格式: 10 * private 返回值类型方法名称(参数列表){ 11 * 方法体 12 * } 13 * 2.静态私有方法,解决多个静态方法之间重复代码的问题 14 * 格式: