天天操天天爱天天干,久久综合久久99,日本高清视频在线播放,91视频在线免费

推廣 熱搜: 廣場  Java  app  Word  營業  微信公眾號  北京代理記賬  商城  代理記賬  商標交易 

javascript轉換為java代碼 javaweb項目java后臺獲取前臺js上傳文件的路徑?

   2023-04-28 企業服務招財貓300
核心提示:javaweb項目java后臺獲取前臺js上傳文件的路徑?如果通過servelet讀取上傳文件路徑,代碼如下,我在項目中用過:diskfileitemcfactorydiifNewdiskfileit

javaweb項目java后臺獲取前臺js上傳文件的路徑?

如果通過servelet讀取上傳文件路徑,代碼如下,我在項目中用過:

diskfileitemcfactorydiifNewdiskfileitemcfactory()(32*1024)(NewFile(tmpdir))//TT使用上面的工廠實例化上傳組件Servlet文件上傳SFUNewServlet文件上傳(diif)。(MAX_SIZE)ttListfilelist(request)ttif(filelistnull||()0){thrownewExc

Javascript是面向對象還是基于對象?

什么是面向對象在編程的世界里,有一種思想非常重要,那就是面向對象的思維。掌握了這個思路,就意味著你不再是一個程序員新手,開始向開發者的目標邁進了。

那么,到底什么是面向對象的思維呢?說到這,我可以告訴你這個東西的來歷。以前的編程是面向過程的。那么什么是面向過程的呢?之前在網上看到一句話,覺得形容的很好。讓我借一下。

一般來說,如果現在有人讓你把大象放進冰箱,我們如何用面向過程的方法來做?我們可以把它分成以下幾個步驟:

1.打開冰箱門。

2.把大象放進冰箱。

3.關上冰箱門。

我們程序員會把這三個步驟寫成三個函數:

()

2.putElephantIntoFridge()

()

然后我們可以依次調用這些函數。嗯,你以為可以下班了,但是過幾天,你會發現這種需求會演變成很多奇怪的趨勢,比如:

請把獅子放進冰箱。

請把大象放進微波爐里。

請把猴子放在微波爐里。

把其他動物放在冰箱里,但是不要放。;不要關門。

5.……

諸如此類。這時,要以面向過程的實現這些需求,就需要重新定義實現這些需求的功能。這無疑是一件令人抓狂的事情。但是老板和客戶出錢了,你就得做!所以你必須加班,所以你犧牲了你的工作...

所以,為了你的生活,你必須想出一個方法,不。;不需要每次需要時都重新定義實現的功能,也就是說,面向對象。

我們的想法是:如果每次我們想改變需求,我們不要不要自己去做這些過程,而是指導別人去做,不是嗎?;沒關系嗎?所以我們面向對象思維的第一個變化就是實現。沃克,成為一名指揮家。

如果用定向思維來完成把大象放進冰箱的需求。我們的方法變成這樣:

1.找到冰箱,命令冰箱自己打開冰箱門。

2.找到大象,命令它自己進入冰箱。

命令冰箱再次自行關門。

所以實現這個需求需要的實體是:大象和冰箱。我們把出現在實現需求中的實體稱為對象。大象要能自己進入冰箱,冰箱要能自己開關門。我們稱之為對象的進入冰箱、開門和關門的能力,通常是用編程方法來表達的。

所以總結一下:

1.面向過程是實現需求的第一步,任何工作都需要自己去做。

2.面向對象意味著把一切都交給能做的人。

所以現在的問題是,如果需求變成了上面說的那些,面向對象怎么解決問題?我們現在要做的是分析需求中出現的對象(實體),然后賦予它們相應的能力。

在新的需求中,大象、獅子和猴子應該被放進冰箱和微波爐。這時,這里出現的物體(實體)是:動物和容器。動物需要的方法(能力)是進入容器,容器需要的方法(能力)是開關門。

因此,上述所有要求都可能變成:

1.[集裝箱]開門。

2.[動物]進入[容器]。

3.關閉[容器](或者如果需要關門,可以省略這一步)

所以這樣一來,我們就不不需要重復定義函數來實現這些需求。甚至在未來,需求變成了把動物從容器里拿出來,我們只要在動物物體上拓展把動物從容器里拿出來的方法,就可以快速完成需求。這個時候,你犧牲工作的幾率就小多了。

如何實現面向對象

