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

温馨提示:内容为网友见解,仅供参考
无其他回答

Java中 什么情况下使用接口?什么情况下使用抽象类?各自的优势是什么...
熟悉OCP的读者一定知道,为了能够实现面向对象设计的一个最核心的原则OCP(Open-Closed Principle),抽象类是其中的关键所在。二、从语法定义层面看abstract class和interface在语法层面,Java语言对于abstract class和interface给出了不同的定义方式,下面以定义一个名为Demo的抽象类为例来说明这种不同。使用abstract class的方...

java的接口和抽象类分别有什么作用?
熟悉OCP的读者一定知 道,为了能够实现面向对象设计的一个最核心的原则OCP(Open-Closed Principle),抽象类是其中的关键所在。 从语法定义层面看abstract class 和 interface 在语法层面,Java语言对于abstract class和interface给出了不同的定义方式,下面以定义一个名为Demo的抽象类为例来说明这种不同。 使用abstract clas...

java需要学哪些?
1、Java程序设计基础,包括J2sdk基础、Java面向对象基础、JavaAPI使用、数据结构及算法基础、JavaAWT图形界面程序开发; 2、J2SE平台Java程序设计,包括Swing图形程序设计,Socket网络应用程序设计,对象序列化,Java常用数据结构,Applet,流和文件,多线程程序设计; 3、JavaWeb应用编程,包括JavaOracle编程,即JDBC;JavaWeb编程,包...

java与c语言有什么区别
\\x0d\\x0a\\x0d\\x0aC++是在C语言的基础上加入了面向对象的概念,成为混合型面向对象语言,功能强大,但难度也大。\\x0d\\x0a\\x0d\\x0aJava是在C++的基础上进行改进的,摒弃了一些C++的不足之处,语法跟C++很像,它是运行在Java虚拟机上,所以可以跨平台,一处编译,到处执行。\\x0d\\x0a\\x...

java是什么意思
Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++ 语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。 3、Java语言是分布式的。Java语言支持Internet应用的开发...

Java中为什么要使用抽象类
熟悉OCP的读者一定知 道,为了能够实现面向对象设计的一个最核心的原则OCP(Open-Closed Principle),抽象类是其中的关键所在。 从语法定义层面看abstract class 和 interface 在语法层面,Java语言对于abstract class和interface给出了不同的定义方式,下面以定义一个名为Demo的抽象类为例来说明这种不同。 使用abstract ...

Java学习有哪些重点和难点
Java作为高级编程语言,最大的特点就是采用面向对象编程思想,与面向过程的编程方法相比,OOP能够大幅度的提高代码运行效率。在面向对象中需要重点理解类、对象、抽象类、接口、封装、集成和多态的概念。在Java编程开发中,大部分实战项目都是采用面向对象的思维进行开发,因此重点理解和掌握OOP是学习Java编程...

java语言和c语言哪个实用java语言和c语言的区别
1. C是面向过程的语言,JAVA是面向对象的语言 2. JAVA必须运行在虚拟机的环境中,这就是很多桌面应用程序都不用JAVA写的原因, 但是,正是因为虚拟机,JAVA获得的平台无关性,而C的程序有可能需要重新修改编译才 能实现平台的移植;另一方面,C语言比JAVA语言更“底层”, C语言可以编写例如硬件 的驱动,而JAVA在这方面...

C与C++的共性、C与Java的共性、C++与 Java共性。请详细的分析一下...
Java: Java是一种可以编写跨平台应用软件的面向对象的程序设计语言,由升阳(太阳微电子,Sun Microsystems)公司的James Gosling等人于1990年代初开发的.具有以下特征的高级程序语言: 简单 面向对象 可分布 可解释 强壮 安全性 结构化 轻便 功能强大 多线程 动态... Java既可以被编译,也可以被解释。通过编译器,可以把...

java中什么是接口?接口的作用是什么?
1、Java语言中存在的结构,有特定的语法和结构。2、Java语言中一个类所具有的方法的特征集合,是一种逻辑上的抽象。java接口作用:1、利于代码的规范 这样做的目的一方面是为了给开发人员一个清晰的指示,告诉他们哪些业务需要实现;同时也能防止由于开发人员随意命名而导致的命名不清晰和代码混乱,影响开发...

相似回答