Scala基礎(chǔ)語(yǔ)法全書教案教學(xué)設(shè)計(jì)_第1頁(yè)
Scala基礎(chǔ)語(yǔ)法全書教案教學(xué)設(shè)計(jì)_第2頁(yè)
Scala基礎(chǔ)語(yǔ)法全書教案教學(xué)設(shè)計(jì)_第3頁(yè)
Scala基礎(chǔ)語(yǔ)法全書教案教學(xué)設(shè)計(jì)_第4頁(yè)
Scala基礎(chǔ)語(yǔ)法全書教案教學(xué)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩178頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Scala基礎(chǔ)語(yǔ)法全書教案教學(xué)設(shè)計(jì)課程名稱:Scala基礎(chǔ)語(yǔ)法章節(jié)名稱:Scala入門與基礎(chǔ)202203月目錄TOC\o"1-2"\h\u一、基本說(shuō)明 2二、教學(xué)目標(biāo) 2三、教學(xué)重點(diǎn) 2四、教學(xué)難點(diǎn) 3五、教學(xué)方法 3六、教學(xué)準(zhǔn)備 3七、教學(xué)過程 3八、板書設(shè)計(jì) 18九、教具 19十、教學(xué)反思 19基本說(shuō)明授課班級(jí):授課人數(shù):教學(xué)時(shí)間:課時(shí):6課時(shí)課型:理論+實(shí)踐教學(xué)目標(biāo)知識(shí)與技能通過學(xué)習(xí)本課程,學(xué)生能夠了解Scala的發(fā)展和關(guān)鍵特性。通過學(xué)習(xí)本課程,學(xué)生能夠了解Scala的應(yīng)用場(chǎng)景。通過學(xué)習(xí)本課程,學(xué)生能夠掌握Scala的編譯原理與運(yùn)行。過程與方法通過相關(guān)的理論學(xué)習(xí)和案例練習(xí),學(xué)生可以掌握Scala的安裝和環(huán)境配置。通過相關(guān)的理論學(xué)習(xí)和案例練習(xí),學(xué)生可以掌握Scala的解釋器(REPL)和命令行編程技巧。通過相關(guān)的理論學(xué)習(xí)和案例練習(xí),學(xué)生可以掌握Scala的標(biāo)識(shí)符、命名規(guī)范、注解和換行符、常量與變量等情感、態(tài)度、價(jià)值觀通過Scala的特征學(xué)習(xí),學(xué)生可以了解Scala與Java的關(guān)系,以及Scala相對(duì)Java的優(yōu)勢(shì)和新特性。教學(xué)重點(diǎn)HelloWorld案例的編譯與運(yùn)行。教學(xué)難點(diǎn)無(wú)。教學(xué)方法對(duì)比教學(xué)法+實(shí)戰(zhàn)演練:教師以對(duì)比教學(xué)的方式,介紹Scala與Java的關(guān)系,以及Scala相對(duì)Java的優(yōu)勢(shì)和新特性,并通過Scala和Java對(duì)比的基礎(chǔ)語(yǔ)法學(xué)習(xí),向?qū)W生展示Scala在標(biāo)識(shí)符、關(guān)鍵字和變量的定義等方面與Java的相同點(diǎn)和不同點(diǎn)。同時(shí),通過REPL的案例練習(xí),向?qū)W生展示了如何在REPL中編寫程序,以及REPL編程的常用技巧。教學(xué)準(zhǔn)備學(xué)生準(zhǔn)備Windows操作系統(tǒng)。JDK8版本以上的安裝包。Scala2.1x安裝包。教師準(zhǔn)備Windows操作系統(tǒng)。JDK8版本以上的安裝包。Scala2.1x安裝包。教學(xué)過程導(dǎo)入新課(1)引出要講解的知識(shí)我們?yōu)槭裁匆獙W(xué)習(xí)Scala這門語(yǔ)言呢?Java之父JamesGoslin在一次參加JavaOne會(huì)議期間被人問道除了Java之外,還會(huì)在Java虛擬機(jī)(JVM)上運(yùn)行或者使用哪種語(yǔ)言,他脫口而出的答案就是Scala,足見Scala語(yǔ)言在他心目中的地位。而Groovy語(yǔ)言的創(chuàng)始人JamesStrachan認(rèn)為將來(lái)可能代替Java的就是Scala,他甚至說(shuō)如果有人在2003年把MartinOdersky、LexSpoon以及BillVenners編寫的那本《ProgramminginScala》拿給他看的話,Groovy這門語(yǔ)言很有可能就不會(huì)誕生了。因?yàn)樵谒磥?lái),擁有眾多出色特性的Scala語(yǔ)言不僅跟Groovy語(yǔ)言十分相似,而且還優(yōu)于Groovy語(yǔ)言。另外,使用Scala語(yǔ)言的程序員能夠獲得令人滿意的收入。根據(jù)國(guó)外知名IT網(wǎng)站StackOverflow2019年關(guān)于編程語(yǔ)言薪酬排行開發(fā)者調(diào)查報(bào)告得出的數(shù)據(jù),Scala入選了全球前十大收入最高的編程語(yǔ)言排名。(2)進(jìn)入主題,展開詳細(xì)講解本節(jié)課主要講解一下Scala的入門與基礎(chǔ),主要包括4部分內(nèi)容。第1部分將介紹何為Scala以及Scala的特點(diǎn)和應(yīng)用;第2部分將講解Scala的環(huán)境配置和安裝;第3部分主要講解Scala的編譯和運(yùn)行;第4部分我們將詳細(xì)講解Scala的基礎(chǔ)語(yǔ)法。(3)明確學(xué)習(xí)目標(biāo)了解Scala的發(fā)展和關(guān)鍵特性。了解Scala的應(yīng)用場(chǎng)景。掌握Scala的安裝和環(huán)境配置。掌握Scala的編譯原理與運(yùn)行。掌握Scala的解釋器(REPL)和命令行編程技巧。掌握Scala的標(biāo)識(shí)符、命名規(guī)范、注解和換行符、常量與變量等。講授課程(1)Scala的簡(jiǎn)介、特點(diǎn)和應(yīng)用1)為什么選擇Scala①技術(shù)大牛對(duì)Scala語(yǔ)言的評(píng)價(jià)非常之高。②使用Scala語(yǔ)言的程序員能夠獲得令人滿意的收入。2)何為ScalaScala是ScalableLanguage的縮寫,它是一門多范式的編程語(yǔ)言。Scala最早由瑞士洛桑聯(lián)邦理工學(xué)院(EPFL)的MartinOdersky于2001年基于Funnel(Funnel是把函數(shù)式編程思想和Petri網(wǎng)相結(jié)合的一種編程語(yǔ)言)的工作開始設(shè)計(jì),并于2003年底、2004年初發(fā)布Java平臺(tái)的Scala。Scala是一門將函數(shù)式編程和面向?qū)ο笙嘟Y(jié)合的語(yǔ)言。Scala是一門純面向?qū)ο蟮恼Z(yǔ)言Scala是一個(gè)純面向?qū)ο蟮恼Z(yǔ)言,它比Java更面向?qū)ο?,前面提到的基本類型、方法,它都?dāng)作是一個(gè)對(duì)象去處理,另外Scala沒有靜態(tài)成員,它采用單例對(duì)象來(lái)實(shí)現(xiàn)與Java靜態(tài)成員同樣的功能。即使是一個(gè)+、-、*、/這樣的操作符,Scala也認(rèn)為是一個(gè)方法的調(diào)用。Scala的函數(shù)式編程函數(shù)式編程最主要有兩個(gè)特性:第一個(gè)特性就是在函數(shù)式編程中,函數(shù)是“一等公民”。第二個(gè)特性就是函數(shù)式編程這個(gè)方法不應(yīng)該有副作用。3)Scala的面向?qū)ο蠛秃瘮?shù)式編程示例前面為大家講解了Scala的兩個(gè)最主要的特性——面向?qū)ο蠛秃瘮?shù)式編程,Scala的學(xué)習(xí)就是圍繞這兩個(gè)特性進(jìn)行的。本小節(jié)我們舉例說(shuō)明這兩個(gè)特性。4)Scala的特性面向?qū)ο筇匦?。支持命令式風(fēng)格和函數(shù)式風(fēng)格。自適應(yīng)靜態(tài)類型。簡(jiǎn)潔性?;谑录牟l(fā)模型。能與Java很好的兼容。5)Scala的自適應(yīng)靜態(tài)類型和簡(jiǎn)潔性示例前面已經(jīng)舉例說(shuō)明了Scala的面向?qū)ο缶幊毯秃瘮?shù)式編程這兩個(gè)特性,下面就舉幾個(gè)例子來(lái)幫助大家理解Scala的自適應(yīng)靜態(tài)類型和簡(jiǎn)潔性這兩個(gè)特性。6)Scala的應(yīng)用客戶端應(yīng)用程序。Web應(yīng)用。大數(shù)據(jù),如Spark、Flink等。Scala還能像shell一樣,作為腳本語(yǔ)言。Scala與Java的無(wú)縫調(diào)用。(2)Scala環(huán)境配置和安裝1)Scala的環(huán)境準(zhǔn)備Scala語(yǔ)言可以運(yùn)行在Windows系統(tǒng)、Linux系統(tǒng)、UNIX系統(tǒng)和Mac系統(tǒng)中。由于Scala是運(yùn)行在JVM上的一種語(yǔ)言,所以想要安裝Scala,就必須先安裝Java環(huán)境,也就是說(shuō)必須先安裝JDK。學(xué)習(xí)本課程需要安裝的Java版本是1.8,Scala的版本是2.12.x(這也是為后期講解Spark做準(zhǔn)備)。2)Scala在Windows平臺(tái)上的安裝在Windows平臺(tái)上安裝Scala主要有三個(gè)步驟:第一步是安裝JDK;第二步是下載和安裝Scala;第三步是安裝完后配置一個(gè)環(huán)境變量。因?yàn)閷W(xué)習(xí)過Java的同學(xué)都安裝過JDK,所以第一步JDK的安裝就不再講解了。下面我們主要講解一下Scala的下載與安裝以及環(huán)境變量的配置。=1\*GB3①Scala的下載和安裝下載地址:/downloads安裝步驟:一直下一步即可。=2\*GB3②Scala環(huán)境變量配置系統(tǒng)環(huán)境變量值(舉例)UNIX$SCALA_HOME/usr/local/share/scala$PATH$PATH:$SCALA_HOME/binWindows%SCALA_HOME%c:\Progra~1\Scala%PATH%%PATH%;%SCALA_HOME%\bin(3)Scala的編譯和運(yùn)行1)Scala的編譯和運(yùn)行原理=1\*GB3①Scala與Java的編譯和運(yùn)行我們可以通過兩種方式來(lái)進(jìn)行Scala代碼的編寫:第一種方式是通過Scala的解釋器(REPL);第二種方式也是非常常用的一種方式,即使用IDE來(lái)編寫。當(dāng)我們編寫完Scala程序之后,可以通過以下三種方式來(lái)進(jìn)行代碼的運(yùn)行。在命令行上運(yùn)行。使用Scala的解釋器(REPL)。IDE。=2\*GB3②Scala與Java的編譯和運(yùn)行原理當(dāng)編譯和運(yùn)行一個(gè)編寫好的Java程序或Scala程序時(shí),第一步就是通過一個(gè)編譯器把這種高級(jí)語(yǔ)言的文件(比如Java就是.java,Scala就是.scala)編譯成對(duì)應(yīng)的class文件,然后class文件通過執(zhí)行器運(yùn)行在JVM上,最后JVM把這個(gè)class文件轉(zhuǎn)換成對(duì)應(yīng)的不同平臺(tái)上的不同指令。2)Scala的編譯、運(yùn)行和反編譯=1\*GB3①Scala程序的入口Scala的程序入口有兩種,通過任何一種方式都可以定義一個(gè)可執(zhí)行的程序:定義一個(gè)object對(duì)象,然后在object對(duì)象里實(shí)現(xiàn)一個(gè)main方法;定義一個(gè)object對(duì)象,繼承APP的一個(gè)特質(zhì)(這里的特質(zhì)大家可以理解成對(duì)應(yīng)Java中的一個(gè)接口,后面會(huì)詳細(xì)講解)。=2\*GB3②Scala的編譯和運(yùn)行之前講過,要想運(yùn)行一個(gè)Scala程序,我們有三種方式:第一種方式是使用命令行;第二種方式是使用Scala的解釋器;第三種方式是直接利用IDE來(lái)運(yùn)行。這里就以命令行方式為例講解一下編譯和運(yùn)行Scala程序的過程:首先使用scalac命令將編寫好的Scala程序文件(.scala)編譯成class文件;然后使用scala命令+編譯得到的class文件名就可以運(yùn)行Scala程序。=3\*GB3③Scala的反編譯在Scala和Java中進(jìn)行編譯的時(shí)候,編譯器會(huì)在背后幫我們完成許多的工作,此時(shí)編譯生成的class文件中除了原先的程序代碼外,會(huì)自動(dòng)添加很多內(nèi)容,所以要想知道編譯器做了哪些工作,就必須通過反編譯的方式進(jìn)行查看。編譯后的class文件通過一般的文本編輯器打開會(huì)顯示亂碼,無(wú)法進(jìn)行查看,所以當(dāng)需要查看編譯后的class文件的內(nèi)容,想知道編譯器為我們做了哪些工作時(shí),可以通過以下三種方式來(lái)實(shí)現(xiàn):使用scalap命令反編譯后查看;由于class文件是運(yùn)行在JVM上的,因此也可以使用javap命令反編譯后查看;利用一些第三方的反編譯插件查看。反編譯class文件主要有以下三個(gè)作用。通過對(duì)class文件的反編譯,可以更深入了解所編寫代碼在編譯器里的工作原理。通過對(duì)class文件的反編譯,可以查看編寫的代碼轉(zhuǎn)換成的匯編指令。匯編指令非常有用,尤其是在理解高并發(fā)編程的時(shí)候。當(dāng)實(shí)際開發(fā)工作中其他程序員所提供Java包中的class文件無(wú)法看懂時(shí),可以反編譯查看源代碼。指定編譯和運(yùn)行路徑首先以HelloWord案例為基礎(chǔ),在其中引入一個(gè)其他的類,再使用scala、scalac命令去編譯和運(yùn)行程序。然后我們把上面例子中的Person.class文件移動(dòng)到classes文件夾下,再次編譯和運(yùn)行代碼,學(xué)習(xí)一下如何指定編譯和運(yùn)行時(shí)的路徑,以及相對(duì)路徑的使用。4)反編譯的三種方式之前講過,要想反編譯一個(gè)class文件有三種方式,我們可以根據(jù)不同的需求選擇不同的方式。前面已經(jīng)練習(xí)過怎樣使用scalap命令去反編譯class文件,這里我們首先舉例說(shuō)明如何使用javap命令反編譯一個(gè)Scala生成的class文件,然后舉例講解一種可以在編譯的同時(shí)查看Scala的代碼是如何執(zhí)行的方式。5)REPL基本操作這一節(jié)我們來(lái)學(xué)習(xí)運(yùn)行Scala的第二種方式——使用Scala的解釋器REPL。REPL是Read-Eval-PrintLoop(交互式解釋器)的縮寫,它是Scala中一個(gè)評(píng)估表達(dá)式的工具,大家把它理解成一個(gè)交互式的命令行工具即可。REPL的常用命令:use//print<tab>toshowtypeddesugarings.用//print<tab>顯示鍵入的重復(fù)標(biāo)記。use:helpforalistofcommands.獲取命令列表。use:loadtoloadafileofREPLinput.加載REPL輸入文件。use:pastetoenteraclassandobjectascompanions.以輸入類和對(duì)象作為伴侶。use:paste-rawtodisablecodewrapping,todefineapackage.禁用代碼包裝,以定義軟件包。use:javaptoinspectclassartifacts.檢查類工件。use-Yrepl-outdirtoinspectclassartifactswithexternaltools.使用外部工具檢查類工件。use:powertoenterpowermodeandimportcompilercomponents.進(jìn)入電源模式并導(dǎo)入編譯器組件。use:settingstomodifycompilersettings;somesettingsrequire:replay.來(lái)修改編譯器設(shè)置;某些設(shè)置要求:重播。use:replaytoreplaythesessionwithmodifiedsettings.以修改后的設(shè)置重播會(huì)話。6)REPL常見命令的應(yīng)用=1\*GB3①在Scala解釋器中使用自定義類或者第三方類我們?cè)谑褂肧cala解釋器的時(shí)候,可以直接使用像字符串、整型、浮點(diǎn)型等這些常用類型的對(duì)象還有方法,這是由于Scala解釋器在啟動(dòng)時(shí)會(huì)自動(dòng)加載Scala和Java的環(huán)境變量,從而把Scala和Java的一些默認(rèn)定義好的方法和類加載進(jìn)來(lái)的緣故。=2\*GB3②在Scala解釋器中輸入if…else…語(yǔ)句像if…else…這種帶有多行結(jié)束符的語(yǔ)句,是沒法在Scala解釋器中運(yùn)行的。就算是提前編寫好的一段if…else…代碼,復(fù)制過來(lái)一樣是無(wú)法使用的,因?yàn)榻忉屍鲿?huì)認(rèn)為代碼在第一行就已經(jīng)結(jié)束了。但我們可以使用解釋器命令paste來(lái)完成if…else…代碼的輸入。(4)Scala基礎(chǔ)語(yǔ)法1)Scala的標(biāo)識(shí)符=1\*GB3①標(biāo)識(shí)符的定義標(biāo)識(shí)符是用戶編程時(shí)使用的名字,可用于給變量、常量、函數(shù)、語(yǔ)句塊等命名,以建立起名稱與使用之間的關(guān)系。=2\*GB3②Scala中標(biāo)識(shí)符的作用Scala組件都需要名稱,所以標(biāo)識(shí)符的作用是給對(duì)象、類、變量和方法命名。在Scala中使用標(biāo)識(shí)符時(shí)需要注意以下兩點(diǎn):標(biāo)識(shí)符不能以數(shù)字開頭,并且不能是Scala中的關(guān)鍵字(但可以包含關(guān)鍵字)。符號(hào)$在Scala中也可以看作字母。然而以$開頭的標(biāo)識(shí)符被保留作為Scala編譯器產(chǎn)生的標(biāo)識(shí)符之用,應(yīng)用程序應(yīng)該避免使用$開頭的標(biāo)識(shí)符,以免造成沖突。=3\*GB3③Scala中標(biāo)識(shí)符的分類Scala中的標(biāo)識(shí)符分為字母數(shù)字標(biāo)識(shí)符、運(yùn)算符標(biāo)識(shí)符、混合標(biāo)識(shí)符和字面量標(biāo)識(shí)符四大類,分別介紹如下。字母數(shù)字標(biāo)識(shí)符:字母數(shù)字標(biāo)識(shí)符以字母或下劃線開頭,后面可以有更多的字母、數(shù)字或下劃線。不建議在標(biāo)識(shí)符中使用$開頭的標(biāo)識(shí)符。運(yùn)算符標(biāo)識(shí)符:運(yùn)算符標(biāo)識(shí)符由一個(gè)或多個(gè)運(yùn)算符字符組成。運(yùn)算符字符是可打印的ASCII字符,如:+、:::、:->($colon$minus$greater)、?、~、#等?;旌蠘?biāo)識(shí)符:混合標(biāo)識(shí)符是字母數(shù)字標(biāo)識(shí)符后面跟著一個(gè)下劃線和一個(gè)運(yùn)算符標(biāo)識(shí)符,如a_+。字面量標(biāo)識(shí)符:一個(gè)字面量標(biāo)識(shí)符是一個(gè)隨意的字符串,包含在反引號(hào)(``)中。前面講過,Scala中的關(guān)鍵字不可以作為標(biāo)識(shí)符使用,但是用反引號(hào)括起來(lái)就可以使用了,比如`def`、`yield`等。2)Scala的關(guān)鍵字和注釋=1\*GB3①Scala與Java的關(guān)鍵字下圖列出了Scala和Java中的關(guān)鍵字,可以看到其中有Scala和Java共有的關(guān)鍵字,也有各自獨(dú)有的關(guān)鍵字。=2\*GB3②Scala代碼中的注釋在代碼中添加注釋可以解釋說(shuō)明程序,提高程序的可讀性。和Java一樣,在Scala中,主要有單行注釋、多行注釋和文檔注釋這三種類型,它們的語(yǔ)法格式分別介紹如下。單行注釋的語(yǔ)法格式://注釋文字多行注釋的語(yǔ)法格式:/*注釋文字*/文檔注釋的語(yǔ)法格式:/**注釋文字*/3)Scala的分號(hào)分號(hào)是表達(dá)式的分隔符,Scala具有自動(dòng)推斷分號(hào)的功能。在Scala和Java中,分號(hào)都是一個(gè)語(yǔ)句的分隔符,都起到判斷一個(gè)語(yǔ)句或表達(dá)式是否結(jié)束的作用。與Java中編寫代碼換行時(shí)必須用分號(hào)結(jié)束這一強(qiáng)制性要求不同,Scala具有自動(dòng)推斷分號(hào)的功能。也就是說(shuō),在Scala中編寫代碼換行時(shí),可以不加分號(hào),當(dāng)沒有加分號(hào)時(shí),Scala會(huì)在編譯時(shí)自動(dòng)加上分號(hào)。雖然Scala具有自動(dòng)推斷分號(hào)的功能,但是必須遵守以下規(guī)則:如果一行只有一條語(yǔ)句或一個(gè)表達(dá)式時(shí),則分號(hào)可以加,也可以不加;如果一行有多條語(yǔ)句或多個(gè)表達(dá)式時(shí),則分號(hào)必須填寫。Scala在自動(dòng)推斷分號(hào)時(shí)一般以換行代表一條語(yǔ)句或一個(gè)表達(dá)式的結(jié)束,但是在遇到以下任何一種情況時(shí)都會(huì)推斷出表達(dá)式尚未結(jié)束,從而把當(dāng)前表達(dá)式延續(xù)到下一行:如果當(dāng)前行以一個(gè)不能結(jié)尾的詞結(jié)尾,如英文句號(hào)或中輟操作符;如果當(dāng)前行結(jié)尾出現(xiàn)在()或[]內(nèi)。Scala分號(hào)示例演示本節(jié)我們舉例復(fù)習(xí)一下Scala分號(hào)的使用。Scala的變量=1\*GB3①變量定義變量是一種使用方便的占位符,用于引用計(jì)算機(jī)內(nèi)存地址,變量創(chuàng)建后會(huì)占用一定的內(nèi)存空間。=2\*GB3②變量的作用訪問和修改內(nèi)存數(shù)據(jù)。=3\*GB3③變量的聲明var:聲明可變變量;val:聲明不可變變量。=4\*GB3④變量的類型聲明var/val變量名:類型=5\*GB3⑤聲明多變量val|var變量1,變量2,...=變量值Scala變量?jī)?nèi)存結(jié)構(gòu)變量的三要素是變量的名稱、變量的地址,及真正存儲(chǔ)數(shù)據(jù)的內(nèi)存空間,我們通過變量的名稱和地址來(lái)找到真正存儲(chǔ)數(shù)據(jù)的空間。在JVM中,變量和變量的地址還有數(shù)據(jù)是分開存儲(chǔ)的,整個(gè)內(nèi)存被劃分為兩大部分:“?!焙汀岸选??!皸!崩镏饕鎯?chǔ)引用的地址,也就是內(nèi)存空間的地址;而“堆”里存的是內(nèi)存空間。每一個(gè)聲明的變量都會(huì)被分配“堆”里的一部分內(nèi)存空間,并為該部分內(nèi)存空間分配一個(gè)標(biāo)號(hào),這個(gè)標(biāo)號(hào)實(shí)際就是內(nèi)存空間的地址,該地址跟變量存儲(chǔ)在“?!崩?。當(dāng)一個(gè)變量想要訪問其內(nèi)存空間中的數(shù)據(jù)時(shí),就要先在“棧”里找到該變量對(duì)應(yīng)的內(nèi)存空間的地址,然后通過該地址指向或者說(shuō)引用“堆”中的數(shù)據(jù)。Scala的lazy變量一個(gè)變量在聲明時(shí),使用lazy進(jìn)行修飾,那么這個(gè)變量只有在使用的時(shí)候才會(huì)被賦值。聲明一個(gè)lazy變量的語(yǔ)法如下:lazyval變量名在Scala中使用lazy變量主要有以下兩個(gè)作用。優(yōu)化程序的性能。解決繼承變量為空的問題。鞏固練習(xí)(1)請(qǐng)指出以下哪些選項(xiàng)是合法的標(biāo)識(shí)符。若判斷為不合法的標(biāo)識(shí)符,請(qǐng)給出原因。ageabc#@salaryabname_+_value__1_value$salaryyield123abcdefimplicitFor-salary(2)判斷以下語(yǔ)句是否為合法的語(yǔ)句。vals=hello"println(s)(3)以下哪些是合法的語(yǔ)句。若判斷為不合法的語(yǔ)句,請(qǐng)給出原因。vala=10varb:String=100vals="hello";s="您好"varage=10;age=20(4)以下代碼中標(biāo)注的①、②、③哪個(gè)是合法的語(yǔ)句。classPerson{valname="Scala"valsex="wo"varage=20}valperson=newPersonperson.name=“scala”//①person.age=30//②person=newPerson//③課堂小結(jié)本課程通過Scala的特征學(xué)習(xí),向?qū)W生展示了Scala與Java的關(guān)系,以及Scala相對(duì)Java的優(yōu)勢(shì)和新特性;并通過對(duì)scala和scalac命令的學(xué)習(xí),向?qū)W生展示了如何編寫、運(yùn)行和編譯一個(gè)Scala程序;然后通過REPL的案例練習(xí),向?qū)W生展示了如何在REPL中編寫程序,以及REPL編程常用技巧;最后通過Scala和Java對(duì)比的基礎(chǔ)語(yǔ)法學(xué)習(xí),向?qū)W生展示了Scala在標(biāo)識(shí)符、關(guān)鍵字和變量的定義等方面與Java的相同點(diǎn)和不同點(diǎn)。布置作業(yè)(1)課下作業(yè)用Scala編寫一個(gè)注冊(cè)類,含有用戶名和密碼兩個(gè)屬性,要求:1)用戶名不可修改;2)密碼可修改。然后在REPL分別輸出原始信息(用戶名和密碼)和修改后的信息。(2)預(yù)習(xí)作業(yè)1)Scala的數(shù)據(jù)類型。2)Scala的基本運(yùn)算。八、板書設(shè)計(jì)九、教具無(wú)教學(xué)反思課程名稱:Java核心基礎(chǔ)章節(jié)名稱:類型轉(zhuǎn)換和運(yùn)算符2019年12月目錄TOC\o"1-2"\h\u一、基本說(shuō)明 2二、教學(xué)目標(biāo) 2三、教學(xué)重點(diǎn) 2四、教學(xué)難點(diǎn) 3五、教學(xué)方法 3六、教學(xué)準(zhǔn)備 3七、教學(xué)過程 3八、板書設(shè)計(jì) 11九、教具 11十、教學(xué)反思 11基本說(shuō)明授課班級(jí):授課人數(shù):教學(xué)時(shí)間:課時(shí):6課時(shí)課型:理論+實(shí)踐教學(xué)目標(biāo)知識(shí)與技能通過自主學(xué)習(xí)本課程,學(xué)生能夠理解精度損失的含義,掌握精度損失出現(xiàn)的原因。通過自主學(xué)習(xí)本課程,學(xué)生能夠理解運(yùn)算符和表達(dá)式的概念。過程與方法通過課堂練習(xí),學(xué)生能夠進(jìn)一步掌握進(jìn)制間的轉(zhuǎn)換規(guī)則和方法。情感、態(tài)度、價(jià)值觀通過完成運(yùn)算符的運(yùn)用練習(xí),學(xué)生能夠掌握J(rèn)ava中的運(yùn)算符規(guī)則,理解運(yùn)算符的功能及運(yùn)用,為學(xué)生掌握J(rèn)ava語(yǔ)言打下堅(jiān)實(shí)基礎(chǔ)。教學(xué)重點(diǎn)數(shù)據(jù)類型轉(zhuǎn)換分類。精度損失。編碼。數(shù)據(jù)類型轉(zhuǎn)換擴(kuò)展。進(jìn)制轉(zhuǎn)換。原碼、補(bǔ)碼和反碼。教學(xué)難點(diǎn)需要學(xué)生理解和掌握一些數(shù)據(jù)類型轉(zhuǎn)換的擴(kuò)展知識(shí)。數(shù)據(jù)類型轉(zhuǎn)換面試題分析。掌握不同進(jìn)制之間的轉(zhuǎn)換規(guī)則。掌握原碼、補(bǔ)碼和反碼的定義及計(jì)算。教學(xué)方法邊講邊練:教師以邊講邊練的方式,一邊介紹Java語(yǔ)言中的舍入誤差、精度損失、編碼、進(jìn)制、原碼、補(bǔ)碼和反碼,及算術(shù)運(yùn)算符、賦值運(yùn)算符、關(guān)系運(yùn)算符和自增自減運(yùn)算符等內(nèi)容,一邊通過代碼演練,讓學(xué)生鞏固所學(xué)知識(shí)。教學(xué)準(zhǔn)備學(xué)生準(zhǔn)備Windows操作系統(tǒng)。JDK8版本以上的安裝包。教師準(zhǔn)備Windows操作系統(tǒng)。JDK8版本以上的安裝包。教學(xué)過程導(dǎo)入新課(1)回顧上節(jié)課內(nèi)容并答疑解惑回顧上一節(jié)課的內(nèi)容,并對(duì)上一節(jié)課布置的作業(yè)以及學(xué)生提出的問題進(jìn)行答疑解惑。(2)進(jìn)入主題,展開詳細(xì)講解本節(jié)課我們將學(xué)習(xí)Java語(yǔ)言的類型轉(zhuǎn)換和運(yùn)算符兩大部分內(nèi)容。類型轉(zhuǎn)換部分,除了介紹類型轉(zhuǎn)換的分類等基礎(chǔ)知識(shí)外,我們還將學(xué)習(xí)Java語(yǔ)言中的舍入誤差、精度損失、編碼、進(jìn)制、原碼、補(bǔ)碼和反碼等內(nèi)容;而運(yùn)算符部分,本節(jié)課只對(duì)一些基本的運(yùn)算符進(jìn)行介紹,包括算術(shù)運(yùn)算符、賦值運(yùn)算符、關(guān)系運(yùn)算符和自增自減運(yùn)算符等,一些高級(jí)的運(yùn)算符將在下一課程中學(xué)習(xí)。(3)明確學(xué)習(xí)目標(biāo)理解精度損失的含義。掌握精度損失出現(xiàn)的原因。掌握進(jìn)制間的轉(zhuǎn)換規(guī)則。理解運(yùn)算符和表達(dá)式概念。掌握J(rèn)ava中的運(yùn)算符規(guī)則。講授課程(1)類型轉(zhuǎn)換1)變量注意事項(xiàng)在用Java語(yǔ)言編程的過程中,使用變量時(shí)有3個(gè)注意事項(xiàng):變量如果沒有進(jìn)行賦值,是不可以直接使用的;變量只有在自己所屬的作用域之內(nèi)才有效;一行代碼中可以一次性定義多個(gè)相同類型的變量并且賦值,但是不推薦使用。而所謂作用域,指的是從變量定義的一行開始,至所在的大括號(hào)結(jié)束之間的區(qū)域。2)舍入誤差舍入誤差(Round-offerror)是指運(yùn)算得到的近似值和精確值之間的差異。在Java語(yǔ)言中多數(shù)的小數(shù)運(yùn)算是不能獲取精確值的。3)類型轉(zhuǎn)換分類類型轉(zhuǎn)換是將一個(gè)值從一種類型更改為另一種類型的過程。它分為兩大類,分別為自動(dòng)類型轉(zhuǎn)換和強(qiáng)制類型轉(zhuǎn)換。自動(dòng)類型轉(zhuǎn)換也稱為隱式類型轉(zhuǎn)換,它是由范圍小的數(shù)據(jù)類型轉(zhuǎn)換為范圍大的數(shù)據(jù)類型,系統(tǒng)將自動(dòng)執(zhí)行;強(qiáng)制類型轉(zhuǎn)換也稱為顯式類型轉(zhuǎn)換,它是由范圍大的數(shù)據(jù)類型轉(zhuǎn)換為范圍小的數(shù)據(jù)類型。兩種類型的數(shù)據(jù)類型轉(zhuǎn)換都有各自的特點(diǎn),自動(dòng)類型轉(zhuǎn)換的特點(diǎn)是自動(dòng)完成轉(zhuǎn)換,不需要程序員特殊處理。強(qiáng)制類型轉(zhuǎn)換的特點(diǎn)是需要特殊處理,否則可能編譯不通過。4)精度損失通過強(qiáng)制類型轉(zhuǎn)換確實(shí)可以將范圍大的數(shù)據(jù)類型轉(zhuǎn)換為范圍小的數(shù)據(jù)類型,但請(qǐng)注意,當(dāng)數(shù)值在范圍小的數(shù)據(jù)類型的范圍之內(nèi)時(shí),是不會(huì)出現(xiàn)錯(cuò)誤的,但當(dāng)數(shù)值在其范圍之外時(shí),強(qiáng)制類型轉(zhuǎn)換的輸出結(jié)果就會(huì)有誤差,這就是精度損失。強(qiáng)制類型轉(zhuǎn)換可能會(huì)出現(xiàn)精度損失的問題,且將小數(shù)強(qiáng)轉(zhuǎn)為整數(shù)時(shí),會(huì)直接將小數(shù)部分舍棄,此時(shí)也會(huì)出現(xiàn)精度損失。5)編碼編碼是信息從一種形式或格式轉(zhuǎn)換為另一種形式的過程,也稱為計(jì)算機(jī)編程語(yǔ)言的代碼,簡(jiǎn)稱編碼。主要有ASCII、ISO8859-1、GBK和UTF-8等幾種常用的編碼。ASCIIASCII為美國(guó)標(biāo)準(zhǔn)信息交換碼,用一個(gè)字節(jié)的7位表示,總共有128個(gè),包含了英文的大小寫、常用符號(hào)和數(shù)字。ISO8859-1ISO8859-1為拉丁碼表,用一個(gè)字節(jié)的8位表示。ISO8859-1以ASCII為基礎(chǔ),在空置的范圍內(nèi),加入192個(gè)字母及符號(hào)。GBK和UTF-8隨著科技的發(fā)展,中文也需要碼表,此時(shí)出現(xiàn)了GBK和UTF-8。它們的英文均占一個(gè)字節(jié),GBK的中文占兩個(gè)字節(jié),UTF-8的中文占三個(gè)字節(jié)。中文在不同的編碼中占的字節(jié)數(shù)是不同的,這也是中文會(huì)出現(xiàn)亂碼的原因。6)類型轉(zhuǎn)換擴(kuò)展byte/short/char類型的數(shù)據(jù),在運(yùn)算時(shí)會(huì)自動(dòng)提升為int類型的數(shù)據(jù),字符在參與運(yùn)算時(shí)已經(jīng)轉(zhuǎn)換為了對(duì)應(yīng)碼表的數(shù)字。byte/short/char類型的數(shù)據(jù),如果右邊的值沒有超出范圍,那么Java會(huì)自動(dòng)強(qiáng)制類型轉(zhuǎn)換,如果超出范圍則不會(huì)。7)進(jìn)制進(jìn)制就是進(jìn)位計(jì)數(shù)制,是人為定義的帶進(jìn)位的計(jì)數(shù)方法。二進(jìn)制(bin):由0~1組成,滿2進(jìn)1,以0b作為二進(jìn)制的標(biāo)識(shí)。八進(jìn)制(oct):由0~7組成,滿8進(jìn)1,以0作為八進(jìn)制的標(biāo)識(shí)。十進(jìn)制(dec):由0~9組成,滿10進(jìn)1。十六進(jìn)制(hex):由0~9、a~f組成,滿16進(jìn)1,以0x作為十六進(jìn)制的標(biāo)識(shí)。十六進(jìn)制中的a-f,不區(qū)分大小寫。8)進(jìn)制轉(zhuǎn)換十進(jìn)制轉(zhuǎn)換為二進(jìn)制十進(jìn)制轉(zhuǎn)換為二進(jìn)制是將十進(jìn)制的數(shù)不斷除以2取余,然后將余數(shù)倒排序即可。二進(jìn)制轉(zhuǎn)換為十進(jìn)制二進(jìn)制轉(zhuǎn)換為十進(jìn)制是從低位次起,按位次乘以2的位次冪,然后求和。十進(jìn)制轉(zhuǎn)換為其他進(jìn)制十進(jìn)制轉(zhuǎn)換為其他進(jìn)制的方法和轉(zhuǎn)換為二進(jìn)制的方法類似,十進(jìn)制向哪個(gè)進(jìn)制轉(zhuǎn)換就除以哪個(gè)進(jìn)制,然后取余倒排即可。二進(jìn)制轉(zhuǎn)換為八進(jìn)制二進(jìn)制轉(zhuǎn)換為八進(jìn)制是從低位次起,每3位為一組,產(chǎn)生一個(gè)八進(jìn)制數(shù)字,最高位不足3位時(shí)補(bǔ)0,3位以內(nèi)按照二進(jìn)制向十進(jìn)制的轉(zhuǎn)換規(guī)則進(jìn)行運(yùn)算,產(chǎn)生的八進(jìn)制數(shù)字按順序排列即可。八進(jìn)制轉(zhuǎn)換為二進(jìn)制八進(jìn)制轉(zhuǎn)換為二進(jìn)制,其方法與二進(jìn)制轉(zhuǎn)換為八進(jìn)制相反,將每位八進(jìn)制的值轉(zhuǎn)換為3位二進(jìn)制的數(shù)字,然后將這些二進(jìn)制的數(shù)字按順序排列即可。二進(jìn)制轉(zhuǎn)換為十六進(jìn)制二進(jìn)制轉(zhuǎn)換為十六進(jìn)制其實(shí)是四變一的過程,操作方法與二進(jìn)制轉(zhuǎn)換為八進(jìn)制方法一致。首先將二進(jìn)制數(shù)從右向左按4位分組,不足以0補(bǔ)全,然后將每組二進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制,最后按順序排列即可。十六進(jìn)制轉(zhuǎn)換為二進(jìn)制十六進(jìn)制轉(zhuǎn)換為二進(jìn)制是一變四的過程,與二進(jìn)制轉(zhuǎn)換為十六進(jìn)制相反。9)原碼、補(bǔ)碼和反碼原碼(trueform)是一種計(jì)算機(jī)中對(duì)數(shù)字的二進(jìn)制定點(diǎn)表示方法。補(bǔ)碼是計(jì)算機(jī)把減法運(yùn)算轉(zhuǎn)化為加法運(yùn)算的關(guān)鍵編碼。反碼通常是用來(lái)由原碼求補(bǔ)碼或者由補(bǔ)碼求原碼的過渡碼。在Java中的數(shù)據(jù)底層都是使用數(shù)據(jù)的補(bǔ)碼形式存儲(chǔ)和計(jì)算的。正數(shù)的原碼、補(bǔ)碼和反碼都相同;負(fù)數(shù)的反碼是符號(hào)位不變,其他位取反;負(fù)數(shù)的補(bǔ)碼是符號(hào)位不變,在反碼的基礎(chǔ)上加1。在介紹負(fù)數(shù)的反碼和補(bǔ)碼時(shí),涉及到符號(hào)位,符號(hào)位一般放在最高位,常用0作為正數(shù),用1作為負(fù)數(shù)。(2)運(yùn)算符運(yùn)算符是對(duì)變量和常量進(jìn)行運(yùn)算的符號(hào)。表達(dá)式是使用運(yùn)算符將常量或者變量連接起來(lái)的式子。1)運(yùn)算符分類運(yùn)算符分為算術(shù)運(yùn)算符、賦值運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、三目運(yùn)算符和位運(yùn)算符幾種,其中三目運(yùn)算符也稱為三元運(yùn)算符。本節(jié)課將主要介紹算術(shù)運(yùn)算符、賦值運(yùn)算符、關(guān)系運(yùn)算符和自增自減運(yùn)算符。2)運(yùn)算符的使用算術(shù)運(yùn)算符Java中的算術(shù)運(yùn)算符包含+、-、*、/和%幾種。表1算術(shù)運(yùn)算符序號(hào)運(yùn)算符含義示例1+加12+3=152-減12-3=93*乘12*3=364/除12/3=45%取余數(shù)12%5=2自增自減運(yùn)算符自增自減運(yùn)算符包括++、--兩種,可以放在變量前面,也可以放在變量后面。它們可以獨(dú)立使用,也可以混合使用。獨(dú)立使用時(shí),自增自減運(yùn)算符放在變量前面和后面沒有區(qū)別,都是對(duì)變量進(jìn)行+1或者-1的操作。自增自減運(yùn)算符混合使用時(shí),如果運(yùn)算符++(--)在變量前面,那么首先變量自身加1(減1),然后根據(jù)加1(減1)后的結(jié)果進(jìn)行使用;如果運(yùn)算符++(--)在變量后面,則先對(duì)變量進(jìn)行使用,然后變量自身加1(減1)。賦值運(yùn)算符賦值運(yùn)算符包括+=、-=、*=、/=和%=運(yùn)算符。賦值運(yùn)算符默認(rèn)包含一個(gè)強(qiáng)制類型轉(zhuǎn)換操作。關(guān)系運(yùn)算符關(guān)系運(yùn)算符包括==、!=、>=、<=、>和<運(yùn)算符,其最終結(jié)果都是布爾類型。表2關(guān)系運(yùn)算符序號(hào)運(yùn)算符含義1==比較左右兩方是否相等2!=比較左方是否不等于右方3>=比較左方是否大于等于右方4<=比較左方是否小于等于右方5>比較左方是否大于右方6<比較左方是否小于右方鞏固練習(xí)(1)以下代碼能否編譯成功?為什么?1)charch1=97;shortch2=‘a(chǎn)’;2)charch1=97;shortch2=‘a(chǎn)’;shortch2=ch1。(2)計(jì)算-5的原碼、反碼和補(bǔ)碼。課堂小結(jié)通過本課程內(nèi)容的學(xué)習(xí),相信同學(xué)們已經(jīng)能夠掌握變量使用時(shí)的注意事項(xiàng),以及Java中類型轉(zhuǎn)換和運(yùn)算符的應(yīng)用。其中類型轉(zhuǎn)換是本節(jié)課程的重點(diǎn)和難點(diǎn),自增自減運(yùn)算符是運(yùn)算符知識(shí)點(diǎn)中的難點(diǎn),常見于企業(yè)面試和證書考試中,一定要多多練習(xí)。熟練掌握基礎(chǔ)運(yùn)算符的使用,將為接下來(lái)學(xué)習(xí)高級(jí)運(yùn)算符打好基礎(chǔ)。布置作業(yè)(1)課下作業(yè)對(duì)于inti=3,j=5;請(qǐng)同學(xué)們寫出能夠交換i和j的值的方式并比較各種方式的優(yōu)劣性。(2)預(yù)習(xí)作業(yè)1)邏輯運(yùn)算符、三目運(yùn)算符和位運(yùn)算符。2)流程控制語(yǔ)句。八、板書設(shè)計(jì)九、教具notepaddos十、教學(xué)反思課程名稱:Java核心基礎(chǔ)章節(jié)名稱:運(yùn)算符和流程控制語(yǔ)句2019年12月目錄TOC\o"1-2"\h\u一、基本說(shuō)明 2二、教學(xué)目標(biāo) 2三、教學(xué)重點(diǎn) 2四、教學(xué)難點(diǎn) 2五、教學(xué)方法 3六、教學(xué)準(zhǔn)備 3七、教學(xué)過程 3八、板書設(shè)計(jì) 16九、教具 16十、教學(xué)反思 16基本說(shuō)明授課班級(jí):授課人數(shù):教學(xué)時(shí)間:課時(shí):6課時(shí)課型:理論+實(shí)踐教學(xué)目標(biāo)知識(shí)與技能通過自主學(xué)習(xí)本課程,學(xué)生能夠掌握J(rèn)ava的邏輯運(yùn)算符、三目運(yùn)算符和位運(yùn)算符。通過自主學(xué)習(xí)本課程,學(xué)生能夠理解短路效果的含義。通過自主學(xué)習(xí)本課程,學(xué)生能夠熟練流程控制語(yǔ)句結(jié)構(gòu)。過程與方法通過課堂練習(xí),學(xué)生能夠進(jìn)一步掌握位運(yùn)算的算法。情感、態(tài)度、價(jià)值觀通過探究學(xué)習(xí)本課程,學(xué)生能夠了解順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的異同,掌握跳轉(zhuǎn)控制語(yǔ)句的用法,為學(xué)生掌握J(rèn)ava語(yǔ)言打下堅(jiān)實(shí)基礎(chǔ)。教學(xué)重點(diǎn)運(yùn)算符的使用。if語(yǔ)句格式三。for循環(huán)結(jié)構(gòu)。教學(xué)難點(diǎn)需要學(xué)生理解和掌握運(yùn)算符的使用。教學(xué)方法邊講邊練:教師以邊講邊練的方式,一邊介紹邏輯運(yùn)算符、位運(yùn)算符和三目運(yùn)算符,及順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)等流程控制語(yǔ)句的相關(guān)知識(shí),一邊通過代碼演練的方式,舉例說(shuō)明相關(guān)知識(shí)點(diǎn),讓學(xué)生鞏固所學(xué)內(nèi)容。教學(xué)準(zhǔn)備學(xué)生準(zhǔn)備Windows操作系統(tǒng)。JDK8版本以上的安裝包。教師準(zhǔn)備Windows操作系統(tǒng)。JDK8版本以上的安裝包。教學(xué)過程導(dǎo)入新課(1)回顧上節(jié)課內(nèi)容并答疑解惑回顧上一節(jié)課的內(nèi)容,并對(duì)上一節(jié)課布置的作業(yè)以及學(xué)生提出的問題進(jìn)行答疑解惑。(2)進(jìn)入主題,展開詳細(xì)講解學(xué)習(xí)了部分基礎(chǔ)運(yùn)算符的相關(guān)知識(shí)后,本課程將介紹邏輯運(yùn)算符、位運(yùn)算符和三目運(yùn)算符的相關(guān)知識(shí)。之前我們所學(xué)的代碼都是順序結(jié)構(gòu)的,是逐行執(zhí)行的,但如果需要跳過某行代碼或有選擇地執(zhí)行,就需要使用到流程控制語(yǔ)句了,因此本課程我們還會(huì)對(duì)流程控制語(yǔ)句進(jìn)行介紹。本課程包含兩大內(nèi)容:運(yùn)算符(二)流程控制語(yǔ)句(3)明確學(xué)習(xí)目標(biāo)掌握J(rèn)ava中的邏輯運(yùn)算符。理解短路效果的含義。掌握位運(yùn)算的算法。熟練使用三目運(yùn)算符。熟練流程控制語(yǔ)句結(jié)構(gòu)。講授課程(1)運(yùn)算符(二)1)邏輯運(yùn)算符邏輯運(yùn)算符一般用于連接boolean類型的表達(dá)式或者值,分為&(與)、|(或)、!(非)和^(異或)4種運(yùn)算符。與(&)運(yùn)算符與(&)運(yùn)算符,表達(dá)式或者值全部為true時(shí),則返回的結(jié)果為true;只要有一個(gè)為false,則結(jié)果為false?;颍▅)運(yùn)算符在或(|)運(yùn)算符中,只要有一個(gè)表達(dá)式或者值為true,那么結(jié)果就是true;如果全部是false,結(jié)果為false。異或(^)運(yùn)算符在異或(^)運(yùn)算符中,左右兩側(cè)的表達(dá)式或者值相同時(shí)返回false,不同時(shí)返回true。取反(!)運(yùn)算符取反(!)又稱為非,只能用于連接一個(gè)布爾類型的值,將true變?yōu)閒alse,將false變?yōu)閠rue。在使用邏輯運(yùn)算符時(shí),也可以寫成雙與(&&)、雙或(||)的形式,與&和|的結(jié)果是完全一樣的,只是&&和||的效率更高。因?yàn)槭褂秒p與、雙或會(huì)出現(xiàn)短路效果,即如果左邊已經(jīng)可以判斷出最終結(jié)果,那么右邊代碼就不再執(zhí)行了。2)位運(yùn)算符位運(yùn)算符的使用前提是要把數(shù)據(jù)轉(zhuǎn)換為二進(jìn)制的補(bǔ)碼形式,包括&(與)、|(或)、^(異或)、<<(左移)、>>(右移)、>>>(無(wú)符號(hào)右移)和~(取反)。按位與(&)按位與運(yùn)算符"&"是雙目運(yùn)算符,其功能是參與運(yùn)算的兩數(shù)各對(duì)應(yīng)的二進(jìn)位相與。只有對(duì)應(yīng)的兩個(gè)操作數(shù)中位均為1時(shí),結(jié)果才為1,否則為0。根據(jù)按位與的說(shuō)明,可以得到如下推論:推論1:任意一個(gè)數(shù)&一個(gè)偶數(shù),結(jié)果一定是偶數(shù)。因?yàn)樵诙M(jìn)制中偶數(shù)的最后一位數(shù)肯定是0,0與上任意數(shù)結(jié)果還是0,那么最后一位是0,則結(jié)果肯定是偶數(shù)。推論2:任意一個(gè)數(shù)&1,如果結(jié)果是0,這個(gè)數(shù)一定是偶數(shù)。按位或(|)按位或運(yùn)算符“|”是雙目運(yùn)算符,其功能是參與運(yùn)算的兩數(shù)各對(duì)應(yīng)的二進(jìn)位相或。只要對(duì)應(yīng)的兩個(gè)二進(jìn)位有一個(gè)為1時(shí),那么結(jié)果就是1,否則為0。根據(jù)按位或的說(shuō)明,可以得到如下推論:推論1:任意一個(gè)數(shù)|一個(gè)奇數(shù),結(jié)果一定是奇數(shù)。推論2:與0或的結(jié)果還是自身。異或(^)按位異或運(yùn)算符“^”是雙目運(yùn)算符,其功能是參與運(yùn)算的兩數(shù)各對(duì)應(yīng)的二進(jìn)位相異或。當(dāng)兩對(duì)應(yīng)的二進(jìn)位相異時(shí),結(jié)果為1,否則為0。左移(<<)左移運(yùn)算符“<<”是雙目運(yùn)算符,其功能是把“<<”左邊的運(yùn)算數(shù)的各二進(jìn)位全部左移若干位,由“<<”右邊的數(shù)指定移動(dòng)的位數(shù),高位丟棄,低位補(bǔ)0。左移n位就是乘以2的n次方,它是更底層的指令集。右移(>>)右移運(yùn)算符“>>”是雙目運(yùn)算符,其功能是把“>>”左邊的運(yùn)算數(shù)的各二進(jìn)位全部右移若干位,“>>”右邊的數(shù)指定移動(dòng)的位數(shù)。右移n位就是除以2的n次方,低位丟棄,高位補(bǔ)位(正數(shù)補(bǔ)0,負(fù)數(shù)補(bǔ)1)。無(wú)符號(hào)右移(>>>)無(wú)符號(hào)右移和右移類似,但是最高位空出之后,無(wú)論是正數(shù)還是負(fù)數(shù),都補(bǔ)0。取反(~)取反運(yùn)算符~為單目運(yùn)算符,具有右結(jié)合性。其功能是對(duì)參與運(yùn)算的數(shù)的各二進(jìn)位按位求反。即將數(shù)字轉(zhuǎn)換為二進(jìn)制后,1變0,0變1,然后最高位按照-128計(jì)算,其余位按照二進(jìn)制向十進(jìn)制的轉(zhuǎn)換規(guī)則計(jì)算。如果最高位是0,那么不用計(jì)算。3)三目(三元)運(yùn)算符三目運(yùn)算符是計(jì)算機(jī)語(yǔ)言的重要組成部分,它是唯一有3個(gè)操作數(shù)的運(yùn)算符,所以又稱為三元運(yùn)算符。格式:數(shù)據(jù)類型變量名=判斷條件?表達(dá)式A:表達(dá)式B;如果判斷條件成立,那么將表達(dá)式A的結(jié)果賦值給等式左邊變量;如果判斷條件不成立,那么將表達(dá)式B的結(jié)果賦值給等式左邊變量。(2)流程控制語(yǔ)句流程控制語(yǔ)句用于對(duì)程序流程的選擇、循環(huán)、轉(zhuǎn)向和返回等進(jìn)行控制,以實(shí)現(xiàn)程序的各種結(jié)構(gòu)方式。流程控制語(yǔ)句包括順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。1)順序結(jié)構(gòu)順序結(jié)構(gòu)是程序中最簡(jiǎn)單最基本的流程控制,沒有特定的語(yǔ)法結(jié)構(gòu),按照代碼的先后順序依次執(zhí)行,程序中大多數(shù)的代碼都是順序結(jié)構(gòu)的。2)選擇結(jié)構(gòu)選擇結(jié)構(gòu)也被稱為分支結(jié)構(gòu),用于判斷給定的條件,根據(jù)判斷的結(jié)果來(lái)控制程序的流程。選擇結(jié)構(gòu)有特定的語(yǔ)法規(guī)則,代碼要執(zhí)行具體的邏輯運(yùn)算然后進(jìn)行判斷,邏輯運(yùn)算的結(jié)果有兩個(gè),所以產(chǎn)生選擇,按照不同的選擇執(zhí)行不同的代碼。Java語(yǔ)言提供了if語(yǔ)句和switch語(yǔ)句兩種選擇結(jié)構(gòu)。if語(yǔ)句格式一格式:if(布爾表達(dá)式){ 語(yǔ)句體;}if語(yǔ)句格式一的流程圖:if語(yǔ)句格式二格式:if(關(guān)系表達(dá)式){ 語(yǔ)句體1;}else{ 語(yǔ)句體2;}if語(yǔ)句格式二流程圖:if語(yǔ)句格式三格式:if(判斷條件1){執(zhí)行語(yǔ)句1;}elseif(判斷條件2){ 執(zhí)行語(yǔ)句2;}...elseif(判斷條件n){ 執(zhí)行語(yǔ)句n;}else{執(zhí)行語(yǔ)句n+1;}if語(yǔ)句格式三流程圖:switch語(yǔ)句格式:switch(表達(dá)式){ case目標(biāo)值1: 語(yǔ)句體1; break; case目標(biāo)值2: 語(yǔ)句體2; break; … default: 語(yǔ)句體n+1; break;}switch語(yǔ)句流程圖:3)循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)是指在程序中需要反復(fù)執(zhí)行某個(gè)功能而設(shè)置的一種程序結(jié)構(gòu)。循環(huán)語(yǔ)句可以在滿足循環(huán)條件的情況下,反復(fù)執(zhí)行某一段代碼,這段被重復(fù)執(zhí)行的代碼稱為循環(huán)體語(yǔ)句。當(dāng)反復(fù)執(zhí)行這個(gè)循環(huán)體時(shí),需要在合適的時(shí)候把循環(huán)判斷條件修改為false,從而結(jié)束循環(huán);否則循環(huán)將一直執(zhí)行下去,形成死循環(huán)。循環(huán)語(yǔ)句的組成分為:①循環(huán)變量初始化(初始化表達(dá)式);②循環(huán)出口(布爾表達(dá)式);③循環(huán)邏輯內(nèi)容(循環(huán)體);④循環(huán)增量(步進(jìn)表達(dá)式)。循環(huán)結(jié)構(gòu)for格式:for(初始化表達(dá)式①;布爾表達(dá)式②;步進(jìn)表達(dá)式④){循環(huán)體③}循環(huán)結(jié)構(gòu)for流程圖:循環(huán)結(jié)構(gòu)while格式:初始化表達(dá)式①while(布爾表達(dá)式②){ 循環(huán)體③ 步進(jìn)表達(dá)式④}循環(huán)結(jié)構(gòu)while流程圖:循環(huán)結(jié)構(gòu)do-while格式:初始化表達(dá)式①do{ 循環(huán)體③ 步進(jìn)表達(dá)式④}while(布爾表達(dá)式②);循環(huán)結(jié)構(gòu)do-while語(yǔ)句流程圖:4)三種循環(huán)的區(qū)別do…while循環(huán)至少會(huì)執(zhí)行一次循環(huán)體;for循環(huán)和while循環(huán)只有在條件成立的時(shí)候才會(huì)執(zhí)行循環(huán)體。For循環(huán)語(yǔ)句和while循環(huán)語(yǔ)句的區(qū)別,是控制條件語(yǔ)句所控制的變量,在for循環(huán)結(jié)束后,就不能再被訪問了,而while循環(huán)結(jié)束還可以繼續(xù)使用。5)跳轉(zhuǎn)控制語(yǔ)句Java支持3種跳轉(zhuǎn)語(yǔ)句:break、continue和return。這些語(yǔ)句把控制轉(zhuǎn)移到程序的其他部分。break表示中斷,在選擇結(jié)構(gòu)switch語(yǔ)句和循環(huán)語(yǔ)句中使用,可結(jié)束當(dāng)前循環(huán);continue表示繼續(xù),在循環(huán)語(yǔ)句中使用,可結(jié)束本次循環(huán),繼續(xù)下一次循環(huán)。鞏固練習(xí)(1)鍵盤錄入學(xué)生考試成績(jī),判斷學(xué)生等級(jí)。要求:90-100 優(yōu)秀80-90 好70-80 良60-70 及格60以下 不及格使用技能:Scanner類、if語(yǔ)句格式三(2)根據(jù)鍵盤錄入的數(shù)值1、2、3...7輸出對(duì)應(yīng)的星期一、星期二、星期三...星期日。使用技能:Scanner類、switch語(yǔ)句(3)統(tǒng)計(jì)水仙花數(shù)有多少個(gè)。說(shuō)明:水仙花數(shù)是指一個(gè)三位數(shù),其每一位數(shù)字的立方和等于該數(shù)本身。使用技能:for循環(huán)(4)求出1-100之間的偶數(shù)和。使用技能:while循環(huán)(5)統(tǒng)計(jì)水仙花數(shù)有多少個(gè)。說(shuō)明:水仙花數(shù)是指一個(gè)三位數(shù),其每一位數(shù)字的立方和等于該數(shù)本身。使用技能:do-while循環(huán)課堂小結(jié)通過本節(jié)課的學(xué)習(xí),同學(xué)們能夠掌握邏輯運(yùn)算符、位運(yùn)算符和三目運(yùn)算符以及選擇結(jié)構(gòu)if、switch語(yǔ)句和循環(huán)結(jié)構(gòu)for、while和do-while語(yǔ)句的使用。if語(yǔ)句常用于判斷場(chǎng)景,switch語(yǔ)句常用于固定內(nèi)容的匹配。當(dāng)有大量循環(huán)性的語(yǔ)句時(shí),可以使用循環(huán)結(jié)構(gòu)。循環(huán)結(jié)構(gòu)優(yōu)先推薦使用for循環(huán)和while循環(huán)。布置作業(yè)(1)課下作業(yè)打印99乘法表。(2)預(yù)習(xí)作業(yè)1)java數(shù)組。2)java中的內(nèi)存分配。八、板書設(shè)計(jì)九、教具notepaddos十、教學(xué)反思課程名稱:Java核心基礎(chǔ)章節(jié)名稱:數(shù)組和方法2019年12月目錄TOC\o"1-2"\h\u一、基本說(shuō)明 2二、教學(xué)目標(biāo) 2三、教學(xué)重點(diǎn) 2四、教學(xué)難點(diǎn) 3五、教學(xué)方法 3六、教學(xué)準(zhǔn)備 3七、教學(xué)過程 4八、板書設(shè)計(jì) 10九、教具 10十、教學(xué)反思 10基本說(shuō)明授課班級(jí):授課人數(shù):教學(xué)時(shí)間:課時(shí):6課時(shí)課型:理論+實(shí)踐教學(xué)目標(biāo)知識(shí)與技能通過自主學(xué)習(xí)本課程,學(xué)生能夠理解JVM劃分區(qū)域的作用。通過自主學(xué)習(xí)本課程,學(xué)生能夠熟練應(yīng)用Java中的數(shù)組。通過自主學(xué)習(xí)本課程,學(xué)生能夠熟練使用Java中的方法。過程與方法通過課堂練習(xí)實(shí)際操作,學(xué)生能夠進(jìn)一步掌握數(shù)組和方法的應(yīng)用技巧和方法。情感、態(tài)度、價(jià)值觀通過探究學(xué)習(xí)本課程,學(xué)生能夠掌握使用數(shù)組和方法的不同編程方式,培養(yǎng)自己寫出簡(jiǎn)潔、有效率代碼的編程思路。教學(xué)重點(diǎn)動(dòng)態(tài)初始化。Java中的內(nèi)存分配。定義數(shù)組的練習(xí)。靜態(tài)初始化。數(shù)組操作的常見問題。遍歷數(shù)組的練習(xí)。冒泡排序的練習(xí)。獲取數(shù)組中的最大值練習(xí)。使用選擇排序法對(duì)數(shù)組進(jìn)行排序。方法的定義格式。void修飾的方法。方法的重載。方法的參數(shù)傳遞。教學(xué)難點(diǎn)練習(xí)定義數(shù)組的方法。編程實(shí)現(xiàn)冒泡排序。編程獲取數(shù)組中的最大值。使用選擇排序法對(duì)數(shù)組進(jìn)行排序。方法的參數(shù)傳遞。遞歸的使用。教學(xué)方法邊講邊練+課堂陷阱:教師可以故意用一段有缺陷的程序代碼設(shè)置陷阱,介紹動(dòng)態(tài)初始化的相關(guān)知識(shí)的同時(shí),引出訪問數(shù)組元素的方法,及Java中的內(nèi)存分配等知識(shí);然后邊講邊練,介紹Java的數(shù)組和方法的其他相關(guān)基礎(chǔ)知識(shí)。教學(xué)準(zhǔn)備學(xué)生準(zhǔn)備Windows操作系統(tǒng)。JDK8版本以上的安裝包。教師準(zhǔn)備Windows操作系統(tǒng)。JDK8版本以上的安裝包。教學(xué)過程導(dǎo)入新課(1)回顧上節(jié)課內(nèi)容并答疑解惑回顧上一節(jié)課的內(nèi)容,并對(duì)上一節(jié)課布置的作業(yè)以及學(xué)生提出的問題進(jìn)行答疑解惑。(2)進(jìn)入主題,展開詳細(xì)講解數(shù)組和方法是Java基礎(chǔ)知識(shí)中的核心內(nèi)容,本節(jié)課我們將首先介紹Java的數(shù)組,包括數(shù)組的定義和格式、數(shù)組的初始化、數(shù)組操作的常見問題及二維數(shù)組等內(nèi)容;另外,我們還將介紹Java方法的概述、定義、調(diào)用、重載和參數(shù)傳遞,以及void修飾的方法和遞歸等知識(shí)。(3)明確學(xué)習(xí)目標(biāo)理解JVM劃分區(qū)域的作用。熟練應(yīng)用Java中的數(shù)組。熟練使用Java中的方法。講授課程(1)數(shù)組數(shù)組是最常見的一種數(shù)據(jù)結(jié)構(gòu),是相同類型的、用一個(gè)標(biāo)識(shí)符封裝到一起的基本類型的數(shù)據(jù)序列或?qū)ο笮蛄小?)數(shù)組的定義和格式數(shù)組是存儲(chǔ)同一種數(shù)據(jù)類型的多個(gè)元素的容器。若將有限個(gè)類型相同的變量的集合命名,那么這個(gè)名稱為數(shù)組名。組成數(shù)組的各個(gè)變量稱為數(shù)組的分量,也稱為數(shù)組的元素。數(shù)組的定義格式:格式1:數(shù)據(jù)類型[]數(shù)組名;格式2:數(shù)據(jù)類型數(shù)組名[];2)數(shù)組的初始化數(shù)組的初始化是為數(shù)組中的數(shù)組元素分配內(nèi)存空間,并為每個(gè)數(shù)組元素賦值。動(dòng)態(tài)初始化動(dòng)態(tài)初始化在初始化時(shí)只指定數(shù)組長(zhǎng)度,由系統(tǒng)為數(shù)組分配初始值。動(dòng)態(tài)初始化格式:數(shù)據(jù)類型[]數(shù)組名=new數(shù)據(jù)類型[數(shù)組長(zhǎng)度];其中,數(shù)組長(zhǎng)度就是數(shù)組中元素的個(gè)數(shù)。訪問數(shù)組元素訪問數(shù)組元素的格式為:數(shù)組名[索引]Java中的內(nèi)存分配Java程序運(yùn)行時(shí),需要在內(nèi)存中分配空間。Java中的內(nèi)存共分為5個(gè)區(qū)域,分別為棧、堆、方法區(qū)、本地方法區(qū)和寄存器。棧主要用于存儲(chǔ)局部變量,當(dāng)局部變量超出作用域其內(nèi)存空間就會(huì)被回收;方法區(qū)主要存儲(chǔ)和類相關(guān)的信息;本地方法區(qū)與操作系統(tǒng)相關(guān);寄存器與CPU相關(guān);堆存儲(chǔ)的是new出來(lái)的內(nèi)容,內(nèi)容在堆中,具有一個(gè)首地址值,根據(jù)數(shù)據(jù)類型的不同被賦予一個(gè)不同的初始化值。堆的這一特性,正是上面的例子輸出結(jié)果都為0的原因。Java中堆的初始化值的規(guī)則如下:byte/short/int默認(rèn)值為0;long類型默認(rèn)值為0L;float類型默認(rèn)值為0.0F;double類型默認(rèn)值為0.0;char類型默認(rèn)值為'\u0000';boolean類型默認(rèn)值為false;引用數(shù)據(jù)類型默認(rèn)值為null。靜態(tài)初始化靜態(tài)初始化是在初始化時(shí)指定每個(gè)數(shù)組元素的初始值,由系統(tǒng)決定數(shù)組長(zhǎng)度。靜態(tài)初始化格式:數(shù)據(jù)類型[]數(shù)組名=new數(shù)據(jù)類型[]{元素值1,元素值2,…};簡(jiǎn)化格式:數(shù)據(jù)類型[]數(shù)組名={元素值1,元素值2,...};3)數(shù)組操作的常見問題數(shù)組操作的常見問題有以下兩種:數(shù)組索引越界異常(ArrayIndexOfBoundsException)在訪問到數(shù)組中不存在的索引時(shí),會(huì)發(fā)生數(shù)組索引越界異常。空指針異常(NullPointerException)當(dāng)數(shù)組引用沒有指向?qū)ο髤s在操作對(duì)象中的元素時(shí),會(huì)發(fā)生空指針異常。4)二維數(shù)組二維數(shù)組本質(zhì)上是以一維數(shù)組作為二維數(shù)組的元素的數(shù)組,即“數(shù)組的數(shù)組”。二維數(shù)組的定義格式:數(shù)據(jù)類型[][]數(shù)組名;數(shù)據(jù)類型數(shù)組名[][];(不推薦)數(shù)據(jù)類型[]數(shù)組名[];(不推薦)初始化方式:數(shù)據(jù)類型[][]變量名=new數(shù)據(jù)類型[m][n];其中m表示二維數(shù)組的長(zhǎng)度(二維數(shù)組中一維數(shù)組的個(gè)數(shù));n表示二維數(shù)組中一維數(shù)組的長(zhǎng)度。數(shù)據(jù)類型[][]變量名=new數(shù)據(jù)類型[][]{{元素…},{元素…},{元素…}};數(shù)據(jù)類型[][]變量名={{元素…},{元素…},{元素…}};(簡(jiǎn)化版格式)(2)方法1)方法概述方法就是完成特定功能的代碼塊。在很多語(yǔ)言里面都有函數(shù)的定義,函數(shù)在Java中就是方法。2)方法的定義格式修飾符返回值類型方法名(參數(shù)類型參數(shù)名1,參數(shù)類型參數(shù)名2…){方法體;return返回值;}3)方法的調(diào)用方法沒有調(diào)用是不會(huì)被執(zhí)行的,而且單獨(dú)調(diào)用方法也是沒有意義的。使用格式:方法名(參數(shù));在代碼中main也是方法,因?yàn)榉椒ú荒芮短资褂?,所以要在main方法之外定義方法。4)void修飾的方法void是Java中的關(guān)鍵字,用于描述沒有返回值的方法。沒有明確返回值的函數(shù)調(diào)用,就是void類型方法調(diào)用,void只能單獨(dú)調(diào)用。格式:修飾符void方法名(參數(shù)類型參數(shù)名1,參數(shù)類型參數(shù)名2…){ 方法體; return;}5)方法的重載(Overload)方法重載是指在同一個(gè)類中,允許存在一個(gè)以上的同名方法,只要它們的參數(shù)個(gè)數(shù)或者參數(shù)類型不同即可。方法重載的特點(diǎn):與返回值類型無(wú)關(guān),只看方法名和參數(shù)列表;在調(diào)用時(shí),虛擬機(jī)通過參數(shù)列表的不同來(lái)區(qū)分同名方法;本質(zhì)上就是方法在調(diào)用時(shí),保證能通過方法名和參數(shù)區(qū)分要調(diào)用的方法。6)方法的參數(shù)傳遞參數(shù)傳遞可以理解為在調(diào)用一個(gè)方法時(shí),我們會(huì)把指定的數(shù)值傳遞給方法中的參數(shù),這樣方法中的參數(shù)就擁有了這個(gè)指定的值,可以使用該值在方法中運(yùn)算。定義方法時(shí),參數(shù)列表中的變量,稱為形式參數(shù)。調(diào)用方法時(shí),傳遞給方法的數(shù)值,稱為實(shí)際參數(shù)。方法參數(shù)傳遞的兩個(gè)注意事項(xiàng)分別為:其一,基本數(shù)據(jù)類型(加上String)形式參數(shù)的改變不影響實(shí)際參數(shù);其二,引用數(shù)據(jù)類型(除了String)形式參數(shù)的改變影響實(shí)際參數(shù)。7)遞歸遞歸(recursion)是指程序調(diào)用自身的編程技巧,通俗地講,就是方法的遞歸就是在方法里面執(zhí)行本方法。鞏固練習(xí)(1)首先定義一個(gè)數(shù)組,輸出數(shù)組名及元素。然后給數(shù)組中的元素賦值,再次輸出數(shù)組名及元素,并分析內(nèi)存圖。(2)定義兩個(gè)數(shù)組,先定義一個(gè)數(shù)組并賦值輸出結(jié)果。然后在定義第二個(gè)數(shù)組時(shí)把第一個(gè)數(shù)組的地址賦值給第二個(gè)數(shù)組,為第二個(gè)數(shù)組賦值,再次輸出兩個(gè)數(shù)組名及元素,并分析內(nèi)存圖。(3)獲取數(shù)組中的最大值。(4)使用選擇排序法對(duì)數(shù)組進(jìn)行排序。(5)比較兩個(gè)數(shù)據(jù)是否相等。課堂小結(jié)通過本節(jié)內(nèi)容的學(xué)習(xí),相信同學(xué)們已經(jīng)掌握了Java中數(shù)組和方法的定義以及使用方式。數(shù)組是一個(gè)容器,主要用于在內(nèi)存中存儲(chǔ)數(shù)據(jù)類型相同的數(shù)據(jù),既可以存儲(chǔ)基本數(shù)據(jù)類型,也可以存儲(chǔ)引用數(shù)據(jù)類型。本節(jié)課介紹的方法都是使用static修飾,稱之為靜態(tài)方法,在后續(xù)的面向?qū)ο箅A段中我們將學(xué)習(xí)成員方法,以及static關(guān)鍵字的具體含義。布置作業(yè)(1)課下作業(yè)1)給定一個(gè)數(shù)組將這個(gè)數(shù)組中所有元素的順序進(jìn)行顛倒。2)15個(gè)猴子圍成一圈選大王,依次1-7循環(huán)報(bào)數(shù),報(bào)到7的猴子被淘汰,直到最后一只猴子成為大王。問:哪只猴子會(huì)成為大王?使用代碼實(shí)現(xiàn)。3)輸入一個(gè)數(shù)字n,利用遞歸求出1~n的和。(2)預(yù)習(xí)作業(yè)1)面向?qū)ο笏枷搿?)private關(guān)鍵字。八、板書設(shè)計(jì)九、教具notepaddos十、教學(xué)反思課程名稱:Java核心基礎(chǔ)章節(jié)名稱:面向?qū)ο螅ㄒ唬?019年12月目錄TOC\o"1-2"\h\u一、基本說(shuō)明 2二、教學(xué)目標(biāo) 2三、教學(xué)重點(diǎn) 2四、教學(xué)難點(diǎn) 3五、教學(xué)方法 3六、教學(xué)準(zhǔn)備 3七、教學(xué)過程 4八、板書設(shè)計(jì) 12九、教具 13十、教學(xué)反思 13基本說(shuō)明授課班級(jí):授課人數(shù):教學(xué)時(shí)間:課時(shí):6課時(shí)課型:理論+實(shí)踐教學(xué)目標(biāo)知識(shí)與技能通過自主學(xué)習(xí)本課程,學(xué)生能夠獨(dú)立安裝Eclipse。通過自主學(xué)習(xí)本課程,學(xué)生能夠使用Eclipse刪除和導(dǎo)入項(xiàng)目。通過自主學(xué)習(xí)本課程,學(xué)生能夠說(shuō)出成員變量和局部變量的區(qū)別。過程與方法通過創(chuàng)建和使用對(duì)象,學(xué)生能夠理解和掌握面向?qū)ο蟮娜筇卣鳌G楦?、態(tài)度、價(jià)值觀通過探究學(xué)習(xí)本課程,學(xué)生能夠了解面向?qū)ο蟮乃枷?,理解面向?qū)ο缶幊陶Z(yǔ)言和面向過程編程語(yǔ)言的區(qū)別和優(yōu)缺點(diǎn),以更好地學(xué)習(xí)Java語(yǔ)言。教學(xué)重點(diǎn)面向?qū)ο笏枷?。類與對(duì)象的關(guān)系。創(chuàng)建對(duì)象的方法。對(duì)象的內(nèi)存。封裝。this關(guān)鍵字。構(gòu)造方法。標(biāo)準(zhǔn)學(xué)生類代碼的編寫和測(cè)試。super關(guān)鍵字。多態(tài)的體現(xiàn)。教學(xué)難點(diǎn)讓學(xué)生掌握類與對(duì)象的關(guān)系。理解封裝的概念和使用。構(gòu)造方法的使用。super關(guān)鍵字的使用。多態(tài)的體現(xiàn)。教學(xué)方法邊講邊練+對(duì)比教學(xué)法:教師可以邊講邊練,介紹IDE的歷史,以及主流的一些IDE和Eclipse的安裝與使用。然后以對(duì)比教學(xué)法,介紹面向?qū)ο蠛兔嫦蜻^程的區(qū)別,及面向?qū)ο蟮乃枷?、類與對(duì)象的關(guān)系以及如何創(chuàng)建對(duì)象等。最后再邊講邊練,介紹面向?qū)ο蟮娜筇卣鳎悍庋b、繼承和多態(tài)。教學(xué)準(zhǔn)備學(xué)生準(zhǔn)備Windows操作系統(tǒng)。JDK8版本以上的安裝包。eclipse壓縮包。教師準(zhǔn)備Windows操作系統(tǒng)。JDK8版本以上的安裝包。eclipse壓縮包。教學(xué)過程導(dǎo)入新課(1)回顧上節(jié)課內(nèi)容并答疑解惑回顧上一節(jié)課的內(nèi)容,并對(duì)上一節(jié)課布置的作業(yè)以及學(xué)生提出的問題進(jìn)行答疑解惑。(2)進(jìn)入主題,展開詳細(xì)講解本節(jié)課我們將介紹IDE的基礎(chǔ)知識(shí)和Eclipse的安裝與使用;然后介紹面向?qū)ο蟮南嚓P(guān)概念、面向?qū)ο蠛兔嫦蜻^程的區(qū)別、面向?qū)ο蟮乃枷?、類與對(duì)象的關(guān)系以及如何創(chuàng)建對(duì)象等知識(shí);接著我們介紹了面向?qū)ο蟮娜筇卣?,包括封裝、繼承和多態(tài)。(3)明確學(xué)習(xí)目標(biāo)能夠獨(dú)立安裝Eclipse。能夠使用Eclipse刪除和導(dǎo)入項(xiàng)目。理解面向?qū)ο蠛兔嫦蜻^程的區(qū)別。能夠說(shuō)出成員變量和局部變量的區(qū)別。能夠理解面向?qū)ο蟮娜筇卣鳌Vv授課程(1)IDEIDE是一個(gè)集成開發(fā)環(huán)境(IntegratedDevelopmentEnvironment),是用于提供程序開發(fā)環(huán)境的應(yīng)用程序,一般包括代碼編輯器、編譯器、調(diào)試器和圖形用戶界面等工具。IDE集成了代碼編寫功能、分析功能、編譯功能、調(diào)試功能等一體化的開發(fā)軟件服務(wù)套。1)EclipseEclipse是一個(gè)專門針對(duì)Java的集成開發(fā)工具(IDE),是IBM公司的產(chǎn)品。Eclipse具有如下特點(diǎn):免費(fèi);純Java語(yǔ)言編寫;免安裝;擴(kuò)展性強(qiáng)。2)Eclipse的快捷鍵內(nèi)容輔助鍵:Alt+/組合鍵main方法:輸入main,然后按Alt+/組合鍵,再按Enter鍵。輸出語(yǔ)句:輸入syso,然后按Alt+/組合鍵并按Enter鍵。其它快捷鍵單行注釋:選中相關(guān)內(nèi)容,按Ctrl+/組合鍵。再按一次Ctrl+/組合鍵,即可取消單行注釋。多行注釋:選擇相關(guān)內(nèi)容,按Ctrl+Shift+/組合鍵。取消多行注釋,則選中內(nèi)容后按Ctrl+Shift+\組合鍵。格式化:選中內(nèi)容,按Ctrl+Shift+F組合鍵。3)項(xiàng)目的刪除和導(dǎo)入在程序開發(fā)過程中會(huì)產(chǎn)生很多代碼,如果要查看其代碼,可以將該項(xiàng)目導(dǎo)入,不需要時(shí)也可以將其刪除。(2)面向?qū)ο蟮氖褂?)面向過程和面向?qū)ο竺嫦蜻^程開發(fā),其實(shí)就是面向具體的每一個(gè)步驟和過程,把每一個(gè)步驟和過程完成,然后由這些功能方法相互調(diào)用,完成需求。面向過程的代表語(yǔ)言是C語(yǔ)言。面向?qū)ο箝_發(fā),就是把相關(guān)的數(shù)據(jù)和方法組織為一個(gè)整體來(lái)看待,從更高的層次來(lái)進(jìn)行系統(tǒng)建模,更貼近事物的自然運(yùn)行模式。它們的區(qū)別可總結(jié)為下面三點(diǎn):都可以實(shí)現(xiàn)代碼重用和模塊化編程,但是面對(duì)對(duì)象的模塊化更深,數(shù)據(jù)更封閉,也更安全!因?yàn)槊嫦驅(qū)ο蟮姆庋b性更強(qiáng)!面對(duì)對(duì)象的思維方式更加貼近于現(xiàn)實(shí)生活,更容易解決大型的復(fù)雜的業(yè)務(wù)邏輯。從前期開發(fā)角度上來(lái)看,面對(duì)對(duì)象遠(yuǎn)比面向過程要復(fù)雜,但是從維護(hù)和擴(kuò)展功能的角度上來(lái)看,面對(duì)對(duì)象遠(yuǎn)比面向過程要簡(jiǎn)單!2)面向?qū)ο蟮乃枷朊嫦驅(qū)ο缶幊痰闹饕枷胧前褬?gòu)成問題的各個(gè)事務(wù)分解成各個(gè)對(duì)象,建立對(duì)象的目的不是為了完成一個(gè)步驟,而是為了描敘一個(gè)事物在整個(gè)解決問題的步驟中的行為。面向?qū)ο缶哂腥缦绿攸c(diǎn):是一種更符合我們思考習(xí)慣的思想;可以將復(fù)雜的事情簡(jiǎn)單化;將我們從執(zhí)行者變成指揮者,角色會(huì)發(fā)生轉(zhuǎn)換。3)類與對(duì)象的關(guān)系學(xué)習(xí)編程語(yǔ)言就是要模擬現(xiàn)實(shí)世界的事物,實(shí)現(xiàn)信息化,所以需要了解現(xiàn)實(shí)事物的屬性和行為。其中屬性指的是事物的描述信息,行為指的是事物能夠做什么。Java語(yǔ)言最基本的單位是類,類是一組相關(guān)的屬性和行為的集合,通過類可以與現(xiàn)實(shí)事物產(chǎn)生聯(lián)系。對(duì)象是該類事物的具體體現(xiàn)。在Java中類的屬性叫做成員變量,行為就是成員方法。所以定義類在Java中就是定義成員的變量和方法。4)創(chuàng)建對(duì)象類只是描述一類事物的行為和狀態(tài),所以類創(chuàng)建完成后,還需要通過創(chuàng)建對(duì)象來(lái)使用類。創(chuàng)建對(duì)象的格式:類名對(duì)象名=new類名();使用對(duì)象訪問類中的成員:對(duì)象名.成員變量;對(duì)象名.成員方法();5)對(duì)象的內(nèi)存對(duì)象存放于堆中,方法的執(zhí)行在棧中,類的加載信息在方法區(qū)中。堆中的成員變量有默認(rèn)值。在JVM中有3個(gè)區(qū)域與實(shí)際開發(fā)相關(guān),分別為棧、堆和方法區(qū)。棧區(qū)域存放的是局部變量;堆區(qū)域存放new的內(nèi)容;方法區(qū)存放.class文件。(3)封裝封裝可以被認(rèn)為是一個(gè)保護(hù)屏障,防止該類代碼和數(shù)據(jù)被外部類定義的代碼隨機(jī)訪問。適當(dāng)?shù)姆庋b可以讓程式碼更容易理解與維護(hù),也加強(qiáng)了程式碼的安全性。1)封裝的概述和原則面向?qū)ο蟮娜筇卣鳛榉庋b、繼承和多態(tài)。封裝是面向?qū)ο缶幊陶Z(yǔ)言對(duì)客觀世界的模擬,即一種將抽象性函式接口的實(shí)現(xiàn)細(xì)節(jié)部分包裝、隱藏起來(lái)的方法。封裝的原則:將不需要對(duì)外提供的內(nèi)容隱藏起來(lái);隱藏屬性,提供公共方法對(duì)其訪問;成員變量用private修飾,提供對(duì)應(yīng)的getXxx()/setXxx()方法;被private修飾的成員只在本類中才能訪問。2)this關(guān)鍵字在Java中為了解決變量的命名沖突和不確定性等問題,引入關(guān)鍵字this代表其所在方法的當(dāng)前對(duì)象的引用:1)構(gòu)造方法中指該構(gòu)造器所創(chuàng)建的新對(duì)象;2)方法中指調(diào)用該方法的對(duì)象;3)在類本身的方法或構(gòu)造器中引用該類的實(shí)例變量(全局變量)和方法。所以,this關(guān)鍵字可以代表所在類的對(duì)象引用,方法被哪個(gè)對(duì)象調(diào)用,this就代表哪個(gè)對(duì)象。this關(guān)鍵字的使用:局部變量隱藏成員變量(局部變量和成員變量重名);this語(yǔ)句必須在有效代碼的第一行。3)構(gòu)造方法構(gòu)造方法是類的一種特殊方法,用來(lái)初始化類的一個(gè)新對(duì)象,在創(chuàng)建對(duì)象(new運(yùn)算符)之后自動(dòng)調(diào)用。構(gòu)造方法的作用是給對(duì)象的數(shù)據(jù)進(jìn)行初始化。構(gòu)造方法的格式:修飾符構(gòu)造方法名(參數(shù)列表){}注意事項(xiàng):如果沒有提供構(gòu)造方法,系統(tǒng)會(huì)給出默認(rèn)構(gòu)造方法;如果提供了構(gòu)造方法,系統(tǒng)將不再提供;構(gòu)造方法也是可以重載的。4)構(gòu)造代碼塊和局部代碼塊構(gòu)造代碼塊構(gòu)造代碼塊就是在類中方法外的{},對(duì)象一創(chuàng)建就運(yùn)行,而且優(yōu)先于構(gòu)造方法運(yùn)行。構(gòu)造代碼塊中定義的是不同對(duì)象共性的初始化內(nèi)容。局部代碼塊局部代碼塊是在方法中的{},可以限制變量的作用范圍和生命周期,從而提高棧內(nèi)存的利用率。5)權(quán)限修飾符權(quán)限修飾符指在Java中用于限定使用范圍的關(guān)鍵字,包含public、protected、default和private四種關(guān)鍵字。權(quán)限修飾符本類中子類中同包類中其它類中public可以可以可以可以protected可以可以可以不可以default可以同包子類可以可以不可以private可以不可以不可以不可以(4)繼承1)繼承的概述和使用格式類的繼承是指在現(xiàn)有類的基礎(chǔ)上構(gòu)建新的類,構(gòu)建出來(lái)的新類稱作子類,現(xiàn)有類稱作父類,子類會(huì)自動(dòng)擁有父類所有可繼承的屬性和方法。繼承格式如下:class子類extends父類{}另外,繼承還可以提高代碼的復(fù)用性,且在程序中通過對(duì)象調(diào)用方法時(shí),會(huì)先在子類中查找有沒有對(duì)應(yīng)的方法,若子類中存在對(duì)應(yīng)的方法就會(huì)執(zhí)行子類中的方法,若子類中不存在則會(huì)執(zhí)行父類中相應(yīng)的方法。2)繼承的特點(diǎn)Java支持單繼承;Java支持多層繼承;父類定義了繼承樹中共性內(nèi)容,子類定義了該類個(gè)性內(nèi)容。3)super關(guān)鍵字Java中的super關(guān)鍵字是一個(gè)引用變量,是指向父類的引用。如果構(gòu)造方法沒有顯式地調(diào)用父類的構(gòu)造方法,那么編譯器會(huì)自動(dòng)為它加上一個(gè)默認(rèn)的super()方法調(diào)用。另外,如果父類沒有默認(rèn)的無(wú)參構(gòu)造方法,編譯器會(huì)報(bào)錯(cuò),super()語(yǔ)句必須是構(gòu)造方法的第一個(gè)子句。創(chuàng)建一個(gè)子類對(duì)象時(shí),會(huì)先調(diào)用子類的構(gòu)造方法,然后再調(diào)用父類的構(gòu)造方法,如果父類足夠多的話,會(huì)一直調(diào)用到最終的父類構(gòu)造方法。4)重寫(Override)在父類和子類中存在方法簽名相同的非靜態(tài)方法,稱之為方法的覆蓋或重寫。重寫的原則:方法簽名一致;如果父類中的方法返回值類型是基本數(shù)據(jù)類型或者void,那么子類在重寫方法的時(shí)候返回值類型要保持一致;子類重寫方法的權(quán)限修飾符的范圍要大于等于父類對(duì)應(yīng)方法權(quán)限修飾符的范圍;如果父類方法的返回值類型是引用數(shù)據(jù)類型,那么子類重寫的方法的返回值類型要么與父類方法返回值類型一致,要么子類方法的返回值類型是父類方法返回值類型的子類。(5)多態(tài)1)多態(tài)的概述多態(tài)是現(xiàn)實(shí)事物經(jīng)常會(huì)體現(xiàn)出的多種形態(tài),如學(xué)生是人的一種,則一個(gè)具體的同學(xué)張三既是學(xué)生也是人,即出現(xiàn)兩種形態(tài)。Java作為面向?qū)ο蟮恼Z(yǔ)言,同樣可以描述一個(gè)事物的多種形態(tài)。2)多態(tài)的體現(xiàn)多態(tài)分為編譯時(shí)多態(tài)和運(yùn)行時(shí)多態(tài)。編譯時(shí)多態(tài)就是方法的重載,運(yùn)行時(shí)多態(tài)是向上造型和方法的重寫。向上造型是用父類來(lái)聲明對(duì)象、用子類來(lái)創(chuàng)建對(duì)象,編譯期間只會(huì)檢查聲明類和創(chuàng)建類之間是否有繼承關(guān)系,有則編譯通過,運(yùn)行期間才確定具體的子類。鞏固練習(xí)(1)定義一個(gè)手機(jī)類并創(chuàng)建對(duì)象。(2)標(biāo)準(zhǔn)學(xué)生類代碼編寫和測(cè)試。課堂小結(jié)通過本部分內(nèi)容的學(xué)習(xí),相信學(xué)生已經(jīng)能夠解答前面對(duì)于使用引用數(shù)據(jù)類型的疑惑,能夠理解面向?qū)ο蠛兔嫦蜻^程的區(qū)別,并理解面向?qū)ο蟮娜筇卣鳎悍庋b、繼承、多態(tài)。初次接觸面向?qū)ο笏枷氲耐瑢W(xué)理解會(huì)有點(diǎn)難度,需要更多的練習(xí)和思考來(lái)加深印象。布置作業(yè)(1)課下作業(yè)1)定義一個(gè)類表示矩形,提供求周長(zhǎng)和面積的方法。2)定義一個(gè)類Complex,用來(lái)表示復(fù)數(shù)。這個(gè)復(fù)數(shù)類具有兩個(gè)屬性:doublereal,表示實(shí)部;doubleim,表示虛部。并為Complex類增加add、sub、mul方法,分別表示復(fù)數(shù)的加法、減法和乘法運(yùn)算。其中,add方法的聲明如下:publicComplexadd(Complexc)//表示當(dāng)前Complex對(duì)象與參數(shù)c對(duì)象相加。publicComplexadd(doublereal)//表示當(dāng)前Complex對(duì)象與實(shí)數(shù)real相加。(2)預(yù)習(xí)作業(yè)abstract、static、interface關(guān)鍵字。八、板書設(shè)計(jì)九、教具eclipse十、教學(xué)反思課程名稱:Java核心基礎(chǔ)章節(jié)名稱:面向?qū)ο螅ǘ?019年12月目錄TOC\o"1-2"\h\u一、基本說(shuō)明 2二、教學(xué)目標(biāo) 2三、教學(xué)重點(diǎn) 2四、教學(xué)難點(diǎn) 3五、教學(xué)方法 3六、教學(xué)準(zhǔn)備 3七、教學(xué)過程 3八、板書設(shè)計(jì) 11九、教具 11十、教學(xué)反思 11基本說(shuō)明授課班級(jí):授課人數(shù):教學(xué)時(shí)間:課時(shí):6課時(shí)課型:理論+實(shí)踐教學(xué)目標(biāo)知識(shí)與技能通過自主學(xué)習(xí)本課程,學(xué)生能夠區(qū)分類方法和對(duì)象方法。通過自主學(xué)習(xí)本課程,學(xué)生能夠區(qū)分靜態(tài)變量和成員變量。通過自主學(xué)習(xí)本課程,學(xué)生能夠掌握f(shuō)inal關(guān)鍵字的用法。過程與方法通過定義接口并實(shí)現(xiàn),學(xué)生能夠熟練接口的使用方法。通過定義內(nèi)部類并實(shí)現(xiàn),學(xué)生能夠掌握內(nèi)部類的使用方法。情感、態(tài)度、價(jià)值觀通過探究學(xué)習(xí)本課程,學(xué)生能夠進(jìn)一步了解接口的作用,經(jīng)過多加練習(xí)后,能夠更加明顯地感受到面向接口開發(fā)的實(shí)際意義。教學(xué)重點(diǎn)static關(guān)鍵字的使用。抽象類&抽象方法的特性。接口的定義。類實(shí)現(xiàn)接口。接口中成員的特點(diǎn)。接口的特點(diǎn)。教學(xué)難點(diǎn)讓學(xué)生掌握static關(guān)鍵字的使用。讓學(xué)生理解類實(shí)現(xiàn)接口。教學(xué)方法邊講邊練+直觀演示法:教師可以邊講邊練,首先介紹static和final關(guān)鍵字,其次介紹abstract關(guān)鍵字(即抽象方法和抽象類),最后再介紹接口和內(nèi)部類等的相關(guān)知識(shí)。同時(shí),教師可以用實(shí)際的代碼,直觀演示所講內(nèi)容的定義、特點(diǎn)和使用等。教學(xué)準(zhǔn)備學(xué)生準(zhǔn)備Windows操作系統(tǒng)。JDK8版本以上的安裝包。eclipse壓縮包。教師準(zhǔn)備Windows操作系統(tǒng)。JDK8版本以上的安裝包。eclipse壓縮包。教學(xué)過程導(dǎo)入新課(1)回顧上節(jié)課內(nèi)容并答疑解惑回顧上一節(jié)課的內(nèi)容,并對(duì)上一節(jié)課布置的作業(yè)以及學(xué)生提出的問題進(jìn)行答疑解惑。(2)進(jìn)入主題,展開詳細(xì)講解本節(jié)課將從5個(gè)方面介紹面向?qū)ο蟮南嚓P(guān)知識(shí),首先介紹static和final關(guān)鍵字,其次介紹abstract關(guān)鍵字(即抽象方法和抽象類),最后再介紹接口和內(nèi)部類。(3)明確學(xué)習(xí)目標(biāo)能夠區(qū)分類方法和對(duì)象方法。能夠區(qū)分靜態(tài)變量和成員變量。掌握f(shuō)inal關(guān)鍵字的用法。理解抽象方法的應(yīng)用場(chǎng)景。熟練使用接口。掌握內(nèi)部類的使用。講授課程(1)static關(guān)鍵字在Java語(yǔ)言中,static表示“靜態(tài)”的意思,可以用來(lái)修飾成員變量和成員方法,當(dāng)然也可以是靜態(tài)代碼塊。1)static關(guān)鍵字概述static是靜態(tài)修飾符,一般用來(lái)修飾類中的成員,成員包括成員變量和成員方法。被static修飾的成員屬于類,不屬于單個(gè)這個(gè)類的某個(gè)對(duì)象,且它會(huì)影響每一個(gè)對(duì)象。被static修飾的成員又叫類成員,不叫對(duì)象成員。另外,static修飾的成員被多個(gè)對(duì)象共享。2)static關(guān)鍵字的使用Static關(guān)鍵字具有如下特性:static可以修飾變量、方法、代碼塊、內(nèi)部類。static修飾的變量叫做靜態(tài)變量。static修飾的方法叫做靜態(tài)方法。static修飾的代碼塊叫做靜態(tài)代碼塊。(2)final關(guān)鍵字final是Java中的關(guān)鍵字,用于修飾數(shù)據(jù)、方法和類。final修飾的數(shù)據(jù)稱之為常量,定義之后是不可以修改的,對(duì)于基本數(shù)據(jù)類型而言,指其實(shí)際值不可修改;對(duì)于引用數(shù)據(jù)類型而言,指其地址值不可修改。(3)abstract關(guān)鍵字abstract關(guān)鍵字可以用于類、方法、事件和索引指示器,表示其為抽象成員,抽象方法是沒有方法體的方法。1)抽象概述分析事物時(shí),發(fā)現(xiàn)了共性內(nèi)容,就出現(xiàn)向上抽取。當(dāng)出現(xiàn)方法功能聲明相同、方法功能主體不同的特殊情況時(shí),也可以向上抽取,但只抽取方法聲明,不抽取方法主體。那么此方法就是一個(gè)抽象方法。2)抽象類的產(chǎn)生抽象類往往用來(lái)表征對(duì)問題領(lǐng)域進(jìn)行分析、設(shè)計(jì)中得出的抽象概念,是對(duì)一系列看上去不同,但是本質(zhì)上相同的具體概念的抽象。在Java中,含有抽象方法的類稱為抽象類,同樣不能生成對(duì)象。當(dāng)有不具體的功能需要在類中標(biāo)識(shí)出來(lái)時(shí),可以通過Java中的關(guān)鍵字abstract(抽象)修飾。當(dāng)定義了抽象方法的類也必須被abstract關(guān)鍵字修飾時(shí),被abstract關(guān)鍵字修飾的類是抽象類。3)抽象類&抽象方法的定義抽象方法定義的格式為:publicabstract返回值類型方法名(參數(shù));抽象類定義的格式為:abstractclass類名{}4)抽象類和抽象方法的特性抽象類可以定義構(gòu)造方法,存在的意義在于對(duì)自身進(jìn)行初始化,供其子類使用。抽象類不能創(chuàng)建對(duì)象,底層JVM會(huì)利用C語(yǔ)言創(chuàng)建一個(gè)虛擬對(duì)象給子類使用。抽象類中可以定義普通方法。抽象類中不能直接實(shí)例化,需要使用向上造型。抽象類一定不是最終類。抽象方法可以重載,必須被繼承和重寫,不能用private/final/static關(guān)鍵字修飾。(4)接口1)接口概述接口是功能的集合,同樣可看作是一種數(shù)據(jù)類型,是比抽象類更為抽象的“類”。接口只描述所應(yīng)該具備的方法,并沒有具體實(shí)現(xiàn),具體的實(shí)現(xiàn)由接口的實(shí)現(xiàn)類來(lái)完成。這樣將功能的定義與實(shí)現(xiàn)分離,優(yōu)化了程序設(shè)計(jì)。一切事物皆有功能,即一切事物皆有接口。2)接口的定義使用接口與定義類的class不同,接

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論