JAVA语言 采用面向对象程序设计思想编写程序计算 n!,要求使用接口 和抽象类实现。急求全部代码

如题所述

    接口:FactorialImp

    抽象类:FactorialAbs

    实现计算阶乘n!的类:Fatorial

代码:

/**
 * 
 * 阶乘计算器
 * 
 * 接口
 */
public interface FactorialImp {
// 计算阶乘n!的值
long factorial(int n);
}

/**
 * 
 * 阶乘计算器
 * 
 * 抽象类 继承 FactorialImp
 */
public abstract class FactorialAbs implements FactorialImp {
/**
 * 实现计算阶乘n!的值的方法
 */
public long factorial(int n) {
return multiplicationCount(n, n - 1);
}

/**
 * 增加抽象方法--计算两数相乘
 * 
 * @param param1Int
 * @param param2Int
 * @return 两数相乘的积
 */
abstract long multiplicationCount(long param1Int, long param2Int);

}


/**
 * 实现阶乘计算器类
 * 
 */
public class Fatorial extends FactorialAbs {


@Override
long multiplicationCount(long param1Int, long param2Int) {
if (param2Int == 1) {
return param1Int;
} else {
return multiplicationCount(param1Int * param2Int, param2Int - 1);
}

}

}

/**
 * 测试类
 * 
 */
public class Test {

public static void main(String[] args) {
Fatorial localFatorial = new Fatorial();
System.out.println("100! = " + localFatorial.factorial(10));
}

}

追问

有错误啊,

追答

    因为包名:com.chap0

    在当前目录下建立目录:com/chap0

    把四个java文件FactorialImp.java FactorialAbs.java Factorial.java Test.java拷贝到目录com/chap0/下

    在当前目录执行javac命令

    >javac com/chap0/FactorialImp.java

    >javac com/chap0/FactorialAbs.java

    >javac com/chap0/Factorial.java

    >javac com/chap0/Test.java

    会在com/chap0/目录下生层四个class文件

    FactorialImp.classs FactorialAbs.class Factorial.class Test.class 

    然后在当前目录下执行java命令

    >java com.chap0.Test

哥们,你的Java基础让人着急啊
1.你编程用
Eclipse工具么
2.如果用Eclipse工具,那么先在工具中运行一下上面的程序
2.如果没有Eclipse工具
3.用 javac java命令的话,首先把上面的四个java文件拷贝到你的/my program/目录下
4.myprogram>javac Factorialmp. java
javac FactorialAbc. java
javac Factorial. java
javac Test. java
然后再执行
java Test

温馨提示:答案为网友推荐,仅供参考