說了這么多,大家大概也能明白什么是面向對象了。那么如何用js寫代碼實現面向對象呢?

在Javascript中,我們使用構造函數來創建對象。

函數大象(){

}

大象會有一些獨特的數據,比如它的體重、品種、年齡等等。我們稱這些獨特的數據為:屬性。每頭大象的數據就不一樣了。這種差異在代碼中是如何體現的?

功能象(年齡、體重、類型){

}

我們將每個數據作為形式參數傳入構造函數,然后在創建時決定每個大象的實際數據。最終的構造函數被寫成:

功能象(年齡、體重、類型){

年齡

這個重量重量

這種類型

}

如果我們想要一頭大象,我們要做的就是只是用新建的創建一個對象。

//這是一頭2歲重200kg的非洲象。

Varele1新象(2,200kg,非洲象)

//這是一頭3歲的美國大象,體重250kg。

Varele2新象(3,250kg,美國象)

現在大象有了,我們應該教大象進入容器的能力。這是方法。主要的編寫方法是將這些方法編寫到構造函數中。

功能象(年齡、體重、類型){

年齡

這個重量重量

這種類型

this.enterContainer函數(){}

}

大象造好了,接下來要做的就是把冰箱變成一個物體。我們還為冰箱寫了一個構造函數。

功能冰箱(){

}

同樣,冰箱這個對象也有其獨特的屬性(數據),比如冰箱的高度和寬度。我們還將這些屬性寫入構造函數。

功能冰箱(寬、高){

寬度寬度

這個高度高度

}

現在根據需求,冰箱應該有開關門的方法,我們也寫在構造函數上。

功能冰箱(寬、高){

寬度寬度

這個高度高度

函數(){}

函數(){}

}

此時,我們需要下面的代碼來完成"把大象放進冰箱"

//1找一個冰箱物體,這個物體的寬度和高度足以把大象放進去。

var冰箱貼新款冰箱貼(4m,4m)

//2給冰箱一個開門指令。

()

//3找到一個大象對象。

Var大象新象(2,200kg,非洲象)

//4給大象下達指令進入冰箱。

elephant.enterContainer()

//5向冰箱發出關閉指令。

()

但是這個時候,我們要實現把獅子放進冰箱的需求,就要寫一段代碼,描述獅子的屬性和方法。而這個代碼幾乎和描述大象的代碼一模一樣。

功能獅子(年齡、體重、類型){

年齡

這個重量重量

這種類型

this.enterContainer函數于(){}

}

這時我們分析,無論大象、獅子、猴子的屬性(年齡、體重、各種類型)和方法(進入容器)是否相同,這些都是我們需要的動物,所以讓讓我們直接寫一個描述動物的代碼。

功能動物(年齡、體重、類型){

年齡

這個重量重量

這種類型

this.enterContainer函數(){}

}

當我們想把大象放進冰箱時:

Varele新動物(2,250kg,非洲象)

ele.enterContainer()

當我們想把獅子放進冰箱時:

變異獅子新動物(2250公斤,美洲獅)

lion.enterContainer()

此時,不需要重復編寫代碼來達到類似的要求。但這時有同學想說,動物中猴子會爬樹,大象會如果要求猴子爬樹,can為什么我們不在動物構造器中增加一個爬樹的方法呢?這顯然是合理的!

當然不是!在解決這個同學之前的問題,讓讓我們做個總結。只是為了解決我們國家把動物放進冰箱的問題,我們把面向過程的方法改成了面向對象的方法。我們在上面的代碼中只使用了面向對象思想的第一個特性:封裝。所謂封裝,就是把對象(需求中的實體)的屬性(特征)和方法(能力)抽象出來,形成一個又一個的分類。在js中,es6之前沒有類的概念,所以我們用構造函數來表示每個分類。抽象對象,只要你想用,就用構造函數里的new操作,新建一個。

繼承

接下來解決猴子爬樹的問題。當然,要解決這個問題,我們需要利用面向對象思維的另一個特性:繼承。繼承意味著子類可以享受父類的屬性和方法(從這里開始不再解釋類似的屬性基本概念)。那么什么是子類和父類呢?為了解決把動物放入冰箱的問題,我們定義了一個動物構造器,我們理解為父類,然后提出這個問題:不是所有的動物都有相同的方法。猴子會爬樹,但大象會。;t.這個時候我們需要重新定義猴子的構造函數。我們把這種猴子理解為一個子類。

