《單片機(jī)與物聯(lián)網(wǎng)技術(shù)應(yīng)用實(shí)戰(zhàn)教程》課件-第6章 Java程序設(shè)計(jì)_第1頁
《單片機(jī)與物聯(lián)網(wǎng)技術(shù)應(yīng)用實(shí)戰(zhàn)教程》課件-第6章 Java程序設(shè)計(jì)_第2頁
《單片機(jī)與物聯(lián)網(wǎng)技術(shù)應(yīng)用實(shí)戰(zhàn)教程》課件-第6章 Java程序設(shè)計(jì)_第3頁
《單片機(jī)與物聯(lián)網(wǎng)技術(shù)應(yīng)用實(shí)戰(zhàn)教程》課件-第6章 Java程序設(shè)計(jì)_第4頁
《單片機(jī)與物聯(lián)網(wǎng)技術(shù)應(yīng)用實(shí)戰(zhàn)教程》課件-第6章 Java程序設(shè)計(jì)_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

6-7A主編6-7A第6章Java程序設(shè)計(jì)6.1Java語言概述6.2Java面向?qū)ο?.3Java提高6.4本章小結(jié)6-7A第6章Java程序設(shè)計(jì)6.1Java語言概述6.1.1Java語言特點(diǎn)Java語言的主要特點(diǎn)有完全面向?qū)ο蟆⒖煽啃?、安全性、?/p>

移植性和多線程等,這些特點(diǎn)使得Java語言深受編程愛好者

的喜愛。下面將對這些主要特點(diǎn)進(jìn)行簡單的介紹。6.1.2Java語言的基本語法6-7A第6章Java程序設(shè)計(jì)對于學(xué)習(xí)Java的人來說,基本語法的學(xué)習(xí)是必不可少的,也是

學(xué)習(xí)一門新語言的重中之重。本章將介紹編程語言最基礎(chǔ)

的部分:Java數(shù)據(jù)類型、Java運(yùn)算符、Java流程控制語句、

Java數(shù)組,這是所有Java編程人員都應(yīng)該掌握的知識。本章將

通過大量的程序和代碼,來講述如何操作這些數(shù)據(jù)和運(yùn)算

符。熟練掌握本章節(jié),將對后續(xù)Java的開發(fā)起著非常重要的

作用,并且對以后學(xué)習(xí)其他編程語言,有很大的幫助。6-7A第6章Java程序設(shè)計(jì)表6-1Java基本數(shù)據(jù)類型(1byte=8bit)6-7A第6章Java程序設(shè)計(jì)表6-2算術(shù)運(yùn)算符6-7A第6章Java程序設(shè)計(jì)表6-3關(guān)系運(yùn)算符說明6-7A第6章Java程序設(shè)計(jì)表6-4位操作運(yùn)算符說明6-7A第6章Java程序設(shè)計(jì)6.1.3Java數(shù)組數(shù)組對于處理具有相同類型的數(shù)據(jù)起著非常重要的作用。

本節(jié)將介紹Java中常用的一維數(shù)組。6-7A第6章Java程序設(shè)計(jì)1.一維數(shù)組的聲明在使用一維數(shù)組時(shí),首先要對其進(jìn)行聲明。2.一維數(shù)組的初始化靜態(tài)初始化是指在聲明數(shù)組的同時(shí)進(jìn)行賦值。例如:3.一維數(shù)組的使用方法在Java中,一維數(shù)組的使用方法與C語言中相差不大,僅舉例說明:6-7A第6章Java程序設(shè)計(jì)6.1.4面向?qū)ο蟮亩xJava作為一種獨(dú)立的編程語言,具有自己的定義方式。在Java

中,面向?qū)ο蟮亩x可視作類的定義,具體格式如下:6.2Java面向?qū)ο?.2.1類1.定義類6-7A第6章Java程序設(shè)計(jì)在客觀世界中,人們總是把某些具有相同特征和行為的事物歸為

一類,面向?qū)ο蟪绦蛟O(shè)計(jì)中的“類”也與此相似。Java是面向?qū)ο?/p>

的程序設(shè)計(jì)語言,類是面向?qū)ο蟮闹匾獌?nèi)容,類創(chuàng)建出對象。類是

面向?qū)ο蟪绦蛟O(shè)計(jì)的核心概念之一,一個(gè)用戶自定義的類就是一

個(gè)新的數(shù)據(jù)類型。我們可以將類認(rèn)為是一種自定義的數(shù)據(jù)類型,

可以使用類來定義變量,所有使用類定義的變量都是引用變量。

