天天看點

Java之 實作電腦 找出完數

1.說出下面程式的執行結果:

interface InterfaceA { String S = "good "; void f(); //空實作 } abstract class ClassA { abstract void g(); //抽象類 } class ClassB extends ClassA implementsInterfaceA { 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(); }

}

Java之 實作電腦 找出完數

如圖   輸出為: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 Compute{
    int compute(int n,int m);
}

class Add implements Compute {
    public int compute (int n,int m){
        return n+m;
    }
}

class Sub implements Compute{
    public int compute(int n,int m){
        return n-m;
    }
}

class Mul implements Compute{
    public int compute(int n, int m){
        return n*m;
    }
}

class Div implements Compute{
    public int compute(int n,int m){
        return n/m;
    }
}

class UseCompute{
    public void useCom (Compute com,int one,int two){
        System.out.println(com.compute(one,two));
    }
}

public class Test{
	public static void main(String[] args) {
		UseCompute uc = new UseCompute();
		Add  s1 = new Add();
		Sub  s2 = new Sub();
		Mul  s3 = new Mul();
		Div  s4 = new Div();
		System.out.print("和:");uc.useCom(s1,4,2);
		System.out.print("差:");uc.useCom(s2,4,2);
		System.out.print("積:");uc.useCom(s3,4,2);
		System.out.print("商:");uc.useCom(s4,4,2);
    }
}
           

運作結果如下:

Java之 實作電腦 找出完數

3.按如下要求編寫Java程式:

(1)定義接口A,裡面包含值為3.14的常量PI和抽象方法doublearea()。

(2)定義接口B,裡面包含抽象方法void setColor(String c)。

(3)定義接口C,該接口繼承了接口A和B,裡面包含抽象方法voidvolume()。

(4)定義圓柱體類Cylinder實作接口C,該類中包含三個成員變量:底圓半徑radius、

圓柱體的高height、顔色color。

(5)建立主類來測試類Cylinder。

/*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 color);
}
interface C extends A,B {
    void volume();
}
class Cylinder implements C {
    private double radius;
    private double height;
    @SuppressWarnings("unused")
	private 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 color){
        System.out.println("圓柱體顔色為:" + color);
    }
    public void volume() {
        System.out.println("圓柱體體積為:"+area()*height);
    }
}
public class Test {
    public static void main(String[] args){
       Cylinder cylinder = new Cylinder(3.9,3.8,"red");
       System.out.println(cylinder.area());
       cylinder.setColor("red");
       cylinder.volume();
    }
}
           

4.(附加題-算法)

一個數如果恰好等于它的因子之和,這個數就稱為 "完數 "。例如6=1+2+3.程式設計 找出1000以内的所有完數。

輸出如下:

Java之 實作電腦 找出完數
public class WanShu {

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