功能猴(年齡、體重、類型){

年齡

這個重量重量

這種類型

函數(){}

this.enterContain:原型。讓■首先在控制臺中輸出一個構造函數:

console.dir(數組)

此時,在控制臺中,我們可以看到數組構造函數有一個prototype屬性。這個屬性就是我們所說的原型。

通過擴展這個原型屬性,我們發現通常使用的數組的方法都是從這個原型派生出來的。換句話說,原型方法可以由實例對象共享。

然后我們會用原型來解決猴子代碼重復太多的問題。我們發現動物構造函數和猴子構造函數都需要一個函數來進入enterContainer。為了去掉這個重復的代碼,我們在Animal這個相當父類的構造函數中聲明,將Monkey的原型指向Animal的一個實例。

功能動物(年齡、體重、類型){

年齡

這個重量重量

這種類型

this.enterContainer函數(){

Console.log(進入容器)

}

}

功能猴(年齡、體重、類型){

年齡

這個重量重量

這種類型

函數(){}

}

新動物()

此時,我們新建了一個Monkey實例,并發現這個實例可以調用容器方法。

Var猴新猴(2,25kg,金絲猴)

monkey.enterContainer()

此時,進入容器的方法enterContainer就可以共享了。但是這種寫作有一個缺點,我們寫的方法都是寫在構造函數里的,每次我們新建對象都會在內存里聲明一個函數,而且這個函數的代碼每次都是一樣的。這是非常不必要的。

Varm1新款猴子(1,15kg,長臂猴子)

Varm2新猴(2,25kg,獼猴)

console.log(m1,m2)

我們模仿原生js的,在原型上寫方法來解決這個問題。

功能動物(年齡、體重、類型){

年齡

這個重量重量

這種類型

}

函數(){

Console.log(進入容器)

}

功能猴(年齡、體重、類型){

年齡

這個重量重量

這種類型

}

新動物()

函數(){

Console.log(小猴子正在爬樹)

}

首先從內存分析,對象上沒有對象方法。

然后從控制臺觀察。

Varm1新款猴子(1,15kg,長臂猴子)

Varm2新猴(2,25kg,獼猴)

console.log(m1,m2)

()

()

這是因為我們在原型上寫方法,原型上的方法可以被實例共享。M1和m2都是猴子的實例,可以調用爬樹的方法。

利用構造函數實現屬性繼承

到目前為止,我們已經解決了一些代碼的重用問題。我們發現有些代碼還是重復的,這部分代碼是對象的屬性。

在js中,我們可以使用借用構造函數來實現屬性的繼承。

什么是借款?這其實是一個所有函數都可以調用的方法:call方法。另一個功能是在函數執行時修改這個點。舉個簡單的例子:

函數fn(){

console.log(this)

}

fn()

這段代碼在正常情況下的結果是輸出窗口對象。

但是如果我們用借用的方法:

函數fn(){

consol:小明})

控制臺中的輸出是:我們正在使用call方法的第一個參數。利用這個特性,我們可以借用構造函數。

具體代碼如下

功能動物(年齡、體重、類型){

年齡這個重量重量

這種類型

}

功能猴(年齡、體重、類型){

(這個,年齡,體重,類型)

}

至此,Monkey中重復的屬性代碼沒有了。那么讓我們讓我們試試Monkey的一個實例是否會有這些屬性。

Varm1新款猴子(1,15kg,長臂猴子)

Varm2新猴(2,25kg,獼猴)

console.log(m1,m2)

所以最后,我們的代碼是這樣寫的

功能動物(年齡、體重、類型){

年齡

這個重量重量

這種類型

}

函數(){

Console.log(進入容器)

}

功能猴(年齡、體重、類型){

(這個,年齡,體重,類型)

}

新動物()

函數(){

Console.log(小猴子正在爬樹)

}

這個時候,如果是所有動物的方法,我們只需要回到世間。如果是猴子我們將把它寫在世界上。這就是js中實現定向的過程。我們把以上兩種實現繼承的稱為:組合繼承。

更簡單的語法實現面向對象

上面寫的是我們在es5標準下的面向對象過程。這個過程有點麻煩。在es6的新標準下,我們有了更簡單的語法來實現面向對象。

類別關鍵字

首先,讓我們讓我們理解es6中的一個新關鍵字:class,它允許我們快速定義類。語法如下:

類別類別名稱{

}

然后在里面寫這個類的構造函數。