也就是說所有類是引用數(shù)據(jù)類型。6-7A第6章Java程序設(shè)計(jì)圖6-1類與對象關(guān)系6-7A第6章Java程序設(shè)計(jì)6-7A第6章Java程序設(shè)計(jì)2.定義屬性正如現(xiàn)實(shí)生活中每個(gè)對象都有其特殊的屬性(如大小、名字、顏

色),在Java面向?qū)ο蟪绦蛟O(shè)計(jì)中,每個(gè)對象也有相應(yīng)的特性和特征,

稱其為屬性。屬性用于定義該對象的類或者該類的實(shí)例所包含的

數(shù)據(jù)。6-7A第6章Java程序設(shè)計(jì)3.定義方法現(xiàn)實(shí)生活中,具體事物都有行為,例如球可以滾動、彈躍、膨脹、

收縮,嬰兒會哭、睡覺、爬行、走路,汽車可以剎車、加速、減

速、改變檔位。這些行為抽象起來都是對象的動作。而方法就是

描述對象的動作,即表示客觀事物的動態(tài)特性(對數(shù)據(jù)的操作),描述

這個(gè)對象“做什么”。方法用于定義該類或該類的實(shí)例行為特征

或功能實(shí)現(xiàn)。6.2.2對象6-7A第6章Java程序設(shè)計(jì)很多編程愛好者,包括有過很多年編程經(jīng)驗(yàn)的人,對于對象的

概念都是很模糊的,如果將對象的概念與現(xiàn)實(shí)生活中的實(shí)物

相比,就會發(fā)現(xiàn)對象其實(shí)是很好理解的。1.對象創(chuàng)建用簡單數(shù)據(jù)類型來說,有了int類型還不行,程序中能用的是int類型

的變量,并且必須給變量賦值后才具有意義。同樣,定義了類只是

定義了數(shù)據(jù)類型,要想使用,還必須用該類型聲明相應(yīng)的變量,并給6-7A第6章Java程序設(shè)計(jì)變量賦一個(gè)具體的值,這一過程稱為對象創(chuàng)建。2.對象引用通過對象創(chuàng)建之后,如何引用對象呢?比如通過Student類創(chuàng)建xiao-

fang這個(gè)對象,那么如何訪問xiaofang的name、sex和number呢?這

個(gè)過程稱為對象引用。對象引用就是通過訪問對象變量或調(diào)用對

象方法。在Java中,運(yùn)用運(yùn)算符“.”可以實(shí)現(xiàn)對象變量或調(diào)用對

象方法。6-7A第6章Java程序設(shè)計(jì)3.對象比較和銷毀在Java語言中,對象比較主要運(yùn)用“==”運(yùn)算符和equal()函數(shù)進(jìn)行

比較。用“==”運(yùn)算符比較對象時(shí),只要兩個(gè)對象相等即返回true,

不同返回false。6.2.3方法1.方法的所屬性6-7A第6章Java程序設(shè)計(jì)會遇到相同功能的代碼寫了很多次的情況,以后程序中再使用需

要再重復(fù)編寫。萬一遺漏或者修改錯(cuò)誤一處,則程序?qū)o法運(yùn)

行。那么代碼能不能只寫一遍,而在多處使用呢?如果可以,那么修

改代碼時(shí)只需修改一處即可,代碼的可維護(hù)性會大大提高,這就用

到了方法。需要說明的是Java中的方法必須定義在類中。2.傳遞方法參數(shù)在方法的調(diào)用過程中,需要將實(shí)際參數(shù)傳遞到方法中,在Java中實(shí)

參和形參之間的傳遞是如何進(jìn)行的呢?在Java中參數(shù)的傳遞采用6-7A第6章Java程序設(shè)計(jì)的是“值”傳遞的方法,但是值傳遞也分為兩種方式。3.構(gòu)造方法對象的初始化工作是非常重要的,為防止未對對象進(jìn)行初始化就

直接調(diào)用對象的操作,只需要將對象初始化工作的代碼寫在構(gòu)造

方法中即可。在Java中,通過new創(chuàng)建一個(gè)類的實(shí)例,通過調(diào)用構(gòu)造

方法執(zhí)行初始化操作。6.2.4繼承6-7A第6章Java程序設(shè)計(jì)1.父類和子類面向?qū)ο笏枷氲牡诙筇卣骶褪抢^承。繼承就是實(shí)現(xiàn)類的重用、

軟件復(fù)用的重要手段。子類通過繼承自動擁有父類的非私有的屬

性和方法,即繼承父類的特征和能力。通俗來講,“龍生龍、鳳生

