




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1Java 語(yǔ)言程序設(shè)計(jì)第一章第一章Java 語(yǔ)言基礎(chǔ)知識(shí)語(yǔ)言基礎(chǔ)知識(shí)計(jì)算機(jī)科學(xué)與工程學(xué)院計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想蔣社想E-mail:E-mail:Telel:139664816052Java 語(yǔ)言程序設(shè)計(jì)學(xué)習(xí)學(xué)習(xí)Java前的前的準(zhǔn)備工作準(zhǔn)備工作JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想3Java的起源的起源 Java來(lái)自于來(lái)自于Sun公司的一個(gè)叫公司的一個(gè)叫Green的的項(xiàng)目,其原先的目的是為家用消費(fèi)電子產(chǎn)項(xiàng)目,其原先的目的是為家用消費(fèi)電子產(chǎn)品開(kāi)發(fā)一個(gè)分布式代碼系統(tǒng),這樣我們可品開(kāi)發(fā)一個(gè)分布式代碼系統(tǒng),這樣我們可以把以把E-mail發(fā)給電冰箱、電視機(jī)等家用
2、電發(fā)給電冰箱、電視機(jī)等家用電器,對(duì)它們進(jìn)行控制,和它們進(jìn)行信息交器,對(duì)它們進(jìn)行控制,和它們進(jìn)行信息交流。開(kāi)始,準(zhǔn)備采用流。開(kāi)始,準(zhǔn)備采用C+,但,但C+太復(fù)雜,太復(fù)雜,安全性差,最后基于安全性差,最后基于C+開(kāi)發(fā)了一種新的開(kāi)發(fā)了一種新的語(yǔ)言語(yǔ)言O(shè)ak(Java的前身),的前身),JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想4Java的起源的起源 Oak是一種用于網(wǎng)絡(luò)的精巧而安全的是一種用于網(wǎng)絡(luò)的精巧而安全的語(yǔ)言,語(yǔ)言,Sun公司曾以此投標(biāo)一個(gè)交互公司曾以此投標(biāo)一個(gè)交互式電視項(xiàng)目,但結(jié)果被式電視項(xiàng)目,但結(jié)果被SGI打敗。可打敗。可憐的憐的Oak幾乎無(wú)家可歸,恰巧這時(shí)幾乎無(wú)家可歸,恰巧這時(shí)Ma
3、rk Ardreesen開(kāi)發(fā)的開(kāi)發(fā)的Mosaic和和Netscape啟發(fā)了啟發(fā)了Oak項(xiàng)目組成員,項(xiàng)目組成員,他們用他們用Java編編 制制 了了HotJava瀏瀏 覽器覽器JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想5Java的起源的起源 得到了Sun公司首席執(zhí)行官Scott McNealy的支持,觸發(fā)了Java進(jìn) 軍Internet。 Java的取名也有一則趣聞,有一天,幾 位Java成員組的會(huì)員正在討論給這個(gè)新的語(yǔ)言取什么名字,當(dāng)時(shí)他們正在咖啡館喝著Java(爪哇)咖 啡,有一個(gè)人靈機(jī)一動(dòng)說(shuō)就叫Java怎 樣,得到了其他人的贊賞,于是,Java這個(gè)名字就這樣傳開(kāi)了。JAVA語(yǔ)言程序設(shè)
4、計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想6什么是什么是JDK?上課講的是上課講的是Java1還是還是 Java2?什么是什么是JRE?Java的相關(guān)概念的相關(guān)概念 JDK就是Java的開(kāi)發(fā)工具包 1998年12月,SUN公司發(fā)布了JDK1.2,開(kāi)始使用“Java 2” 這一名稱,目前我們已經(jīng)很少使用JDK1.1版本,所以我們所說(shuō)的Java都是指Java2。J2SDK當(dāng)然就是Java 2 Software Develop Kit。JRE(Java Runtime Environment),即Java運(yùn)行環(huán)境,通常已包含在J2SDK中了。 JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想7lJ2SE(Jav
5、a 2 Platform, Standard Edition)lJ2EE(Java 2 Platform, Enterprise Edition)lJ2ME(Java 2 Platform, Micro Edition)Java的開(kāi)發(fā)工具包(的開(kāi)發(fā)工具包(JDK)JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想8目錄目錄1.1 Java語(yǔ)言與面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言與面向?qū)ο蟮某绦蛟O(shè)計(jì)1.2 Java程序概述程序概述1.3 基本數(shù)據(jù)類型與表達(dá)式基本數(shù)據(jù)類型與表達(dá)式1.4 數(shù)組的概念數(shù)組的概念1.5 數(shù)組的創(chuàng)建和引用數(shù)組的創(chuàng)建和引用1.6 本章小結(jié)本章小結(jié)JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院
6、蔣社想91.1 Java語(yǔ)言與面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言與面向?qū)ο蟮某绦蛟O(shè)計(jì)lJava語(yǔ)言是一個(gè)面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言是一個(gè)面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。語(yǔ)言。l除了面向?qū)ο蟮奶攸c(diǎn)以外,除了面向?qū)ο蟮奶攸c(diǎn)以外,Java語(yǔ)言語(yǔ)言還在安全性、平臺(tái)無(wú)關(guān)性、支持多線還在安全性、平臺(tái)無(wú)關(guān)性、支持多線程、內(nèi)存管理等許多方面具有卓越的程、內(nèi)存管理等許多方面具有卓越的優(yōu)點(diǎn)。優(yōu)點(diǎn)。JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想101.1.1 面向?qū)ο蟮某绦蛟O(shè)計(jì)思想面向?qū)ο蟮某绦蛟O(shè)計(jì)思想l計(jì)算機(jī)程序設(shè)計(jì)計(jì)算機(jī)程序設(shè)計(jì) 對(duì)問(wèn)題進(jìn)行抽象 用計(jì)算機(jī)語(yǔ)言表述,利用機(jī)器求解Java語(yǔ)言與面向?qū)ο蟮某绦蛟O(shè)計(jì)JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)
7、科學(xué)與工程學(xué)院 蔣社想111.1.1 面向?qū)ο蟮某绦蛟O(shè)計(jì)思想面向?qū)ο蟮某绦蛟O(shè)計(jì)思想(續(xù)續(xù))l程序設(shè)計(jì)語(yǔ)言發(fā)展的歷程程序設(shè)計(jì)語(yǔ)言發(fā)展的歷程 機(jī)器語(yǔ)言 匯編語(yǔ)言 高級(jí)語(yǔ)言 面向?qū)ο蟮恼Z(yǔ)言Java語(yǔ)言與面向?qū)ο蟮某绦蛟O(shè)計(jì)JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想121.1.1 面向?qū)ο蟮某绦蛟O(shè)計(jì)思想面向?qū)ο蟮某绦蛟O(shè)計(jì)思想(續(xù)續(xù))l面向?qū)ο蟮乃枷朊嫦驅(qū)ο蟮乃枷?將客觀事物看作具有狀態(tài)和行為的對(duì)象,通過(guò)抽象找出同一類對(duì)象的共同狀態(tài)和行為,構(gòu)成類。Java語(yǔ)言與面向?qū)ο蟮某绦蛟O(shè)計(jì)JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想131.1.1 面向?qū)ο蟮某绦蛟O(shè)計(jì)思想面向?qū)ο蟮某绦蛟O(shè)計(jì)思想(續(xù)續(xù))l例:
8、例: 構(gòu)建一個(gè)汽車類,需要提取所有汽車對(duì)象的共有的狀態(tài)和行為。將狀態(tài)用變量表示,行為用方法表示。class Car int color_number; int door_number; int speed; void brake() void speedUp() ; void slowDown() ; Java語(yǔ)言與面向?qū)ο蟮某绦蛟O(shè)計(jì)JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想141.1.1 面向?qū)ο蟮某绦蛟O(shè)計(jì)思想面向?qū)ο蟮某绦蛟O(shè)計(jì)思想(續(xù)續(xù))l面向?qū)ο蠹夹g(shù)給軟件發(fā)展帶來(lái)的益處面向?qū)ο蠹夹g(shù)給軟件發(fā)展帶來(lái)的益處 可重用性 可靠性 l面向?qū)ο笳Z(yǔ)言的基本特征面向?qū)ο笳Z(yǔ)言的基本特征 抽象和封裝 繼
9、承性 多態(tài)性Java語(yǔ)言與面向?qū)ο蟮某绦蛟O(shè)計(jì)JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想151.1.2 Java語(yǔ)言的特點(diǎn)語(yǔ)言的特點(diǎn)l面向?qū)ο竺嫦驅(qū)ο髄安全性安全性 Java不支持指針 Java的內(nèi)部安全措施l平臺(tái)無(wú)關(guān)性平臺(tái)無(wú)關(guān)性 編譯后的字節(jié)碼對(duì)應(yīng)于Java虛擬機(jī),因此可在不同平臺(tái)上運(yùn)行l(wèi)多線程多線程 Java是第一個(gè)在語(yǔ)言級(jí)提供內(nèi)至多線程支持的高級(jí)語(yǔ)言l內(nèi)存管理內(nèi)存管理 Java對(duì)內(nèi)存自動(dòng)進(jìn)行管理并進(jìn)行垃圾回收J(rèn)ava語(yǔ)言與面向?qū)ο蟮某绦蛟O(shè)計(jì)JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想161.1.2 Java語(yǔ)言的特點(diǎn)語(yǔ)言的特點(diǎn)(續(xù)續(xù))lJava 語(yǔ)言的優(yōu)點(diǎn)語(yǔ)言的優(yōu)點(diǎn) 易于學(xué)習(xí) 代
10、碼效率高 代碼質(zhì)量高 開(kāi)發(fā)程序快 體系結(jié)構(gòu)中立,純Java程序不依賴于平臺(tái) 一處編寫(xiě),各處運(yùn)行 軟件易于發(fā)布Java語(yǔ)言與面向?qū)ο蟮某绦蛟O(shè)計(jì)JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想171.1.2 Java語(yǔ)言的特點(diǎn)語(yǔ)言的特點(diǎn)(續(xù)續(xù))lJava與與C+的區(qū)別的區(qū)別 Java中沒(méi)有#include 和#define 等預(yù)處理功能,用import語(yǔ)來(lái)句包含其它類和包; Java中沒(méi)有structure,union及typedef; Java中沒(méi)有不屬于類成員的函數(shù),沒(méi)有指針和多重繼承,Java只支持單重繼承; Java中禁用goto,但goto還是保留的關(guān)鍵字; Java中沒(méi)有操作符重載;
11、Java中沒(méi)有全局變量,可以在類中定義公用、靜態(tài)的數(shù)據(jù)成員實(shí)現(xiàn)相同功能;.Java語(yǔ)言與面向?qū)ο蟮某绦蛟O(shè)計(jì)JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想181.1.3 Java類庫(kù)類庫(kù)l組成組成Java程序的最小單位是類,類封程序的最小單位是類,類封裝了數(shù)據(jù)與處理數(shù)據(jù)的方法。裝了數(shù)據(jù)與處理數(shù)據(jù)的方法。l對(duì)于大多數(shù)常用的功能,有大量已經(jīng)對(duì)于大多數(shù)常用的功能,有大量已經(jīng)編譯好、經(jīng)過(guò)測(cè)試的類,這些類的集編譯好、經(jīng)過(guò)測(cè)試的類,這些類的集合就是合就是Java類庫(kù)。類庫(kù)。lJava類庫(kù)主要是隨編譯器一起提供,類庫(kù)主要是隨編譯器一起提供,也有些類庫(kù)是由獨(dú)立軟件開(kāi)發(fā)商提供也有些類庫(kù)是由獨(dú)立軟件開(kāi)發(fā)商提供的。
12、的。Java語(yǔ)言與面向?qū)ο蟮某绦蛟O(shè)計(jì)JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想191.2 Java程序概述程序概述lJava 開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境lApplication 舉例舉例lApplet舉例舉例lServlet舉例舉例lJSP舉例舉例JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想201.2.1 Java開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境Java程序概述Java程序編譯執(zhí)行的過(guò)程JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想211.2.1 Java開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境(續(xù)續(xù))一次編寫(xiě),各處運(yùn)行一次編寫(xiě),各處運(yùn)行Java程序概述JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想22編譯編譯,沒(méi)有絕對(duì)地址沒(méi)有
13、絕對(duì)地址將將.class文件裝載文件裝載到內(nèi)存到內(nèi)存Java源程序源程序(.java文件文件)Java編譯器編譯器Java Bytecode(.class文件文件)系統(tǒng)執(zhí)行平臺(tái)系統(tǒng)執(zhí)行平臺(tái)Bytecode 解釋器解釋器Bytecode 載入器載入器字節(jié)碼校驗(yàn)器字節(jié)碼校驗(yàn)器不存在偽造的指針不存在偽造的指針不違反訪問(wèn)權(quán)限不違反訪問(wèn)權(quán)限不非法訪問(wèn)對(duì)象不非法訪問(wèn)對(duì)象不導(dǎo)致操作棧溢出不導(dǎo)致操作棧溢出Java的編譯與執(zhí)行Java程序概述 1.2.1 Java開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境 (續(xù)續(xù))JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想23 1.2.1 Java開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境 (續(xù)續(xù))lJava APIs (
14、應(yīng)用應(yīng)用程序接口程序接口) 經(jīng)過(guò)編譯的,可在程序中使用的Java代碼標(biāo)準(zhǔn)庫(kù)。lJava VM(虛擬(虛擬機(jī))機(jī)) Java 程序由Java虛擬機(jī)程序執(zhí)行(或解釋執(zhí)行)。Java 程序Java APIsJava 虛擬機(jī)計(jì)算機(jī)系統(tǒng)Java 平臺(tái)Java程序概述JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想241.2.1 Java開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境(續(xù)續(xù))Java2 SDK(Software Development Kit) Standard Edition (J2SE) Enterprise Edition (J2EE) Mobile Edition (J2ME)Java程序概述JAVA語(yǔ)言程序設(shè)
15、計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想251.2.1 Java開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境(續(xù)續(xù))J2SEJ2SDK的核心部分的核心部分l開(kāi)發(fā)工具開(kāi)發(fā)工具 編譯器 調(diào)試器 文檔制作工具l運(yùn)行環(huán)境運(yùn)行環(huán)境 Java 虛擬機(jī) 組成Java 2 平臺(tái)API的類。 幫助文檔l附加庫(kù)附加庫(kù) lJava程序(程序(Applets 和和 Applications) 的演示的演示 Java程序概述JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想26Java開(kāi)發(fā)工具包括開(kāi)發(fā)工具包括lJavac: Java編譯器,用來(lái)將java程序編譯成 Bytecode。l Java: Java解釋器,執(zhí)行已經(jīng)轉(zhuǎn)換成Bytecode的java應(yīng)用
16、程序。l Jdb: Java調(diào)試器, 用來(lái)調(diào)試java程序。l Javap: 反編譯,將類文件還原回方法和變量。l Javadoc: 文檔生成器,創(chuàng)建HTML文件。l Appletviwer: Applet解釋器, 用來(lái)解釋已經(jīng)轉(zhuǎn)換成Bytecode的java小應(yīng)用程序。1.2.1 Java開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境(續(xù)續(xù))Java程序概述JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想271.2.1 Java開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境(續(xù)續(xù))環(huán)境安裝環(huán)境安裝以以j2sdk1.6.0為例為例l下載地址 http:/l下載文件 jdk-6u13-windows-i586-p.exe j2sdk-1_6_0-doc.
17、zipl安裝安裝 直接運(yùn)行“jdk-6u13-windows-i586-p.exe” 。l文檔文檔 解開(kāi)“j2sdk-1_6_0-doc.zip” 。Java程序概述JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想281.2.1 Java開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境(續(xù)續(xù))安裝安裝JDK后產(chǎn)生如下目錄:后產(chǎn)生如下目錄:lbin目錄:目錄:Java開(kāi)發(fā)工具,包括開(kāi)發(fā)工具,包括Java編譯器、解釋器等編譯器、解釋器等l demo目錄:一些實(shí)例程序目錄:一些實(shí)例程序l lib目錄:目錄:Java開(kāi)發(fā)類庫(kù)開(kāi)發(fā)類庫(kù)l jre目錄:目錄: Java運(yùn)行環(huán)境,包括運(yùn)行環(huán)境,包括Java虛擬機(jī)、運(yùn)行類庫(kù)等虛擬機(jī)、運(yùn)行類庫(kù)
18、等l Java程序概述JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想291.2.1 Java開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境(續(xù)續(xù))配置環(huán)境變量:配置環(huán)境變量:lSDK平臺(tái)提供的平臺(tái)提供的Java編譯器(編譯器(javac.exe)和)和Java解釋器(解釋器(java.exe)位于)位于Java安裝目錄的安裝目錄的bin文件夾中,為了能在任何目錄中使用編譯器和解文件夾中,為了能在任何目錄中使用編譯器和解釋器,應(yīng)在系統(tǒng)特性中設(shè)置釋器,應(yīng)在系統(tǒng)特性中設(shè)置Path。對(duì)于。對(duì)于Windows2000、Windows2003、Windows XP,用鼠標(biāo)右鍵點(diǎn)擊用鼠標(biāo)右鍵點(diǎn)擊“我的電腦我的電腦”,彈出菜單,然后,彈
19、出菜單,然后選擇屬性,彈出選擇屬性,彈出“系統(tǒng)特性系統(tǒng)特性”對(duì)話框,再單擊該對(duì)話框,再單擊該對(duì)話框中的高級(jí)選項(xiàng),然后點(diǎn)擊按鈕對(duì)話框中的高級(jí)選項(xiàng),然后點(diǎn)擊按鈕“環(huán)境變環(huán)境變量量”,添加如下的系統(tǒng)環(huán)境變量,添加如下的系統(tǒng)環(huán)境變量Java程序概述JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想301.2.1 Java開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境(續(xù)續(xù))Java程序概述JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想311.2.1 Java開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境(續(xù)續(xù))系統(tǒng)環(huán)境系統(tǒng)環(huán)境ClassPath 值的設(shè)置值的設(shè)置 :lSDK的安裝目錄的的安裝目錄的jre文件夾中包含著文件夾中包含著Java應(yīng)用程序運(yùn)行時(shí)所需要的
20、應(yīng)用程序運(yùn)行時(shí)所需要的Java類類庫(kù),這些類庫(kù)被包含在庫(kù),這些類庫(kù)被包含在jrelib目錄下目錄下的壓縮文件的壓縮文件rt.jar中中 Java程序概述JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想321.2.1 Java開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境(續(xù)續(xù))Java程序概述JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想331.2.1 Java開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境(續(xù)續(xù))幾種集成開(kāi)發(fā)環(huán)境幾種集成開(kāi)發(fā)環(huán)境lnetBeanslJcreator LElBorland JBuilderlMicrosoft Visual J+lIBM : Visual Age for JavalSun ONE StudioJava程
21、序概述JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想341.2.2 Application舉例舉例Application運(yùn)行在客戶端Java虛擬機(jī)上的Java程序可在客戶端機(jī)器中讀寫(xiě)可使用自己的主窗口、標(biāo)題欄和菜單程序可大可小能夠以命令行方式運(yùn)行主類必須有一個(gè)主方法main(),作為程序運(yùn)行的入口。Java程序概述JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想351.2.3 Application舉例舉例(續(xù)續(xù)) 例例1-1Java程序概述public class Hello public static void main (String args ) System.out.println
22、(你好,很高興學(xué)習(xí)你好,很高興學(xué)習(xí)Java); JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想36l保存保存 將源文件保存到將源文件保存到D:1000中,并命中,并命名為名為Hello.java。注意不可寫(xiě)成。注意不可寫(xiě)成hello.java,因?yàn)椋驗(yàn)镴ava語(yǔ)言是區(qū)分大小語(yǔ)言是區(qū)分大小寫(xiě)的。源文件的命名規(guī)則是這樣的,如寫(xiě)的。源文件的命名規(guī)則是這樣的,如果源文件中有多個(gè)類,那么只能有一個(gè)果源文件中有多個(gè)類,那么只能有一個(gè)類是類是public類。如果有一個(gè)類是類。如果有一個(gè)類是public類,那么源文件的名字必須與這個(gè)類的類,那么源文件的名字必須與這個(gè)類的名字完全相同,擴(kuò)展名是名字完全相同,
23、擴(kuò)展名是.java。如果源。如果源文件沒(méi)有文件沒(méi)有public類,那么源文件的名字類,那么源文件的名字只要和某個(gè)類的名字相同,并且擴(kuò)展名只要和某個(gè)類的名字相同,并且擴(kuò)展名是是.java就可以了。就可以了。 JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想37l編譯編譯 當(dāng)創(chuàng)建了當(dāng)創(chuàng)建了Hello.java這個(gè)源文件后,就這個(gè)源文件后,就要使用要使用Java編譯器(編譯器(javac.exe)對(duì)其進(jìn)行編)對(duì)其進(jìn)行編譯譯 D:1000javac Hello.javal運(yùn)行運(yùn)行 Java應(yīng)用程序必須通過(guò)應(yīng)用程序必須通過(guò)Java虛擬機(jī)中虛擬機(jī)中的的Java解釋器(解釋器(java.exe)來(lái)解釋執(zhí)行其
24、字)來(lái)解釋執(zhí)行其字節(jié)碼文件。節(jié)碼文件。Java應(yīng)用程序總是從主類的應(yīng)用程序總是從主類的main方法開(kāi)始執(zhí)行。因此,必須如下運(yùn)行方法開(kāi)始執(zhí)行。因此,必須如下運(yùn)行Java應(yīng)應(yīng)用程序:用程序: D:1000java HelloJAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想38public class MyClass private int val1,val2 ;public void myFun(int x,int y) val1=x ; val2=y ; System.out.println(The sum is: +(val1+val2) ; public static void main(S
25、tring arg) MyClass MyObj=new MyClass(); MyObj.myFun(1,2);1.2.3 Application舉例舉例(續(xù)續(xù)) 例例1-2Java程序概述JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想391.2.3 Application舉例舉例(續(xù)續(xù)) 例例1-2 運(yùn)行結(jié)果運(yùn)行結(jié)果使用如下命令編譯并運(yùn)行程序:使用如下命令編譯并運(yùn)行程序:javac MyClass.javajava MyClass運(yùn)行結(jié)果如下:運(yùn)行結(jié)果如下:The sum is: 3Java程序概述JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想40lApplet小應(yīng)用程序小應(yīng)用程序運(yùn)行
26、于支持Java的Web瀏覽器中瀏覽器的解釋器把字節(jié)碼轉(zhuǎn)換成和機(jī)器匹配的指令,在網(wǎng)頁(yè)中執(zhí)行小程序。Applet和Application的差別:運(yùn)行環(huán)境的不同,小應(yīng)用程序總是放在Web瀏覽器的圖形用戶界面中1.2.3 Applet舉例舉例Java程序概述JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想41lApplet的優(yōu)點(diǎn)的優(yōu)點(diǎn)Web 瀏覽器軟件包括很多小應(yīng)用程序運(yùn)行所需的功能lApplet的局限性的局限性在客戶端主機(jī)的文件系統(tǒng)中讀/寫(xiě)受限不能運(yùn)行客戶端主機(jī)的任何程序僅能在服務(wù)器和客戶端之間建立聯(lián)系1.2.3 Applet舉例舉例(續(xù)續(xù))Java程序概述JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院
27、蔣社想42JAVA Applet:import java.awt.Graphics;import java.applet.Applet;public class MyApplet extends Appletpublic String s;public void init() s=new String(Hello World !); public void paint(Graphics g) g.drawString(s,25,25); HTML:applet code= .class width=400 height=4001.2.3 Applet舉例舉例(續(xù)續(xù)) 例例1-3Java程序概述
28、JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想431.2.3 Applet舉例舉例(續(xù)續(xù)) 例例1-3注釋注釋lGraphics類類 使得applet繪制直線、矩形、橢圓形、字符串等l方法方法init() 初始化,實(shí)現(xiàn)了字符串的創(chuàng)建l方法方法paint() 中中 g為Graphics類的對(duì)象。調(diào)用了Graphics的drawString方法繪制字符串。 此方法執(zhí)行的結(jié)果就是從坐標(biāo)(60,40)開(kāi)始繪制出字符串Hello World! 。Java程序概述JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想441.2.3 Applet舉例舉例(續(xù)續(xù)) 例例1-3運(yùn)行運(yùn)行l(wèi)用支持用支持Java的瀏覽器
29、,比如的瀏覽器,比如IE6.0,打開(kāi)打開(kāi)Applet1.htmlJava程序概述JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想451.2.3 Applet舉例舉例(續(xù)續(xù)) 例例1-3運(yùn)行運(yùn)行l(wèi)用用Java自帶的自帶的appletviewer瀏覽瀏覽 輸入:appletviewer Applet1.htmlJava程序概述JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想46ServletServlet運(yùn)行在服務(wù)器端,響應(yīng)客戶端請(qǐng)求,擴(kuò)展了服務(wù)器的功能 運(yùn)行Servlet需要服務(wù)器的支持,需要在服務(wù)器中進(jìn)行部署Servlet用到的包在J2EE的API中能找到所有的servlet都必須實(shí)現(xiàn)Serv
30、let接口1.2.4 Servlet舉例舉例Java程序概述JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想47程序首先構(gòu)建程序首先構(gòu)建HttpServletRequestHttpServletRequest,并建立一個(gè)數(shù)據(jù),并建立一個(gè)數(shù)據(jù)表單;點(diǎn)擊表單;點(diǎn)擊submitsubmit按鈕后,按鈕后,servletservlet再次被調(diào)用,并產(chǎn)再次被調(diào)用,并產(chǎn)生一個(gè)含有表單的網(wǎng)頁(yè)。生一個(gè)含有表單的網(wǎng)頁(yè)。public class EchoForm extends HttpServletpublic class EchoForm extends HttpServlet public void ser
31、vice(HttpServletRequest req, public void service(HttpServletRequest req, HttpServletResponse res) throws HttpServletResponse res) throws IOException IOException res.setContentType(text/html); res.setContentType(text/html); PrintWriter out = res.getWriter(); PrintWriter out = res.getWriter(); Enumera
32、tion flds = req.getParameterNames(); Enumeration flds = req.getParameterNames(); 1.2.5 Servlet舉例舉例(續(xù)續(xù)) 例例1-3Java程序概述JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想481.2.5 Servlet舉例舉例(續(xù)續(xù)) 例例1-3 if(!flds.hasMoreElements() if(!flds.hasMoreElements() out.print(); out.print(); out.print(form method=POST out.print(); +action=Ec
33、hoForm); for(int i = 0; i 10; i+) for(int i = 0; i 10; i+) out.print(Field + i + + out.print(Field + i + + input type=text+ ); + i + value=Value + i + ); out.print(INPUT TYPE=submit name=submit out.print(); Value=Submit); Java程序概述JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想49elseelse out.print(Your form contained:); ou
34、t.print(Your form contained:); while(flds.hasMoreElements() while(flds.hasMoreElements() String field= (String)flds.nextElement(); String field= (String)flds.nextElement(); String value= req.getParameter(field); String value= req.getParameter(field); out.print(field + = + value+ ); out.print(field +
35、 = + value+ ); out.close(); out.close(); 1.2.5 Servlet舉例舉例(續(xù)續(xù)) 例例1-3Java程序概述JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想50lJSP就是嵌入了就是嵌入了Java代碼的代碼的HTML lJSP和和servlet同是服務(wù)器端的技術(shù)。同是服務(wù)器端的技術(shù)。實(shí)際上,實(shí)際上,JSP文檔在后臺(tái)被自動(dòng)轉(zhuǎn)換文檔在后臺(tái)被自動(dòng)轉(zhuǎn)換成成servlet l使用使用JSP便于實(shí)現(xiàn)網(wǎng)頁(yè)的動(dòng)靜分離便于實(shí)現(xiàn)網(wǎng)頁(yè)的動(dòng)靜分離l相對(duì)于相對(duì)于Servlet,JSP在服務(wù)器的部署在服務(wù)器的部署簡(jiǎn)單簡(jiǎn)單1.2.6 JSP舉例舉例Java程序概述JAVA語(yǔ)言程序
36、設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想51The time in second is:The time in second is: 1.2.6 JSP舉例舉例(續(xù)續(xù))Java程序概述JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想521.3 基本數(shù)據(jù)類型與表達(dá)式基本數(shù)據(jù)類型與表達(dá)式l變量與常量變量與常量l基本數(shù)據(jù)類型基本數(shù)據(jù)類型l表達(dá)式與運(yùn)算符表達(dá)式與運(yùn)算符l類型轉(zhuǎn)換類型轉(zhuǎn)換JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想531.3.1 變量與常量變量與常量 l變量變量 一個(gè)由標(biāo)識(shí)符命名的項(xiàng) 每個(gè)變量都有類型, 例如 int 類型或 Object類型, 變量還有作用域. 變量的值可以被改變. l常量
37、常量 常量一旦被初始化以后就不可改變。基本數(shù)據(jù)類型與表達(dá)式JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想54l標(biāo)識(shí)符標(biāo)識(shí)符 標(biāo)識(shí)符是一個(gè)名稱,與內(nèi)存中的某個(gè)位置(地址)相對(duì)應(yīng) 標(biāo)識(shí)符的第一個(gè)字符必須是下列字符之一: l大寫(xiě)字母大寫(xiě)字母 (A-Z) l小寫(xiě)字母小寫(xiě)字母 (a-z) l下劃線(_) l美元符號(hào) ($) 標(biāo)識(shí)符的第二個(gè)字符及后繼字符必須是: l上述列表中的任意字符 l數(shù)字字符 (0-9) 基本數(shù)據(jù)類型與表達(dá)式1.3.1 變量與常量變量與常量(續(xù)續(xù)) JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想55l整數(shù)整數(shù) byte 8 bits -128 +127 short 16 bits
38、 -32768 + 32767 int 32 bits 231(231-1) long 64 bits 263(263-1) char 8 bits 0 65535 基本數(shù)據(jù)類型與表達(dá)式1.3.2 基本數(shù)據(jù)類型基本數(shù)據(jù)類型 JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想56l整數(shù)運(yùn)算整數(shù)運(yùn)算 比較運(yùn)算符(關(guān)系運(yùn)算符)l算術(shù)比較運(yùn)算符 , , and = l算術(shù)相等比較運(yùn)算符 = and != 算術(shù)運(yùn)算符l一元運(yùn)算符 + 和 -l+,- *, /, 和 % (取余 )l自增/自減運(yùn)算符 +/-l移位運(yùn)算符 , and l位運(yùn)算符 , &, |, and 條件運(yùn)算符 ? : 類型轉(zhuǎn)換運(yùn)算符 字符
39、串連接運(yùn)算符 + 基本數(shù)據(jù)類型與表達(dá)式1.3.2 基本數(shù)據(jù)類型基本數(shù)據(jù)類型(續(xù)續(xù)) JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想57l浮點(diǎn)數(shù)浮點(diǎn)數(shù) floatl單精度浮點(diǎn)數(shù)l32-bitl- m2e m2e m 是一個(gè)小于 224的正整數(shù) e 是一個(gè)介于 -149和104之間(含)的整數(shù) doublel雙精度浮點(diǎn)數(shù)l64-bitl- m2e m2e m是一個(gè)小于 253的正整數(shù) e是一個(gè)介于 -1045 和 1000之間(含)的整數(shù)基本數(shù)據(jù)類型與表達(dá)式1.3.2 基本數(shù)據(jù)類型基本數(shù)據(jù)類型(續(xù)續(xù)) JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想58l浮點(diǎn)運(yùn)算浮點(diǎn)運(yùn)算 比較運(yùn)算符(關(guān)系運(yùn)算符
40、)l算術(shù)比較運(yùn)算符 , , and = l算術(shù)相等比較運(yùn)算符 = and != 算術(shù)運(yùn)算符l一元運(yùn)算符 + 和 -l+,- *, /, 和 % (取余 )l自增/自減運(yùn)算符 +/-l移位運(yùn)算符 , and l位運(yùn)算符 , &, |, and 條件運(yùn)算符 ? : 類型轉(zhuǎn)換運(yùn)算符 字符串連接運(yùn)算符 + 基本數(shù)據(jù)類型與表達(dá)式1.3.2 基本數(shù)據(jù)類型基本數(shù)據(jù)類型(續(xù)續(xù)) JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想59l布爾類型和布爾值布爾類型和布爾值 布爾類型表示一個(gè)邏輯量, 有兩個(gè)取值: true和false 例如:boolean is_salaried;boolean is_hourly;i
41、s_salaried = true; /將 is_salaried設(shè)置為trueis_hourly = false; /將is_hourly設(shè)置為false 基本數(shù)據(jù)類型與表達(dá)式1.3.2 基本數(shù)據(jù)類型基本數(shù)據(jù)類型(續(xù)續(xù)) JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想60l布爾運(yùn)算符布爾運(yùn)算符 關(guān)系運(yùn)算符 = and != 邏輯“非”運(yùn)算符 ! 邏輯運(yùn)算符 &, , 和 | 條件“與” 和條件“或”運(yùn)算符 & 和 | 條件運(yùn)算符 ? : 字符串連接運(yùn)算符 +基本數(shù)據(jù)類型與表達(dá)式1.3.2 基本數(shù)據(jù)類型基本數(shù)據(jù)類型(續(xù)續(xù)) JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想61lString字
42、符串字符串 String 是一個(gè)類 String類JDK標(biāo)準(zhǔn)類集合中的一部分String animal = walrus;基本數(shù)據(jù)類型與表達(dá)式1.3.2 基本數(shù)據(jù)類型基本數(shù)據(jù)類型(續(xù)續(xù)) JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想62l文字量文字量 直接出現(xiàn)在程序中并被編譯器直接使用的值. 整數(shù)文字量l十進(jìn)制如: 15l十六進(jìn)制如: 0 xffl八進(jìn)制如: 0377基本數(shù)據(jù)類型與表達(dá)式1.3.2 基本數(shù)據(jù)類型基本數(shù)據(jù)類型(續(xù)續(xù)) JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想63基本數(shù)據(jù)類型與表達(dá)式1.3.2 基本數(shù)據(jù)類型基本數(shù)據(jù)類型(續(xù)續(xù)) 浮點(diǎn)文字量l一個(gè)浮點(diǎn)文字量包括以下幾個(gè)部分
43、 整數(shù)部分 小數(shù)點(diǎn) 小數(shù)部分 指數(shù) (e or E) 類型后綴 (f or F for float, d or D for double)lfloat 類型文字量舉例: 1e 1f 2.f .3f 0f 3.1 4f 6.022137e+23f ldouble 類型文字量舉例: 1e1 2. .3 0.0 3.1 4 1e-9d 1e137 布爾文字量l布爾類型只有兩個(gè)值,由文字量 true 和 false表示JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想64 字符文字量l一個(gè)字符文字量表示為一個(gè)字符或者一個(gè)轉(zhuǎn)義序列,用單引號(hào)括起 例如 a Z l格式字符 b backspace BS t
44、horizontal tab HT n linefeed LF f form feed FF r carriage return CR double quote single quote backslash 基本數(shù)據(jù)類型與表達(dá)式1.3.2 基本數(shù)據(jù)類型基本數(shù)據(jù)類型(續(xù)續(xù)) JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想65 字符串文字量l由零個(gè)或多個(gè)字符組成,以雙引號(hào)括起l每一個(gè)字符都可以用轉(zhuǎn)義序列來(lái)表示 l例如: / 空字符串 / 只包含 的字符串 This is a string / 有16個(gè)字符的字符串 This is a + string /字符串常量表達(dá)式,由兩個(gè)字符串常量組成 基
45、本數(shù)據(jù)類型與表達(dá)式1.3.2 基本數(shù)據(jù)類型基本數(shù)據(jù)類型(續(xù)續(xù)) JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想66public class ex1_1 public static void main(String args ) final int PRICE=30; final double PI = 3.141592654; int num,total; double v,r,h; num=10; total=num*PRICE; System.out.println(total); r=2.5; h=3.2; v=PI*r*r*h; System.out.println(v); 變量聲明
46、變量聲明變量變量文字量文字量常量聲明常量聲明基本數(shù)據(jù)類型與表達(dá)式1.3.2 基本數(shù)據(jù)類型基本數(shù)據(jù)類型(續(xù)續(xù)) JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想67l表達(dá)式是由一系列變量、運(yùn)算符、方法調(diào)表達(dá)式是由一系列變量、運(yùn)算符、方法調(diào)用構(gòu)成的,表達(dá)式可以計(jì)算出一個(gè)值來(lái)用構(gòu)成的,表達(dá)式可以計(jì)算出一個(gè)值來(lái)l程序中的很多工作是通過(guò)計(jì)算表達(dá)式的值程序中的很多工作是通過(guò)計(jì)算表達(dá)式的值來(lái)完成的。來(lái)完成的。 有時(shí)需要的是表達(dá)式的副作用,例如賦值表達(dá)式將數(shù)值賦給變量 更多時(shí)候起作用的是表達(dá)式的值,這個(gè)值可以用作方法的參數(shù),或更大的表達(dá)式的操作數(shù),或者影響語(yǔ)句的執(zhí)行順序基本數(shù)據(jù)類型與表達(dá)式1.3.3 表達(dá)式與
47、運(yùn)算符表達(dá)式與運(yùn)算符 JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想68l算術(shù)運(yùn)算符算術(shù)運(yùn)算符運(yùn)算符 + 和 -例如: i+; -j; 一元運(yùn)算符 + 和 加法運(yùn)算符 + 和 - 乘法運(yùn)算符 *, /, 和 % 基本數(shù)據(jù)類型與表達(dá)式1.3.3 表達(dá)式與運(yùn)算符表達(dá)式與運(yùn)算符(續(xù)續(xù)) JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想69l賦值運(yùn)算符賦值運(yùn)算符簡(jiǎn)單賦值運(yùn)算符 =復(fù)合賦值運(yùn)算符*= /= %= += -= = = &= = |= E1 op= E2 等效于 E1 = (T)(E1) op (E2), 其中T 是 E1的類型基本數(shù)據(jù)類型與表達(dá)式1.3.3 表達(dá)式與運(yùn)算符表達(dá)式與運(yùn)算符(
48、續(xù)續(xù)) JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想70l舉例舉例a=5表達(dá)式的值為 5a=b=c=5 表達(dá)式的值以及 a,b,c 的值都是 5 a=5+(c=6) 表達(dá)式的值是 11, a 是 11, c 是 6a=(b=4)+(c=6) 表達(dá)式的值是 10, a是10,b是4,c是6a=(b=10)/(c=2)表達(dá)式的值是 5, a是5,b是10,c是2a+=a-=a*a 等效于 a=a+(a=a-a*a)基本數(shù)據(jù)類型與表達(dá)式1.3.3 表達(dá)式與運(yùn)算符表達(dá)式與運(yùn)算符(續(xù)續(xù)) JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想71l關(guān)系運(yùn)算符關(guān)系運(yùn)算符 關(guān)系表達(dá)式的類型永遠(yuǎn)是布爾類型(bo
49、ol). 算術(shù)比較運(yùn)算符 , , and = 類型比較運(yùn)算符 instanceofl例如: e instanceof Point /Point 是一個(gè)類基本數(shù)據(jù)類型與表達(dá)式1.3.3 表達(dá)式與運(yùn)算符表達(dá)式與運(yùn)算符(續(xù)續(xù)) JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想72l相等關(guān)系運(yùn)算符相等關(guān)系運(yùn)算符 數(shù)字相等運(yùn)算符 = , != 布爾相等運(yùn)算符 = , != 引用相等運(yùn)算符 = , !=基本數(shù)據(jù)類型與表達(dá)式1.3.3 表達(dá)式與運(yùn)算符表達(dá)式與運(yùn)算符(續(xù)續(xù)) JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想73l邏輯運(yùn)算符邏輯運(yùn)算符 “與”運(yùn)算 &l如果兩個(gè)操作數(shù)的值都為true運(yùn)算結(jié)果為tr
50、ue; 否則,結(jié)果為false. “或”運(yùn)算 |l如果兩個(gè)操作數(shù)的值都為false運(yùn)算結(jié)果為false;否則,結(jié)果true “非”運(yùn)算符!l操作數(shù)的類型必須是布爾類型l如果操作數(shù)的結(jié)果為 false,則表達(dá)式的結(jié)果為 true ,如果操作數(shù)的結(jié)果為 true則表達(dá)式的結(jié)果為 false基本數(shù)據(jù)類型與表達(dá)式1.3.3 表達(dá)式與運(yùn)算符表達(dá)式與運(yùn)算符(續(xù)續(xù)) JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想74條件運(yùn)算符條件運(yùn)算符 ( (表達(dá)式表達(dá)式1 1?表達(dá)式?表達(dá)式2 2:表達(dá)式:表達(dá)式3)3)首先計(jì)算表達(dá)式1如果表達(dá)式1的值為 true, 則選擇表達(dá)式2的值如果表達(dá)式1的值為 false,則
51、選擇表達(dá)式3的值基本數(shù)據(jù)類型與表達(dá)式1.3.3 表達(dá)式與運(yùn)算符表達(dá)式與運(yùn)算符(續(xù)續(xù)) JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想75l每個(gè)表達(dá)式都有類型每個(gè)表達(dá)式都有類型l如果表達(dá)式的類型對(duì)于上下文不合適如果表達(dá)式的類型對(duì)于上下文不合適 有時(shí)可能會(huì)導(dǎo)致編譯錯(cuò)誤 有時(shí)語(yǔ)言會(huì)進(jìn)行隱含類型轉(zhuǎn)換基本數(shù)據(jù)類型與表達(dá)式1.3.4 類型轉(zhuǎn)換類型轉(zhuǎn)換 JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想76l擴(kuò)展轉(zhuǎn)換擴(kuò)展轉(zhuǎn)換 byte, short, int, long, float, double char 從一種整數(shù)類型到另一種整數(shù)類型,或者從float到double的轉(zhuǎn)換不損失任何信息 從整數(shù)類形向f
52、loat或double轉(zhuǎn)換,會(huì)損失精度l窄化轉(zhuǎn)換窄化轉(zhuǎn)換 double, float, long, int, short, byte,char 窄化轉(zhuǎn)換可能會(huì)丟失信息基本數(shù)據(jù)類型與表達(dá)式1.3.4 類型轉(zhuǎn)換類型轉(zhuǎn)換(續(xù)續(xù)) JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想77l字符串轉(zhuǎn)換字符串轉(zhuǎn)換 任何類型(包括null類型)都可以轉(zhuǎn)換為字符串類型基本數(shù)據(jù)類型與表達(dá)式1.3.4 類型轉(zhuǎn)換類型轉(zhuǎn)換(續(xù)續(xù)) JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想78l賦值轉(zhuǎn)換賦值轉(zhuǎn)換 將表達(dá)式類型轉(zhuǎn)換為制定變量的類型l方法調(diào)用轉(zhuǎn)換方法調(diào)用轉(zhuǎn)換 適用于方法或構(gòu)造方法調(diào)用中的每一個(gè)參數(shù)l強(qiáng)制轉(zhuǎn)換強(qiáng)制轉(zhuǎn)換 將
53、一個(gè)表達(dá)式轉(zhuǎn)換為指定的類型 例如 (float)5.0l字符串轉(zhuǎn)換字符串轉(zhuǎn)換 只當(dāng)一個(gè)操作數(shù)是String類型時(shí),適用于+運(yùn)算符的操作數(shù)基本數(shù)據(jù)類型與表達(dá)式1.3.4 類型轉(zhuǎn)換類型轉(zhuǎn)換(續(xù)續(xù)) JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想79l 數(shù)字提升數(shù)字提升 將算術(shù)運(yùn)算符的操作數(shù)轉(zhuǎn)換為共同類型 一元數(shù)字提升一元數(shù)字提升l如果一個(gè)操作數(shù)是 byte, short, 或 char類型, 一元數(shù)字提升通過(guò)擴(kuò)展轉(zhuǎn)換將它轉(zhuǎn)換為int類型 二元數(shù)字提升二元數(shù)字提升l二元數(shù)字提升作用在特定操作符的操作數(shù)上*, /, %, +, -, , , =, =, !=, &, , | and?:l在必要時(shí)使用
54、擴(kuò)展轉(zhuǎn)換來(lái)轉(zhuǎn)換操作數(shù)類型基本數(shù)據(jù)類型與表達(dá)式1.3.4 類型轉(zhuǎn)換類型轉(zhuǎn)換(續(xù)續(xù)) JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想80l標(biāo)準(zhǔn)輸入輸出簡(jiǎn)介標(biāo)準(zhǔn)輸入輸出簡(jiǎn)介 標(biāo)準(zhǔn)輸入流 System.in 標(biāo)準(zhǔn)輸出流 System.out 例如 System.out.println(Hello world!);基本數(shù)據(jù)類型與表達(dá)式1.3.4 類型轉(zhuǎn)換類型轉(zhuǎn)換(續(xù)續(xù)) JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想81l數(shù)組由同一類型的一連串對(duì)象或數(shù)組由同一類型的一連串對(duì)象或者基本數(shù)據(jù)組成,并封裝在同一者基本數(shù)據(jù)組成,并封裝在同一個(gè)標(biāo)識(shí)符(數(shù)組名稱)下。個(gè)標(biāo)識(shí)符(數(shù)組名稱)下。l數(shù)組是對(duì)象數(shù)組是對(duì)
55、象 動(dòng)態(tài)初始化 可以賦值給Object類型的變量 在數(shù)組中可以調(diào)用類Object 的所有方法1.4 數(shù)組的概念數(shù)組的概念JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想82l數(shù)組元素?cái)?shù)組元素 數(shù)組中的變量被稱作數(shù)組的元素 元素沒(méi)有名字,通過(guò)數(shù)組名字和非負(fù)整數(shù)下標(biāo)值引用數(shù)組元素。 每個(gè)數(shù)組都有一個(gè)由 public final 修飾的成員變量:length ,即數(shù)組含有元素的個(gè)數(shù)(length可以是正數(shù)或零)數(shù)組的概念1.4 數(shù)組的概念數(shù)組的概念(續(xù)續(xù))JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想831.5 數(shù)組的創(chuàng)建和引用數(shù)組的創(chuàng)建和引用l數(shù)組的聲明數(shù)組的聲明l數(shù)組的創(chuàng)建數(shù)組的創(chuàng)建l數(shù)組元素
56、的初始化數(shù)組元素的初始化l數(shù)組的引用數(shù)組的引用l多維數(shù)組多維數(shù)組JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想84數(shù)組的創(chuàng)建和引用1.5.1 數(shù)組的聲明數(shù)組的聲明 l聲明(聲明(Declaration) 聲明數(shù)組時(shí)無(wú)需指明數(shù)組元素的個(gè)數(shù),也不為數(shù)組元素分配內(nèi)存空間 不能直接使用,必須經(jīng)過(guò)初始化分配內(nèi)存后才能使用JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想85Type arrayName; 例如:int intArray; String stringArray; Type arrayName ; 例如:int intArray; String stringArray;1.5.1 數(shù)組的聲明
57、數(shù)組的聲明(續(xù)續(xù)) 數(shù)組的創(chuàng)建和引用JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想86l用關(guān)鍵字用關(guān)鍵字new構(gòu)成數(shù)組的創(chuàng)建表達(dá)式,可構(gòu)成數(shù)組的創(chuàng)建表達(dá)式,可以指定數(shù)組的類型和數(shù)組元素的個(gè)數(shù)。元以指定數(shù)組的類型和數(shù)組元素的個(gè)數(shù)。元素個(gè)數(shù)可以是常量也可以是變量素個(gè)數(shù)可以是常量也可以是變量 l基本類型數(shù)組的每個(gè)元素都是一個(gè)基本類基本類型數(shù)組的每個(gè)元素都是一個(gè)基本類型的變量;引用類型數(shù)組的每個(gè)元素都是型的變量;引用類型數(shù)組的每個(gè)元素都是對(duì)象的的引用對(duì)象的的引用 1.5.2 數(shù)組的創(chuàng)建數(shù)組的創(chuàng)建 數(shù)組的創(chuàng)建和引用JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想87arryName=new Typec
58、omponets number; 例如:int ai; ai=new int10;String s; s=new String3; 或者可以將數(shù)組的聲明和創(chuàng)建一并執(zhí)行int ai=new int10;可以在一條聲明語(yǔ)句中創(chuàng)建多個(gè)數(shù)組 String s1=new String3, s2=new String8;1.5.2 數(shù)組的創(chuàng)建數(shù)組的創(chuàng)建(續(xù)續(xù)) 數(shù)組的創(chuàng)建和引用JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想88l聲明數(shù)組名時(shí),給出了數(shù)組的初始值,程序便會(huì)利聲明數(shù)組名時(shí),給出了數(shù)組的初始值,程序便會(huì)利用數(shù)組初始值創(chuàng)建數(shù)組并對(duì)它的各個(gè)元素進(jìn)行初始用數(shù)組初始值創(chuàng)建數(shù)組并對(duì)它的各個(gè)元素進(jìn)行初始化
59、化 int a=22, 33, 44, 55; l創(chuàng)建數(shù)組的時(shí),如果沒(méi)有指定初始值,數(shù)組便被賦創(chuàng)建數(shù)組的時(shí),如果沒(méi)有指定初始值,數(shù)組便被賦予默認(rèn)值初始值。予默認(rèn)值初始值。 基本類型數(shù)值數(shù)據(jù),默認(rèn)的初始值為0; boolean類型數(shù)據(jù),默認(rèn)值為false; 引用類型元素的默認(rèn)值為null。 l程序也可以在數(shù)組被構(gòu)造之后改變數(shù)組元素值程序也可以在數(shù)組被構(gòu)造之后改變數(shù)組元素值數(shù)組的創(chuàng)建和引用1.5.3 數(shù)組元素的初始化數(shù)組元素的初始化 JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想89l通過(guò)下面的表達(dá)式引用數(shù)組的一個(gè)元素:通過(guò)下面的表達(dá)式引用數(shù)組的一個(gè)元素:arrayNameindexl數(shù)組下標(biāo)必
60、須是數(shù)組下標(biāo)必須是 intint , shortshort, bytebyte, 或者或者 charchar.l下標(biāo)從零開(kāi)始計(jì)數(shù)下標(biāo)從零開(kāi)始計(jì)數(shù). l元素的個(gè)數(shù)即為數(shù)組的長(zhǎng)度,可以通過(guò)元素的個(gè)數(shù)即為數(shù)組的長(zhǎng)度,可以通過(guò) arryName.length引用引用l元素下標(biāo)最大值為元素下標(biāo)最大值為 length 1,如果超過(guò)最大值,將會(huì)產(chǎn)生數(shù)組越界異常(ArrayIndexOutOfBoundsException) 數(shù)組的創(chuàng)建和引用1.5.4 數(shù)組的引用數(shù)組的引用 JAVA語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與工程學(xué)院 蔣社想90int data = new int10;int data = new int10;
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 跨界合作中的商業(yè)模式探討
- 跨領(lǐng)域發(fā)展的職業(yè)規(guī)劃策略
- 跨國(guó)金融機(jī)構(gòu)的數(shù)字化轉(zhuǎn)型
- 《項(xiàng)鏈》課文教案設(shè)計(jì)
- 城市群發(fā)展與協(xié)同效應(yīng)分析-洞察闡釋
- 企業(yè)文化與組織效能提升-洞察闡釋
- 《口語(yǔ)交際習(xí)作四》教案
- DNA是主要的遺傳物質(zhì)說(shuō)課稿
- 論語(yǔ)心得讀后感1000字 讓誠(chéng)信回歸
- 《數(shù)學(xué)公式記憶技巧實(shí)戰(zhàn)演練教案》
- 《電氣工程基礎(chǔ)》熊信銀-張步涵-華中科技大學(xué)習(xí)題答案全解
- 財(cái)政一體化業(yè)務(wù)系統(tǒng)
- 北美連續(xù)油管技術(shù)的新進(jìn)展及發(fā)展趨勢(shì)李宗田
- 行政單位會(huì)計(jì)實(shí)習(xí)報(bào)告(共36頁(yè))
- 110千伏變電站工程檢測(cè)試驗(yàn)項(xiàng)目計(jì)劃
- 《鐵路貨物運(yùn)價(jià)規(guī)則》
- YD_T 3956-2021 電信網(wǎng)和互聯(lián)網(wǎng)數(shù)據(jù)安全評(píng)估規(guī)范_(高清版)
- (完整版)數(shù)學(xué)常用英文詞匯
- 小學(xué)三年級(jí)下冊(cè)音樂(lè)《春天舉行音樂(lè)會(huì)》人音版(簡(jiǎn)譜2014秋)(18張)(1)ppt課件
- 《口腔粘接材料》PPT課件.ppt
- 最新《消費(fèi)者行為學(xué)》綜合練習(xí)
評(píng)論
0/150
提交評(píng)論