類別類別名稱{

構造函數(){

}

}

例如,我們定義一個動物類。

動物類{

建造者(年齡、體重、類型){

年齡

這個重量重量

這種類型

}

}

當我想要一個動物實例時,我只需要新的。

Vara1新動物(2,200kg,非洲象)

console.log(a1)

這個語法的本質也是利用函數和原型來實現的,所以我想實現前面的動物和冰箱的問題,如果在這個新的語法中實現會更快。

擴展關鍵字

在新語法的情況下,如果我們想實現繼承,我們只需要使用一個新的。關鍵詞"擴展"會的。語法如下:

類子類擴展父類{

構造函數(){}

}

但重要的是,在這種新語法下實現的繼承,必須先在子類的構造函數中調用父類的構造函數。

類子類擴展父類{

構造函數(){

超級()

}

}

所以現在要認識到Mokey從動物的遺傳,我們不得不這樣寫。

動物類{

建造者(年齡、體重、類型){

年齡

這個重量重量

這種類型

}

enterContainer(){

Console.log(進入容器)

}

}

類Mokey擴展動物{

建造者(年齡、體重、類型){

超級(年齡、體重、類型)

}

climbingTree(){

Console.log(小猴子正在爬樹)

}

}

標簽

面向對象的思想其實并不難,基本上所有的高級語言都遵循這個思想。也就是說,我們在使用一種語言的時候,大部分都是調用該語言的API,這些API基本上都是用來調用對象的方法或者屬性的。要調用對象的方法或屬性,我們必須首先找到對象。其實找到對象,然后調用對象的方法和屬性的行為,就是我們在用面向對象的思維解決問題。

所以我對面向對象的疑問是:所謂面向對象就是找到一個對象,然后使用它的方法和屬性。

但是不同語言的實現過程是不一樣的。js中有兩種不同的實現方法:es5和es6,對js來說有好有壞。好處是新的語法標準不斷出來,證明語言還在蓬勃發展。缺點是對新手不友好。但值得肯定的是,js未來的勢頭非常好。

 
反對 0舉報 0 收藏 0 打賞 0評論 0
 
更多>同類資訊
推薦圖文
推薦資訊
點擊排行
合作伙伴
網站首頁  |  關于我們  |  聯系方式  |  使用協議  |  版權隱私  |  網站地圖  |  排名推廣  |  廣告服務  |  積分換禮  |  網站留言  |  RSS訂閱  |  違規舉報  |  冀ICP備2023006999號-8
 
