?? guide.txt
字號:
1、寬展函數庫基本準則
a.Java類必須聲明為public,必須有一個聲明為public的無參構造函數。
b.欲加入函數庫的方法必須聲明為public, 且有且只有一個com.yihuasoft.math.DoubleArray參數,
必須聲明拋出com.yihuasoft.math.InvalidParameterException異常(在DoubleArray中已經提供了
若干高頻的參數檢查方法)
c.com.yihuasoft.math.DoubleArray是一個double數組的封裝,并且不允許修改數組值。
2、實例
如下類聲明
則此了中有incomeTax,delta兩個方法滿足要求,其他方法是工具方法,將被自動檢測忽略,若強行在
配置中生命,仍然被忽略。
//////////////////////////////////////////////////////
package com.yihuasoft.math;
.....
public class EconomicsFunctions {
/**
* Compute the income tax, this method need 2 parameters;
* d1: the original income
* d2: taxable starting income(locale interrelated )
* @param paras DoubleArray
* @return Double
* @throws InvalidParameterException
*/
public Double incomeTax(DoubleArray paras)throws InvalidParameterException{
paras.need2();
double income=paras.get(0);
double basicm=paras.get(1);
double over=income-basicm;
if(over>100000)return new Double(over*0.45-15375);
if(over>80000)return new Double(over*0.4-10375);
if(over>60000)return new Double(over*0.35-6375);
if(over>40000)return new Double(over*0.3-3375);
if(over>20000)return new Double(over*0.25-1375);
if(over>5000)return new Double(over*0.2-375);
if(over>2000)return new Double(over*0.15-125);
if(over>500)return new Double(over*0.1-25);
if(over>0)return new Double(over*0.05);
return new Double(0);
}
/**
* Compute standard deviation of a group of statistics data.
* Atleast one parameter is needed.
*
* @param paras DoubleArray
* @return Double
* @throws InvalidParameterException
*/
public Double delta(DoubleArray paras)throws InvalidParameterException{
paras.atleast1();
return new Double(Math.sqrt(dx_(paras)));
}
private double dx_(DoubleArray paras) throws
ArrayIndexOutOfBoundsException {
double avg = avg_(paras);
double re=0;
for(int i=0;i<paras.size();i++){
re+=(paras.get(i)-avg)*(paras.get(i)-avg);
}
return re/paras.size();
}
private double avg_(DoubleArray paras) throws ArrayIndexOutOfBoundsException {
double avg=sum_(paras)/paras.size();
return avg;
}
private double sum_(DoubleArray paras) throws ArrayIndexOutOfBoundsException {
double re=paras.get(0);
for(int i=1;i<paras.size();i++){
re+=paras.get(i);
}
return re;
}
//////////////////////////////////////////////////////
3、對已上函數
配置1
<calc>
....
<class name="com.yihuasoft.math.EconomicsFunctions" auto="true" match="*">
</class>
....
</calc>
(詳細語法請參看'calc.dtd'文件)
class:指定Java類
name:完整的類路徑
auto:ture表示自動檢測所有滿足準則類方法,false則不自動檢測。
match:在滿足準則的情況下,按要求自動檢測,"*"表示檢測所有,"*Abc",表示檢測所有以Abc結尾的Java方法......
則此時在命令行將可以調用函數:delta和incomeTax
配置2
<calc>
....
<class name="com.yihuasoft.math.EconomicsFunctions" auto="true" match="*">
<function method="incomeTax">
<alias>個人所得稅</alias>
<alias>所得稅</alias>
</function>
</class>
....
</calc>
function:定制函數,此版本中只提供添加別名機制。
alias:函數別名,(1個方法可以有任意多個別名,但該別名在該系統(tǒng)中只能出現一次,第2次出現將被忽略。)
則此時在命令行將可以調用函數:delta和incomeTax, 個人所得稅,所得稅。
其中delta函數將調用“EconomicsFunctions”類的“delta”方法,“incomeTax”, “個人所得稅”,
“所得稅”都將調用EconomicsFunctions類的incomeTax方法。
注意:此處的函數和方法是不同概念。函數(function)是指可以在命令行下調用的指令,是大小寫不敏感的,如對已上配置,
在明令行下掉用delta,DELTA效果是一樣的。方法(method)是指符合Java語言規(guī)范Java類中的方法,使大小寫敏感的,
在示例類中有無個Java方法,其中有兩個符合準則1,可以被明令行調用。按照配置2,命令行中將有4個函數,其中
有3個(“incomeTax”, “個人所得稅”,“所得稅”)是等效的,對應Java類的1個方法。
4、注意事項
該版本不支持動態(tài)配置,若新添加函數庫,則需重起計算器。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -