Java介面練習題
阿新 • • 發佈:2018-11-04
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 Test1 { 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 Computer { int computer(int n, int m); } class Add implements Computer { public int computer(int n, int m) { System.out.print(n+"+"+m+"="); return n+m; } } class Sub implements Computer { public int computer (int n, int m) { System.out.print(n+"-"+m+"="); return n-m; } } class Mul implements Computer { public int computer (int n, int m) { System.out.print(n+"*"+m+"="); return n*m; } } class Div implements Computer { public int computer (int n, int m) { System.out.print(n+"/"+m+"="); return n/m; } } class UseComputer { public void useCom(Computer com, int one, int two) { System.out.println (com.computer(one, two)); } } public class Test { public static void main (String[] args) { UseComputer uc = new UseComputer(); uc.useCom(new Add(), 10, 20); uc.useCom(new Sub(), 15, 10); uc.useCom(new Mul(), 10, 20); uc.useCom(new Div(), 15, 5); } }
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
{
final double pl = 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)
{
this.height = height;
this.radius = radius;
}
public double area ()
{
return pl*radius*radius;
}
public void setColor (String color)
{
this.color = color;
}
public void volume ()
{
System.out.println ("圓柱體積為:"+area()*height+"顏色為:"+this.color);
}
}
public class Test
{
public static void main (String[] args)
{
Cylinder cyl = new Cylinder(10.0, 20.0);
cyl.setColor("紅色");
cyl.volume();
}
}
執行結果為:
4.(附加題-演算法)
一個數如果恰好等於它的因子之和,這個數就稱為 "完數 "。例如6=1+2+3.程式設計 找出1000以內的所有完數。
public class Test
{
public static void main (String[] args)
{
for (int i=1; i<1000; ++i)
{
wanShu(i);
}
}
public static void wanShu(int num)
{
int sum = 0;
for (int i=num-1; i>0; --i)
{
if (num%i == 0)
{
sum+= i;
}
}
if (sum == num)
{
System.out.print (num+" ");
}
}
}
執行結果: