JAVA接口练习题

2020-09-16 00:00:00 java 接口 练习题

1.说出下面程序的执行结果:

interface InterfaceA { 
String S = "good "; 
void f(); 
} 

abstract class ClassA { 
abstract void g(); 
} 

class ClassB extends ClassA implements InterfaceA { 
void g() { 
System.out.print(S); 
} 

public void f() { 
System.out.print(" "+ S); 
} 
} 
public class Test { 
public static void main(String[] args) { 
ClassA a = new ClassB(); 
InterfaceA b = new ClassB(); 
a.g(); 
b.f(); 
} 
} 

classB类继承了抽象类classA并实现了接口interfaceA,在classB中覆写了抽象类A的g方法,还定义了接口A的方法,最终在main函数中,向上实例化一个抽象类A的实例a,一个接口A的实例b,通过a,b来调用他们各自的方法,则输出一个good(来自a.g())和一个(空格) good(来自b.f)。

2.编程题:
利用接口做参数,写个计算器,能完成加减乘除运算。
(1)定义一个接口Compute含有一个方法int computer(int n, int m)。
(2)设计四个类分别实现此接口,完成加减乘除运算。
(3)设计一个类UseCompute,类中含有方法:public void useCom(Compute com, int one, int two),此方法能够用传递过来的对象调用computer方法完成运算,并输出运算的结果。
(4)设计一个主类Test,调用UseCompute中的方法useCom来完成加减乘除运算。

interface ICompute{
    int computer(int n,int m);
}
class UseCompute{
    private int n;
    private int m;
    public void useCom(ICompute com,int one,int two){
        this.n=one;
        this.m=two;
        com.computer(n,m);
    }
}
class Add implements ICompute{
        private int n;
        private int m;
        private int result;
        public int computer(int n,int m){
            this.m=m;
            this.n=n;
            this.result=n+m;
            System.out.println("n+m is" + result);
            return result;
        }
}
class Minus implements ICompute{
    private int n;
    private int m;
    private int result;
    public int computer(int n,int m){
        this.m=m;
        this.n=n;
        this.result=n-m;
        System.out.println("n-m is" +result);
        return result;
    }
}
class Mul implements ICompute{
    private int n;
    private int m;
    private int result;
    public int computer(int n,int m){
        this.m=m;
        this.n=n;
        this.result=n*m;
        System.out.println("n*m is" +result);
        return result;
    }
}
class Div implements ICompute{
    private int n;
    private int m;
    private int result;
    public int computer(int n,int m){
        this.m=m;
        this.n=n;
        this.result=n/m;
        System.out.println("n/m is" +result);
        return result;
    }
}
public class Test {
    public static void main(String[] args) {
        UseCompute a=new UseCompute();
        a.useCom(new Add(),8,2);
        a.useCom(new Minus(),8,2);
        a.useCom(new Mul(),8,2);
        a.useCom(new Div(),8,2);
    }
}

3.按如下要求编写Java程序:
(1)定义接口A,里面包含值为3.14的常量PI和抽象方法double area()。
(2)定义接口B,里面包含抽象方法void setColor(String c)。
(3)定义接口C,该接口继承了接口A和B,里面包含抽象方法void volume()。
(4)定义圆柱体类Cylinder实现接口C,该类中包含三个成员变量:底圆半径radius、
圆柱体的高height、颜色color。
(5)创建主类来测试类Cylinder。

interface A {
    double PI=3.14;
    void doubleArea();
}
interface B{
    void setColor(String c);
}
interface C extends A,B {
    void volume();
}
abstract class tmp implements C{
    public void doubleArea(){};
    public void setColor(String c){};
    public void volume(){};
}
class Cylinder extends tmp{
    private double PI=3.14;
    private double radius;
    private double height;
    private String color;
    public void doubleArea(double radius){
        this.radius=radius;
        System.out.println("radius is "+(radius*PI));
    }
    public void setColor(String c){
        this.color=c;		
        System.out.println("color is "+color);
    }
    public void volume(double radius,double height){
        this.height=height;
        this.radius=radius;
        System.out.println("volume is "+(radius*height*PI));	}
}
class Example{
    public static void main(String []args){
        Cylinder cyl1=new Cylinder();
        cyl1.doubleArea(3.00);
        cyl1.setColor("原谅绿");
        cyl1.volume(3.00,3.00);
    }
}

4.(附加题-算法)
一个数如果恰好等于它的因子之和,这个数就称为 “完数 “。例如6=1+2+3.编程 找出1000以内的所有完数。

public class number {
    public static void main(String[] args) {
        for(int i=0;i<1000;i++){
            int sum=0;
            for(int j=1;j<i;j++){
                if(i%j==0){
                    sum=sum+j;
                }
            }
            if(i==sum){
                System.out.println("完数为"+sum);
            }
        }
    }
}

 

    原文作者:ReginaPhilange
    原文地址: https://blog.csdn.net/qq_41268108/article/details/83542014
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。

相关文章