鳳、老鼠生兒會打洞”就是繼承。子類不必重復(fù)書寫父類中的屬

性和方法,而只需對父類已有的屬性和方法進(jìn)行修改或擴(kuò)充,以滿

足子類更特殊的需求。2.調(diào)用父類的構(gòu)造方法6-7A第6章Java程序設(shè)計(jì)實(shí)例化子類對象時(shí),會先調(diào)用父類的構(gòu)造方法。調(diào)用格式為super

(參數(shù)列表)。如果子類的構(gòu)造方法沒有顯示調(diào)用父類的構(gòu)造方法,

則編譯器會自動加上super()。此時(shí)若父類中沒有無參數(shù)的構(gòu)造方

法,則編譯器會報(bào)錯(cuò)。3.訪問父類的屬性方法當(dāng)super用于訪問父類的屬性方法時(shí),使用的語法格式如下:4.多重次繼承6-7A第6章Java程序設(shè)計(jì)在Java中多重次繼承指的是一個(gè)類可以繼承另外一個(gè)類,而另外一

個(gè)類又可以繼承其他的類,比如A類繼承B類,B類又繼承C類,這就

是Java中的多重次繼承。6.2.5多態(tài)1.多態(tài)的基本概念多態(tài)是面向?qū)ο蟮闹匾拍钪?簡單地講,多態(tài)是指一個(gè)事物在

不同情況下呈現(xiàn)出不同的形態(tài)。6-7A第6章Java程序設(shè)計(jì)2.多態(tài)的使用多態(tài)的使用分為向上轉(zhuǎn)型和向下轉(zhuǎn)型。6.2.6修飾符對于Java修飾符來講大致可以分為三類:類修飾符、字段修

飾符和方法修飾符。而根據(jù)功能的不同可以分為以下幾種:6-7A第6章Java程序設(shè)計(jì)表6-5權(quán)限訪問修飾符1.Final修飾符Final的意思是不可改變的,決定性的。Final可以用以修飾類、字

段、方法。但是修飾類后類不能被擴(kuò)展(extends),也就是不能被子

類繼承。如果當(dāng)這個(gè)類不需要擁有子類時(shí)候,類的實(shí)現(xiàn)細(xì)節(jié)不允6-7A第6章Java程序設(shè)計(jì)許改變,并且確信這個(gè)類不會再被擴(kuò)展,那么就設(shè)計(jì)為Final類。修

飾字段后字段的值不能被改變,因此如果有Final修飾字段,就要對

字段進(jìn)行手動初始化。修飾方法后該方法不能被改變。如果一

個(gè)類不允許其子類覆蓋某個(gè)方法,則可以把這個(gè)方法聲明為Final

方法。使用Final方法的原因有二:第一,防止任何繼承類用以修改

其意義和實(shí)現(xiàn)將它的方法鎖定。第二,編譯器在遇到調(diào)用Final方

法時(shí)候大大提高執(zhí)行效率,使它具有高效性。例如:2.Static修飾符6-7A第6章Java程序設(shè)計(jì)大家都知道,可以基于一個(gè)類創(chuàng)建多個(gè)該類的對象而每個(gè)對象都

擁有自己的成員并相互獨(dú)立,然而在某些時(shí)候,我們更希望該類的

所有對象共享一個(gè)成員,此時(shí)需要用到Static來解決這一問題。3.Abstract修飾符abstract是抽象的意思,用來修飾類和方法。類為抽象類,這個(gè)類將

不能生成對象實(shí)例,但可以作為對象變量聲明的類型,也就是編譯

時(shí)類型,抽象類就相當(dāng)于一個(gè)類的半成品,需要子類繼承并覆蓋其

中的抽象方法;方法為抽象方法,也就是只有聲明(定義)而沒有實(shí)6-7A第6章Java程序設(shè)計(jì)現(xiàn)。需要子類繼承實(shí)現(xiàn)(覆蓋),也就是說必須在其子類中實(shí)現(xiàn),除非

子類本身也是抽象類。6.2.7接口在生活中經(jīng)常會使用到接口:例如手機(jī)充電接口,計(jì)算機(jī)USB

接口等。當(dāng)使用USB接口,同一類型手機(jī)不用擔(dān)心接口型號

和計(jì)算機(jī)或者充電的接口是否匹配,直接可以使用。同樣,對

于學(xué)習(xí)Java接口也是如此,Java程序設(shè)計(jì)中的接口是在程序中6-7A第6章Java程序設(shè)計(jì)預(yù)設(shè)一個(gè)虛擬的接口,這個(gè)接口可以和編寫程序?qū)崿F(xiàn)更好的

