JavaSE程式設計題目~4
阿新 • • 發佈:2018-11-28
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 ICompute{ public int Computer(int m,int n); } class Add implements ICompute{ public int Computer(int m,int n){ return m+n; } } class Sub implements ICompute{ public int Computer(int m,int n){ return m-n; } } class Mul implements ICompute{ public int Computer(int m,int n){ return m*n; } } class Divs implements ICompute{ public int Computer(int m, int n) { if(n!=0) { return n/m; }else { System.out.println("分母不能為零"); return 0; } } } class UseCompute{ public void usecom(ICompute com,int m,int n) { System.out.println(com.Computer(m,n)); } } public class Test{ public static void main(String[] args) { UseCompute useCompute = new UseCompute(); useCompute.usecom(new Add(), 10, 20); useCompute.usecom(new Sub(), 10, 20); useCompute.usecom(new Mul(), 10, 20); useCompute.usecom(new Divs(), 10, 20); useCompute.usecom(new Divs(), 10, 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 IA{ double PI = 3.14; public abstract double area(); } interface IB{ abstract void setColor(String c); } interface IC extends IA,IB{ void volume(); } abstract class Temp implements IC{ public double area(double d){}; public void setColor(String c){}; public void volume(){}; } class Cylinder extends Temp{ private double PI = 3.14; private double radius; private double height; private String color; public double area(double radius){ this.radius = radius; System.out.println("area is"+(radius*radius*PI)); } public void setColor(String color){ this.color = color; System.out.println("color is"+color); } public void volumn(double height){ this.height = height; System.out.println("volumn is"+(radius*radius*PI*height)); } } public class Test{ public static void main(String[] args) { Cylinder cy = new Cylinder(); cy.area(3.0); cy.setColor("絢麗紫"); cy.volumn(4.0); } }
4. 程式設計求完數
一個數如果恰好等於它的因子之和,這個數就稱為 "完數 "。例如6=1+2+3.程式設計 找出1000以內的所有完數。
public class Test{
public static void main(String[] args) {
for(int i = 1; i<1000; i++){
// 找因子:讓這個數對“從1到它本身的½值”取餘,結果為0。
int sum = 0;
for (int j=1; j<=(i/2); j++){
if (i%j == 0){
sum = sum + j;
}
}
if(sum == i){
System.out.println("完數為"+i);
}
}
}
}