• Java接口练习


    /**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 IComputer{
    	int computer(int n, int m);
    }
    
    class Add implements IComputer{
    	public int computer(int n, int m){
    		return n+m;
    	}
    }
    class Sub implements IComputer{
    	public int computer(int n, int m){
    		return n-m;
    	}
    }
    class Mul implements IComputer{
    	public int computer(int n, int m){
    		return n*m;
    	}
    }
    class Div implements IComputer{
    	public int computer(int n, int m){
    		try{
    			return n/m;
    		}catch(Exception e){
    			System.out.println(e.getMessage());
    		}
    		return -1;
    	}
    }
    
    class UseCompute{
    	
    	public static void useCom(IComputer com, int one, int two){
    		int result = com.computer(one,two);
    		System.out.println(result);
    	}
    	
    }
    
    
    public class Test5{
    	
    	public static void main(String[] agrs){
    		UseCompute.useCom(new Add(),12,6);
    		UseCompute.useCom(new Sub(),12,6);
    		UseCompute.useCom(new Mul(),12,6);
    		UseCompute.useCom(new Div(),12,6);
    		UseCompute.useCom(new Div(),12,0);
    	}
    	
    }
    
    

    /**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;
    	double area();
    }
    
    interface B{
    	void setColor(String c);
    }
    
    interface C extends A,B {
    	void volume();
    }
    
    class Cylinder implements C {
    	private double radius;
    	private double height;
    	private String color;
    	
    	public Cylinder(double radius, double height, String color){
    		this.radius = radius;
    		this.height = height;
    		this.color = color;
    	}
    	
    	public void setColor(String c){
    		this.color = c;
    	}
    	
    	public String getColor(){
    		return this.color;
    	}
    	
    	public double area(){
    		return PI*radius*radius;
    	}
    	
    	public void volume(){
    		System.out.println("圆柱体的体积为:"+this.area()*this.height);
    	}
    	
    }
    
    public class Test6{
    	
    	public static void main(String[] agrs){
    		System.out.println("test c1:");
    		A c1 = new Cylinder(1,1,"red");
    		System.out.println("面积:"+c1.area());
    		System.out.println(((Cylinder)c1).getColor());
    		
    		System.out.println("test c2:");
    		B c2 = new Cylinder(2,2,"blue");
    		System.out.println("面积:"+((Cylinder)c2).area());
    		System.out.println(((Cylinder)c2).getColor());
    		c2.setColor("green");
    		System.out.println(((Cylinder)c2).getColor());
    		
    		System.out.println("test c3:");
    		C c3 = new Cylinder(1,2,"blank");
    		System.out.println("面积:"+c3.area());
    		c3.volume();
    		
    		System.out.println(((Cylinder)c3).getColor());
    		
    	}
    	
    }
    
    


    /**
    4.(附加题-算法) 
    一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3.编程 找出1000以内的所有完数。 
    
    */
    
    public class Test7{
    	
    	public static void completeNum(){
    		for(int num=2;num<=1000;num++){
    			int sum=0;
    			for(int i=1;i*i<=num;i++){
    				if(num%i==0){
    					sum=sum+i+(num/i);
    				}
    			}
    			sum-=num;
    			if(sum==num){
    				System.out.print(num+" ");
    			}
    		}
    		
    	}
    
    	public static void main(String[] agrs){
    		completeNum();	
    		
    	}
    }


  • 相关阅读:
    bzoj 2763: [JLOI2011]飞行路线
    bzoj 2761: [JLOI2011]不重复数字
    bzoj 2744: [HEOI2012]朋友圈
    bzoj 2743: [HEOI2012]采花
    bzoj 2730: [HNOI2012]矿场搭建
    bzoj 2705: [SDOI2012]Longge的问题
    抗DDOS攻击
    kali安装后配置
    Kali更新源,亲测目前可用的源
    kali安装及配置ssr客户端
  • 原文地址:https://www.cnblogs.com/yongtaochang/p/13615354.html
Copyright © 2020-2023  润新知