銜接,它只會定義方法名卻沒有方法體,指明接口定義了一個(gè)

類該做什么,卻沒有說如何去做。接口在Java中具有重要的

意義,它可以理解為一種特殊的類(但不是類),里面全部都是

由全局常量和公共的抽象方法組成,所以接口只包含常量和

方法的定義,而沒有實(shí)現(xiàn)變量和方法。因此,可以直接定義接

口類型的參數(shù)方法,并把代碼應(yīng)用于實(shí)現(xiàn)接口的所有類中。1.接口定義6-7A第6章Java程序設(shè)計(jì)在Java中,定義接口必須使用interface關(guān)鍵字,接口定義分為兩個(gè)部

分:接口聲明和接口體。其中接口體有常量定義和方法定義兩個(gè)

部分組成。接口定義的語法格式:2.應(yīng)用接口通過類才可以使得接口實(shí)現(xiàn)一定的作用,使其執(zhí)行一定的功能。

以下給出類實(shí)現(xiàn)接口的語法。3.接口繼承6-7A第6章Java程序設(shè)計(jì)接口和接口之間也有繼承的關(guān)系,當(dāng)兩個(gè)接口實(shí)現(xiàn)繼承時(shí),需要使

用的關(guān)鍵詞為extends。6.2.8抽象類通俗地講抽象類就是普通類和接口的結(jié)合,因?yàn)槌橄箢惪梢?/p>

像普通類那樣在類中實(shí)現(xiàn)方法,也可以像接口一樣,只聲明,不

實(shí)現(xiàn)。抽象類不可以被實(shí)例化,也就是說不可以使用new關(guān)

鍵字來創(chuàng)建對象。使用抽象類的好處在于,當(dāng)有的方法在父6-7A第6章Java程序設(shè)計(jì)類中不想實(shí)現(xiàn)時(shí)可以不實(shí)現(xiàn)。1.抽象類方法抽象類的對象不能由抽象類直接創(chuàng)建,只可以通過抽象類派生出

新的子類,再由其子類創(chuàng)建對象。也就是說只需要給一個(gè)模板,可

依據(jù)模板來創(chuàng)建一個(gè)新的對象。2.抽象類語法6-7A第6章Java程序設(shè)計(jì)定義抽象方法需要在方法的聲明處使用關(guān)鍵字abstract。以下是一

個(gè)抽象方法的基本格式:3.抽象類作用了解Java中的抽象類,抽象類在編程中有哪些作用?或者說為什么

Java中會存在抽象類?6.2.9內(nèi)部類6-7A第6章Java程序設(shè)計(jì)在所有類中有一種類是“依附”外部類而存在的內(nèi)部類,即

嵌套類(innerclass)。內(nèi)部類是定義類的一種方式。它可以

被定義在另外一個(gè)類和接口的內(nèi)部,或者作為其成員的一部

分而存在。內(nèi)部類可以是靜態(tài),也可以用protected和private修

飾(外部類只可以用public和默認(rèn)包訪問權(quán)限)。類似的,一個(gè)

接口可以被定義在另一個(gè)類和接口的內(nèi)部,或者作為其成員

的一部分而存在,稱為內(nèi)部接口或者嵌套接口。6.2.10多線程的編程6-7A第6章Java程序設(shè)計(jì)1.多線程的定義線程(Thread)是程序中單一的順序控制流程。在單個(gè)程序的同時(shí)

運(yùn)行多個(gè)線程完成不同工作的稱為多線程。2.多線程的創(chuàng)建在Java中創(chuàng)建線程有兩種方式。一種是通過繼承Thread方式來實(shí)

現(xiàn),另一種是通過實(shí)現(xiàn)Runnable接口創(chuàng)建線程。6-7A第6章Java程序設(shè)計(jì)3.線程同步先了解同步這個(gè)概念,可能會認(rèn)為同步就是一起動作,其實(shí)不是,

“同”的意思指協(xié)同、互相配合的意思。在Java多線程中,線程同

步就是當(dāng)有一個(gè)線程在對內(nèi)存進(jìn)行操作時(shí),其他線程都不可以對

這個(gè)內(nèi)存地址進(jìn)行操作,直到該線程完成操作,其他線程才能對該

內(nèi)存地址進(jìn)行操作,而其他線程又處于等待狀態(tài)。比如,就好比兩

個(gè)人不能同時(shí)上同一個(gè)廁所,只有當(dāng)一個(gè)人上好廁所時(shí),另一個(gè)人

