以用戶管理為例,新增用戶功能就是點(diǎn)擊新增按鈕,彈出新增用戶窗口,然后填寫相關(guān)信息,點(diǎn)擊保存,就把這個(gè)表單提交到后臺,后臺再調(diào)用jdbc,將表單信息新增到數(shù)據(jù)庫即可。
鹽都網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,鹽都網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為鹽都上1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請找那個(gè)售后服務(wù)好的鹽都做網(wǎng)站的公司定做!
可以直接通過Calendar類的add方法進(jìn)行實(shí)現(xiàn),直接在DAY屬性上加上指定的天數(shù)就可以了。
舉例:
Calendar calendar = Calendar.newInstance();//創(chuàng)建一個(gè)實(shí)例
cd.set(2010,5,24,14,33,22);//實(shí)例化一個(gè)Calendar。 年、月、日、時(shí)、分、秒
calendar.add(Calendar.DAY,1);//給當(dāng)前日期加上指定天數(shù),這里加的是1天
System.out.println(calendar.getTime());
看你是什么樣的功能吧。
有可能是這樣的。對方將原碼編譯成一個(gè)jar文件放到web-inf/lib下。
他們需要你做的功能完全是新的,對即有的不會有影響。
如果是這樣,那你需要知道你要繼承什么樣的接口來做實(shí)現(xiàn)。這個(gè)需要對方提供相應(yīng)的資料。
如果是改動(dòng)即有的功能,沒有源碼,做不了。
雖然可以反編譯代碼,但反編譯的也不是完全都準(zhǔn)確的,有些語句解析的不正確,最常見的就是異常處理的反編譯。
總得來說,沒有源碼是很不方便的。
public class ex4 {
public static void main(String args[]) {
// No.1 添加語句構(gòu)造一個(gè)CFushu類的對象c1表示復(fù)數(shù)3+6i,構(gòu)造一個(gè)CFushu類的對象c2表示復(fù)數(shù)7+6i,
CFushu c1=new CFushu(3,6);
CFushu c2=new CFushu(7,6);
// No.2 添加語句構(gòu)造CFushu類對象c3復(fù)制為c1和c2的和(調(diào)用CFushu類中的add方法求c1與c2的和)
CFushu c3=c1.add(c2);
// No.3 添加語句顯示輸出c3的實(shí)部和虛部值,與實(shí)際運(yùn)算的c1與c2和值比較是否吻合
System.out.println("c3的實(shí)部="+c3.m_Real+" c3虛部 ="+c3.m_Image );
// No.4 添加語句顯示輸出c1和c2的實(shí)部和虛部,觀察其變化,分析原因
System.out.println("c1的實(shí)部="+c1.m_Real+" c1虛部 ="+c1.m_Image );
System.out.println("c2的實(shí)部="+c2.m_Real+" c2虛部 ="+c2.m_Image );
}
}
class CFushu// 描述復(fù)數(shù)
{
double m_Real;// 表示復(fù)數(shù)的實(shí)部
double m_Image;// 表示復(fù)數(shù)的虛部
public CFushu(double real, double image)// 定義構(gòu)造函數(shù)
{
m_Real = real;
m_Image = image;
}
CFushu add(CFushu fushu)// 實(shí)現(xiàn)當(dāng)前復(fù)數(shù)和參數(shù)復(fù)數(shù)fushu的加法
{
fushu.m_Real += m_Real;// 和值結(jié)果保存在fushu對象中
fushu.m_Image += m_Image;
return this;
}
}
結(jié)果:
c3的實(shí)部=3.0 c3虛部 =6.0
c1的實(shí)部=3.0 c1虛 =6.0
c2的實(shí)部=10.0 c2虛 =12.0
為什么明明c3是c1和c2的和,應(yīng)該是10,12,但c3卻和c1相等,而c2變成了c1和自身的和,分析:
c3 = c1.add(c2);
關(guān)鍵在這里是c1調(diào)用的add(c2);方法,而傳進(jìn)去的是c2的引用。在來看
這個(gè)方法的實(shí)現(xiàn)
CFushu add(CFushu fushu)// 實(shí)現(xiàn)當(dāng)前復(fù)數(shù)和參數(shù)復(fù)數(shù)fushu的加法
{
fushu.m_Real += m_Real;// 和值結(jié)果保存在fushu對象中
fushu.m_Image += m_Image;
return this;
}
fushu.m_Real += m_Real;//fushu.m_Real 是c2的屬性,+= m_Real 是c1的屬性
這樣就將c1的實(shí)部和c2的實(shí)部相加,得到的值再付給c2的實(shí)部。由于傳的是c2的引用,因此通過c2的引用改變了c2實(shí)部的值,而c1的實(shí)部沒有改變,仍是3。就如同注釋中說的“和值結(jié)果保存在fushu對象中”這個(gè)fushu對象就是c2對象。虛部同理。
return時(shí) ,返回的是this, 因?yàn)槭莄1.add()也就是說,這個(gè)this是c1對象,而c1對象沒有任何變化,因此返回給c3的是c1對象。
所以出現(xiàn)上述情況。
如果將add()改為 c3 = c2.add(c1);
結(jié)果為:
c3的實(shí)部=3.0 c3虛部 =6.0
c1的實(shí)部=10.0 c1虛 =12.0
c2的實(shí)部=3.0 c2虛 =6.0
道理同上。
如果樓主想達(dá)到的目的是c1,c2本身值不變,c3為他們的和,只需將add()改為
CFushu add(CFushu fushu)// 實(shí)現(xiàn)當(dāng)前復(fù)數(shù)和參數(shù)復(fù)數(shù)fushu的加法
{
return new CFushu(fushu.m_Real+m_Real,fushu.m_Image+m_Image);
}
這樣沒有改變傳進(jìn)去的對象值,返回出的新對像的值是c1和c2的和。
累!