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


//子类不是抽象类  所以覆写父类所有抽象方法
good good

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 m,int n);
}

class Add implements IComputer{
	public int computer(int m, int n){
		return m+n;
	}
}

class Mul implements IComputer{
	public int computer(int m,int n){
		return m*n;
	}
}

class Sub implements IComputer{
	public int computer(int m,int n){
		return m-n;	
	}
}

class Div implements IComputer{
	public int computer(int m,int n){
		if(n!=0){
			return m/n;
		}
		else{
			System.out.print("error!");
			return 0;
		}
	}
}

class UseComputer{
	public void useCom(IComputer com,int one,int two){
		System.out.println(com.computer(one, two));	
	}
}

public class Test {
	public static void main(String[] args){
		UseComputer useComputer=new UseComputer();
		
		useComputer.useCom(new Add(), 3, 4);
		useComputer.useCom(new Sub(), 5, 4);
		useComputer.useCom(new Mul(), 3, 4);
		useComputer.useCom(new Div(), 5, 4);
		useComputer.useCom(new Div(), 3, 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{
	//接口只允许public权限
	double PI=3.14;
	double area();
}

interface B{
	void setColor(String c);
}

interface C extends A,B{//接口多继承
	void volum();
}

class Cylinder implements C{
	public double radius;
	public double height;
	public String color;
	
	public Cylinder(double radius,double height,String color){
		this.radius=radius;
		this.height=height;
		this.color=color;	
	}
	public double area(){
		return PI*radius*radius;
	}
	public void setColor(String c){
		System.out.println("圆柱体的颜色为"+color);
	}
	public void volum(){
		System.out.println("圆柱体的体积为"+area()*height);
	}
}
public class Test {
	public static void main(String[] args){
		Cylinder c=new Cylinder(2.1, 2.0, "blue");
		c.setColor("blue");
		c.volum();
		System.out.println("圆柱体的底面积为"+c. area());
	}
}

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


class A{
	public boolean Isnumber(int m){
		int count=0;
		for(int i=1;i<m;i++){
			if(m%i==0){
				count+=i;
			}
		}
		if(count==m){
			return true;
		}
		return false;
	}
}

public class Test{
	public static void main(String[] args){
		A a=new A();
		System.out.println("1000以内的完數為:");
		for(int i=1;i<1000;i++){
			if(a.Isnumber(i)){
				System.out.print(" "+i);
			}
		}
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值