才能進(jìn)去。而在之前,這個(gè)人不得不在外面等待。所以Java多線程6-7A第6章Java程序設(shè)計(jì)中就是需要用線程同步技術(shù)來解決,為的是避免多個(gè)線程對同一

資源的訪問。6.3Java提高6.3.1文件編程File文件編程是通過File類對象來進(jìn)行文件或者目錄的訪問,

如文件或目錄的名稱、大小、路徑、創(chuàng)建和刪除等。6-7A第6章Java程序設(shè)計(jì)1.創(chuàng)建文件類可以通過File的構(gòu)造方法來創(chuàng)建文件類。下面有三種構(gòu)建方法:2.File類的常見的方法File類的常見方法說明見表6-6。6-7A第6章Java程序設(shè)計(jì)表6-6File類的常見方法說明6-7A第6章Java程序設(shè)計(jì)6.3.2Java文件I/O編程1.I/O概念了解Java中文件編程,可以知道文件或者目錄的相關(guān)信息。比如文

件的名稱、大小、文件的路徑等。這僅僅是對文件本身進(jìn)行操

作,但是不能對文件中的內(nèi)容進(jìn)行處理。下面將介紹文件的I/O編

程。2.InputStream類6-7A第6章Java程序設(shè)計(jì)InputStream類是字節(jié)輸入流的抽象類。表格6-7是該類的常用方

法。6-7A第6章Java程序設(shè)計(jì)表6-7InputStream類的方法說明3.OutputStream類6-7A第6章Java程序設(shè)計(jì)OutputStream類是字節(jié)輸出流的抽象類。表6-8是該類的常用方

法。6-7A第6章Java程序設(shè)計(jì)表6-8OutputStream類的常用方法4.Reader類Reader類是字符輸入流的抽象類,表6-9是該類的方法。6-7A第6章Java程序設(shè)計(jì)表6-9Reader類常用方法5.Writer類6-7A第6章Java程序設(shè)計(jì)Writer類是字符輸出流的抽象類,表6-10是該類的方法。6-7A第6章Java程序設(shè)計(jì)表6-10Writer類常用方法6.文件的輸入、輸出流前面介紹了4種抽象類以及各類的方法。下面來介紹文件的輸

入、輸出流。文件流的操作是為了使文件之間能夠?qū)崿F(xiàn)數(shù)據(jù)的傳6-7A第6章Java程序設(shè)計(jì)輸。根據(jù)流的類型來分,可以分為文件字符流和文件字節(jié)流;根據(jù)

流的流向來分,可以分為流的文件輸入流和文件輸出流。6.3.3JavaTCP編程1.基本概念TCP(TransmissionControlProtocol,傳輸控制協(xié)議)是一種面向連接

的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議。而TCP編程的原理

是通過利用Socket類來編程程序,并通過TCP使兩個(gè)應(yīng)用程序進(jìn)行6-7A第6章Java程序設(shè)計(jì)通信,從而實(shí)現(xiàn)計(jì)算機(jī)與計(jì)算機(jī)之間的數(shù)據(jù)傳輸。應(yīng)用程序的對

象分為服務(wù)器(server)和客戶機(jī)(client)。下面介紹服務(wù)器和客戶機(jī)

如何進(jìn)行通信?其步驟如下:2.服務(wù)器的ServerSocket類及方法ServerSocket類是用于建立一個(gè)等待的請求的服務(wù)器套接字對

象。該類的構(gòu)造方法見表6-11。6-7A第6章Java程序設(shè)計(jì)表6-11ServerSocket類構(gòu)造方法6-7A第6章Java程序設(shè)計(jì)表6-12ServerSocket類的常用方法3.客戶機(jī)Socket的類以及方法客戶機(jī)創(chuàng)建Socket類的對象之后,會試圖與服務(wù)器進(jìn)行連接。連接6-7A第6章Java程序設(shè)計(jì)之后,雙方都可以通過Socket進(jìn)行溝通交流。表6-13是該類的構(gòu)造

方法。6-7A第6章Java程序設(shè)計(jì)表6-13Socket的構(gòu)造方法6-7A第6章Java程序設(shè)計(jì)表6-14Socket的方法4.TCP程序編程案例1)服務(wù)器的程序如下:6-7A第6章Java程序設(shè)計(jì)6.3.4JavaUDP編程1.基本概念UDP(UserDategramProtocol,數(shù)據(jù)報(bào)協(xié)議)是一種簡單的、面向數(shù)

據(jù)報(bào)的無連接的協(xié)議。和TCP相比,是一種不可靠的通信協(xié)議。但

它的優(yōu)

溫馨提示

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

評論

0/150

提交評論