久久免费电影网| 亚洲图片小说综合| 久久久精品视频成人| 国产日韩v精品一区二区| 欧美一区91| 黄页视频在线播放| eeuss影院18www免费| 午夜久久久久久噜噜噜噜| 少妇一级淫免费放| 蜜桃网站成人| 91福利视频网| 亚洲色图综合久久| 欧美精品亚洲二区| 亚洲精品国产精品乱码不99| 国产精品中文字幕日韩精品| 亚洲国产精品传媒在线观看| 美国黑人一级大黄| 妞干网在线视频观看| 精品国产乱码久久久久久郑州公司 | 午夜精品一区在线观看| 成人一区二区三区在线观看| 久久xxxx| 亚洲国产精品第一区二区| 自拍偷拍精品| 香蕉伊大人中文在线观看| 美女的奶胸大爽爽大片| 久久精品电影一区二区| 日韩电影中文字幕在线| 欧美喷水一区二区| 欧美羞羞免费网站| 亚洲高清免费观看 | 欧美成人第一区| 国产在线视频欧美| 国产精品爽爽爽| jizz国产在线观看| 韩国19禁主播vip福利视频| 日韩不卡在线观看| 4438x亚洲最大成人网| 欧美日韩久久久| 亚洲aⅴ怡春院| 亚洲一区在线观看网站| 亚洲成人1区2区| 亚洲男人的天堂在线aⅴ视频| 国产精品天美传媒沈樵| 国产丝袜欧美中文另类| 伊人成综合网yiren22| 精品三级在线观看视频| 国产成人在线中文字幕| 久久91麻豆精品一区| 免费看av成人| 999精品色在线播放| 久久久久午夜电影| 日本一区二区在线看| 亚洲经典一区| 一区二区三区高清视频在线观看| 亚洲激情一区| 日韩精品视频网| 床上的激情91.| 久久久精品国产免大香伊| 中文字幕免费一区| 亚洲美女屁股眼交3| 亚洲成人1区2区| 日韩亚洲欧美一区| 亚洲欧美变态国产另类| 欧美wwwxxxx| 国产精品扒开腿做爽爽爽的视频| 久久深夜福利免费观看| 91极品视频在线| 国产高清精品一区二区三区| 欧美日韩一区综合| 日韩福利视频| 青青草成人免费在线视频| 天天干天天av| 亚洲熟女少妇一区二区| 久久久午夜影院| 五月婷婷深深爱| 女人爱爱视频| 欧洲成人av| 一区二区三区电影大全| 在线一级成人| 国产精品亚洲综合久久| 99re这里都是精品| 一区二区三区精品在线| 亚洲激情图片qvod| 欧美日韩精品一区二区三区| 伊人久久免费视频| 国产成人精品免费视频| 欧美在线激情| 久久婷婷中文字幕| 欧美一级特黄高清视频| 国产特级黄色片| 国产成人禁片在线观看| 瑜伽美女视频| av影院在线| 青青久久av| 青青草国产精品亚洲专区无| 欧美国产日韩a欧美在线观看| 欧美一区二区视频在线观看2020 | 久久视频在线直播| 国产精品久久久久久久天堂第1集| 黄色网址在线免费看| 日本男女交配视频| 青青草福利视频| 97人妻人人澡人人爽人人精品| 一级做a爰片性色毛片视频| 邻居大乳一区二区三区| 国产精品白丝久久av网站| 国语精品一区| 亚洲免费观看在线视频| 亚洲国产精品视频在线观看| 成人福利在线观看| 男人天堂a在线| 国产精品无码久久久久久| 中文字幕观看视频| 成品网站w灬+源码1688网页 | 给我免费播放日韩视频| 日韩国产精品91| 亚洲主播在线观看| 在线观看日韩www视频免费| 欧美做受高潮1| 国产91免费视频| 毛片在线视频观看| 人妻av一区二区三区| 99热精品免费| 日韩在线视频免费| 国产1区2区3区| h片在线观看| 欧美电影在线观看免费| 在线亚洲成人| 久久久久久夜精品精品免费| 欧美日韩一区二区三区在线| 日韩视频亚洲视频| 国产伦理一区二区三区| 精品人妻二区中文字幕| 国产精品爽爽久久久久久| 开心丁香婷婷深爱五月| 欧美视频在线视频精品| 久久综合九色综合欧美狠狠| 国产精品久久久久aaaa| 日韩女优电影在线观看| 91精品国产91久久久| 日韩一区二区三区资源| 日本中文字幕精品| 久久久久久av无码免费看大片| 国产在线精选视频| 蜜桃麻豆av在线| 欧美精品二区| 亚洲色图欧洲色图婷婷| 亚洲色图50p| 精品国产一区二区三区久久久久久 | 成人国产精品一区二区免费麻豆| 久久香蕉精品| 亚洲欧美日韩国产一区二区三区| 精品网站999www| 最新精品视频| av资源免费观看| 中文在线天堂库| 999精品一区| 日韩欧美精品在线观看| 成人福利视频在线观看| 内射中出日韩无国产剧情| 午夜国产精品理论片久久影院| 日本成人不卡| 日本大胆欧美人术艺术动态| 欧美日韩在线播放一区| 97久久人人超碰caoprom欧美| 爱爱的免费视频| 免费的黄色片| 精品国产影院| 亚洲精品国产a久久久久久| 欧美性视频在线| 中文字幕12页| 欧美黑人巨大xxxx猛交| 色综合久久久| 欧美国产欧美亚州国产日韩mv天天看完整| 久久在线精品视频| 一路向西2在线观看| 四虎永久免费| 日韩有码欧美| 中文字幕一区二区不卡| 国产999精品视频| 朝桐光av一区二区三区| 黄色小视频免费| 蜜桃精品wwwmitaows| 欧美日韩色婷婷| 蜜桃91精品入口| 销魂美女一区二区| 精品麻豆一区二区三区| 国模大尺度一区二区三区| 久久久精品欧美| 欧美人与性动交α欧美精品| 国产不卡一卡2卡三卡4卡5卡在线| 高清日韩中文字幕| 日韩欧美国产视频| 亚洲人成77777| 国产黄色一级大片| 日本精品另类| 亚洲精品免费电影| 久久久久久高清| 欧美激情一区二区三区免费观看 |