求助:数学函数接口 由于要编写一些数值分析算法,且要实现图形界面。该算法中留有数学函数接口,函数要作为一个输入参数。请问:怎么把这个一元函数作为参数传入?而且在算法中要调用该函数计算在给定点的数值! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用c好实现.在java中,定义一个接口,该接口用来表示你的函数,你的算法所在的类来实现这个接口,这样行不行? 问题是函数是输入参数。比如:对f(x)=x*x;我写一个类来实现一个接口。可换一个函数,岂不是又要写一个类,函数那么多,总不能每一次都写一个类吧! 这个可没那么简单,这涉及数学函数语法解析、分析、计算等一整套流程。让编程语言去实现计算 1 + 2 * (3 + 4) 这种字符串都是很麻烦的,不要说数学函数了。一般只有一些专用的数学软件才提供这些功能,比如以符号函数为强项的 Mapple,以及 Matlab、Mathematica 等,以及免费的 Scilab 不用重写类,只改一下接口的实现,比如,你原来return x*x,新的函数,要求返回x*x+1,改return x*x+1就可以了.类的其它部分不用动. 汗呢,头痛中 !记得不知是VB还是JavaScript中有个函数叫eval(),它可以执行传入的语句!java中没有嘛? 在java中可以用多态模拟C语言中函数的参数是函数的情况:Interface MyInterface{ float func(float x); }class A implements MyInterface{ public float func(float x){ //这里写函数的实现 }}class B implements MyInterface{ pulibc float func(float x){ //写函数的第二种实现。 }}//如果有第三种函数,可以再写一个实现类,而MyClass基本不用改。public class MyClass{//... MyAlgorithm(MyInterface mi){ //... y=mi.func(x); }//MyAlgorithm//... public static void main(String[] args){ new MyClass().MyAlgorithm(new A); //new MyClass().MyAlgorithm(new B); }} 他要实现数值分析的函数,那些函数可不是什么普通的函数,可能带有 ∑、∫、阶乘之类的,用 eval 函数根本没办法实现。 java 中类的加载问题 关于JAVA解析word2007 为什么画不出rectangle? 蛋生鸡,鸡生蛋? 怎样刷新表格数据? Java基础知识部分总结 用Java如何把汉语转变成Unicode(UTF-8)编码 关于链接数据库,请牛人指教下 谁能给我解释一下这段代码? 急! Int型转化成String型!在线等待! java中连接oracle时DATE数据更新问题 java中变量在什么情况下不等于变量本身
在java中,定义一个接口,该接口用来表示你的函数,你的算法所在的类来实现这个接口,这样行不行?
只改一下接口的实现,比如,你原来return x*x,新的函数,要求返回x*x+1,改return x*x+1就可以了.类的其它部分不用动.
float func(float x);
}
class A implements MyInterface{
public float func(float x){
//这里写函数的实现
}
}
class B implements MyInterface{
pulibc float func(float x){
//写函数的第二种实现。
}
}
//如果有第三种函数,可以再写一个实现类,而MyClass基本不用改。
public class MyClass{
//...
MyAlgorithm(MyInterface mi){
//...
y=mi.func(x);
}//MyAlgorithm
//...
public static void main(String[] args){
new MyClass().MyAlgorithm(new A);
//new MyClass().MyAlgorithm(new B);
}
}