javajava基礎(chǔ)精.ppt_第1頁(yè)
javajava基礎(chǔ)精.ppt_第2頁(yè)
javajava基礎(chǔ)精.ppt_第3頁(yè)
javajava基礎(chǔ)精.ppt_第4頁(yè)
javajava基礎(chǔ)精.ppt_第5頁(yè)
已閱讀5頁(yè),還剩101頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Java 語(yǔ)言程序設(shè)計(jì),Java 語(yǔ)言基礎(chǔ)知識(shí),信息化建設(shè)與管理辦公室 張廣彬 E-mail: TelJava 語(yǔ)言程序設(shè)計(jì),學(xué)習(xí)Java前的準(zhǔn)備工作,3,Java的起源,Java來自于Sun公司的一個(gè)叫Green的項(xiàng)目,其原先的目的是為家用消費(fèi)電子產(chǎn)品開發(fā)一個(gè)分布式代碼系統(tǒng),這樣我們可以把E-mail發(fā)給電冰箱、電視機(jī)等家用電器,對(duì)它們進(jìn)行控制,和它們進(jìn)行信息交流。開始,準(zhǔn)備采用C+,但C+太復(fù)雜,安全性差,最后基于C+開發(fā)了一種新的語(yǔ)言O(shè)ak(Java的前身),,4,Java的起源,Oak是一種用于網(wǎng)絡(luò)的精巧而安全的語(yǔ)言,Sun公司曾以此投標(biāo)一個(gè)交互式電視項(xiàng)目,但

2、結(jié)果被SGI打敗??蓱z的Oak幾乎無家可歸,恰巧這時(shí)Mark Ardreesen開發(fā)的Mosaic和Netscape啟發(fā)了Oak項(xiàng)目組成員,他們用Java編 制 了HotJava瀏 覽器,5,Java的起源,得到了Sun公司首席執(zhí)行官Scott McNealy的支持,觸發(fā)了Java進(jìn) 軍Internet。 Java的取名也有一則趣聞,有一天,幾 位Java成員組的會(huì)員正在討論給這個(gè)新的語(yǔ)言取什么名字,當(dāng)時(shí)他們正在咖啡館喝著Java(爪哇)咖 啡,有一個(gè)人靈機(jī)一動(dòng)說就叫Java怎 樣,得到了其他人的贊賞,于是,Java這個(gè)名字就這樣傳開了。,6,什么是JDK? 上課講的是Java1還是 Java

3、2? 什么是JRE?,Java的相關(guān)概念,JDK就是Java的開發(fā)工具包,1998年12月,SUN公司發(fā)布了JDK1.2,開始使用“Java 2” 這一名稱,目前我們已經(jīng)很少使用JDK1.1版本,所以我們所說的Java都是指Java2。J2SDK當(dāng)然就是Java 2 Software Develop Kit。,JRE(Java Runtime Environment),即Java運(yùn)行環(huán)境,通常已包含在J2SDK中了。,7,J2SE(Java 2 Platform, Standard Edition) J2EE(Java 2 Platform, Enterprise Edition) J2ME(

4、Java 2 Platform, Micro Edition),Java的開發(fā)工具包(JDK),8,目錄,1.1 Java語(yǔ)言與面向?qū)ο蟮某绦蛟O(shè)計(jì) 1.2 Java程序概述 1.3 基本數(shù)據(jù)類型與表達(dá)式 1.4 數(shù)組的概念 1.5 數(shù)組的創(chuàng)建和引用 1.6 本章小結(jié),9,1.1 Java語(yǔ)言與面向?qū)ο蟮某绦蛟O(shè)計(jì),Java語(yǔ)言是一個(gè)面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。 除了面向?qū)ο蟮奶攸c(diǎn)以外,Java語(yǔ)言還在安全性、平臺(tái)無關(guān)性、支持多線程、內(nèi)存管理等許多方面具有卓越的優(yōu)點(diǎn)。,10,1.1.1 面向?qū)ο蟮某绦蛟O(shè)計(jì)思想,計(jì)算機(jī)程序設(shè)計(jì) 對(duì)問題進(jìn)行抽象 用計(jì)算機(jī)語(yǔ)言表述,利用機(jī)器求解,Java語(yǔ)言與面向?qū)ο蟮某绦?/p>

5、設(shè)計(jì),11,1.1.1 面向?qū)ο蟮某绦蛟O(shè)計(jì)思想(續(xù)),程序設(shè)計(jì)語(yǔ)言發(fā)展的歷程 機(jī)器語(yǔ)言 匯編語(yǔ)言 高級(jí)語(yǔ)言 面向?qū)ο蟮恼Z(yǔ)言,Java語(yǔ)言與面向?qū)ο蟮某绦蛟O(shè)計(jì),12,1.1.1 面向?qū)ο蟮某绦蛟O(shè)計(jì)思想(續(xù)),面向?qū)ο蟮乃枷?將客觀事物看作具有狀態(tài)和行為的對(duì)象,通過抽象找出同一類對(duì)象的共同狀態(tài)和行為,構(gòu)成類。,Java語(yǔ)言與面向?qū)ο蟮某绦蛟O(shè)計(jì),13,1.1.1 面向?qū)ο蟮某绦蛟O(shè)計(jì)思想(續(xù)),例: 構(gòu)建一個(gè)汽車類,需要提取所有汽車對(duì)象的共有的狀態(tài)和行為。將狀態(tài)用變量表示,行為用方法表示。 class Car int color_number; int door_number; int speed;

6、void brake() void speedUp() ; void slowDown() ; ,Java語(yǔ)言與面向?qū)ο蟮某绦蛟O(shè)計(jì),14,1.1.1 面向?qū)ο蟮某绦蛟O(shè)計(jì)思想(續(xù)),面向?qū)ο蠹夹g(shù)給軟件發(fā)展帶來的益處 可重用性 可靠性 面向?qū)ο笳Z(yǔ)言的基本特征 抽象和封裝 繼承性 多態(tài)性,Java語(yǔ)言與面向?qū)ο蟮某绦蛟O(shè)計(jì),15,1.1.2 Java語(yǔ)言的特點(diǎn),面向?qū)ο?安全性 Java不支持指針 Java的內(nèi)部安全措施 平臺(tái)無關(guān)性 編譯后的字節(jié)碼對(duì)應(yīng)于Java虛擬機(jī),因此可在不同平臺(tái)上運(yùn)行 多線程 Java是第一個(gè)在語(yǔ)言級(jí)提供內(nèi)至多線程支持的高級(jí)語(yǔ)言 內(nèi)存管理 Java對(duì)內(nèi)存自動(dòng)進(jìn)行管理并進(jìn)行垃圾回

7、收,Java語(yǔ)言與面向?qū)ο蟮某绦蛟O(shè)計(jì),16,1.1.2 Java語(yǔ)言的特點(diǎn)(續(xù)),Java 語(yǔ)言的優(yōu)點(diǎn) 易于學(xué)習(xí) 代碼效率高 代碼質(zhì)量高 開發(fā)程序快 體系結(jié)構(gòu)中立,純Java程序不依賴于平臺(tái) 一處編寫,各處運(yùn)行 軟件易于發(fā)布,Java語(yǔ)言與面向?qū)ο蟮某绦蛟O(shè)計(jì),17,1.1.2 Java語(yǔ)言的特點(diǎn)(續(xù)),Java與C+的區(qū)別 Java中沒有#include 和#define 等預(yù)處理功能,用import語(yǔ)來句包含其它類和包; Java中沒有structure,union及typedef; Java中沒有不屬于類成員的函數(shù),沒有指針和多重繼承,Java只支持單重繼承; Java中禁用goto,但g

8、oto還是保留的關(guān)鍵字; Java中沒有操作符重載; Java中沒有全局變量,可以在類中定義公用、靜態(tài)的數(shù)據(jù)成員實(shí)現(xiàn)相同功能; .,Java語(yǔ)言與面向?qū)ο蟮某绦蛟O(shè)計(jì),18,1.1.3 Java類庫(kù),組成Java程序的最小單位是類,類封裝了數(shù)據(jù)與處理數(shù)據(jù)的方法。 對(duì)于大多數(shù)常用的功能,有大量已經(jīng)編譯好、經(jīng)過測(cè)試的類,這些類的集合就是Java類庫(kù)。 Java類庫(kù)主要是隨編譯器一起提供,也有些類庫(kù)是由獨(dú)立軟件開發(fā)商提供的。,Java語(yǔ)言與面向?qū)ο蟮某绦蛟O(shè)計(jì),19,1.2 Java程序概述,Java 開發(fā)環(huán)境 Application 舉例 Applet舉例 Servlet舉例 JSP舉例,20,1.2

9、.1 Java開發(fā)環(huán)境,Java程序概述,Java程序編譯執(zhí)行的過程,21,1.2.1 Java開發(fā)環(huán)境(續(xù)),一次編寫,各處運(yùn)行,Java程序概述,22,編譯,沒有絕對(duì)地址,將.class文件裝載到內(nèi)存,不存在偽造的指針 不違反訪問權(quán)限 不非法訪問對(duì)象 不導(dǎo)致操作棧溢出,Java的編譯與執(zhí)行,Java程序概述,1.2.1 Java開發(fā)環(huán)境 (續(xù)),23,1.2.1 Java開發(fā)環(huán)境 (續(xù)),Java APIs (應(yīng)用程序接口) 經(jīng)過編譯的,可在程序中使用的Java代碼標(biāo)準(zhǔn)庫(kù)。 Java VM(虛擬機(jī)) Java 程序由Java虛擬機(jī)程序執(zhí)行(或解釋執(zhí)行)。,Java 平臺(tái),Java程序概述,

10、24,1.2.1 Java開發(fā)環(huán)境(續(xù)),Java2 SDK(Software Development Kit) Standard Edition (J2SE) Enterprise Edition (J2EE) Mobile Edition (J2ME),Java程序概述,25,1.2.1 Java開發(fā)環(huán)境(續(xù)),J2SEJ2SDK的核心部分 開發(fā)工具 編譯器 調(diào)試器 文檔制作工具 運(yùn)行環(huán)境 Java 虛擬機(jī) 組成Java 2 平臺(tái)API的類。 幫助文檔 附加庫(kù) Java程序(Applets 和 Applications) 的演示 ,Java程序概述,26,Java開發(fā)工具包括 Javac:

11、 Java編譯器,用來將java程序編譯成 Bytecode。 Java: Java解釋器,執(zhí)行已經(jīng)轉(zhuǎn)換成Bytecode的java應(yīng)用程序。 Jdb: Java調(diào)試器, 用來調(diào)試java程序。 Javap: 反編譯,將類文件還原回方法和變量。 Javadoc: 文檔生成器,創(chuàng)建HTML文件。 Appletviwer: Applet解釋器, 用來解釋已經(jīng)轉(zhuǎn)換成Bytecode的java小應(yīng)用程序。,1.2.1 Java開發(fā)環(huán)境(續(xù)),Java程序概述,27,1.2.1 Java開發(fā)環(huán)境(續(xù)),環(huán)境安裝以j2sdk1.6.0為例 下載地址 下載文件 jdk-6u26-windows-i586-p

12、.exe j2sdk-1_6_0-doc.zip 安裝 直接運(yùn)行“jdk-6u26-windows-i586-p.exe” 。 文檔 解開“j2sdk-1_6_0-doc.zip” 。,Java程序概述,28,1.2.1 Java開發(fā)環(huán)境(續(xù)),安裝JDK后產(chǎn)生如下目錄: bin目錄:Java開發(fā)工具,包括Java編譯器、解釋器等 demo目錄:一些實(shí)例程序 lib目錄:Java開發(fā)類庫(kù) jre目錄: Java運(yùn)行環(huán)境,包括Java虛擬機(jī)、運(yùn)行類庫(kù)等 ,Java程序概述,29,1.2.1 Java開發(fā)環(huán)境(續(xù)),配置環(huán)境變量: SDK平臺(tái)提供的Java編譯器(javac.exe)和Java解釋

13、器(java.exe)位于Java安裝目錄的bin文件夾中,為了能在任何目錄中使用編譯器和解釋器,應(yīng)在系統(tǒng)特性中設(shè)置Path。對(duì)于Windows2000、Windows2003、Windows XP,用鼠標(biāo)右鍵點(diǎn)擊“我的電腦”,彈出菜單,然后選擇屬性,彈出“系統(tǒng)特性”對(duì)話框,再單擊該對(duì)話框中的高級(jí)選項(xiàng),然后點(diǎn)擊按鈕“環(huán)境變量”,添加如下的系統(tǒng)環(huán)境變量,Java程序概述,30,1.2.1 Java開發(fā)環(huán)境(續(xù)),Java程序概述,31,1.2.1 Java開發(fā)環(huán)境(續(xù)),系統(tǒng)環(huán)境ClassPath 值的設(shè)置 : SDK的安裝目錄的jre文件夾中包含著Java應(yīng)用程序運(yùn)行時(shí)所需要的Java類庫(kù),這

14、些類庫(kù)被包含在jrelib目錄下的壓縮文件rt.jar中,Java程序概述,32,1.2.1 Java開發(fā)環(huán)境(續(xù)),Java程序概述,33,1.2.1 Java開發(fā)環(huán)境(續(xù)),幾種集成開發(fā)環(huán)境 netBeans Jcreator LE Borland JBuilder Microsoft Visual J+ IBM : Visual Age for Java Sun ONE Studio,Java程序概述,34,1.2.2 Application舉例,Application 運(yùn)行在客戶端Java虛擬機(jī)上的Java程序 可在客戶端機(jī)器中讀寫 可使用自己的主窗口、標(biāo)題欄和菜單 程序可大可小 能夠

15、以命令行方式運(yùn)行 主類必須有一個(gè)主方法main(),作為程序運(yùn)行的入口。,Java程序概述,35,1.2.3 Application舉例(續(xù)) 例1-1,Java程序概述,public class Hello public static void main (String args ) System.out.println(你好,很高興學(xué)習(xí)Java); ,36,保存 將源文件保存到D:1000中,并命名為Hello.java。注意不可寫成hello.java,因?yàn)镴ava語(yǔ)言是區(qū)分大小寫的。源文件的命名規(guī)則是這樣的,如果源文件中有多個(gè)類,那么只能有一個(gè)類是public類。如果有一個(gè)類是publ

16、ic類,那么源文件的名字必須與這個(gè)類的名字完全相同,擴(kuò)展名是.java。如果源文件沒有public類,那么源文件的名字只要和某個(gè)類的名字相同,并且擴(kuò)展名是.java就可以了。,37,編譯 當(dāng)創(chuàng)建了Hello.java這個(gè)源文件后,就要使用Java編譯器(javac.exe)對(duì)其進(jìn)行編譯 D:1000javac Hello.java 運(yùn)行 Java應(yīng)用程序必須通過Java虛擬機(jī)中的Java解釋器(java.exe)來解釋執(zhí)行其字節(jié)碼文件。Java應(yīng)用程序總是從主類的main方法開始執(zhí)行。因此,必須如下運(yùn)行Java應(yīng)用程序: D:1000java Hello,38,public class MyC

17、lass 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(String arg) MyClass MyObj=new MyClass(); MyObj.myFun(1,2); ,1.2.3 Application舉例(續(xù)) 例1-2,Java程序概述,39,1.2.3 Application舉例(續(xù)) 例1-2 運(yùn)行結(jié)果,使用如下命令編譯并運(yùn)行程序: java

18、cMyClass.java java MyClass 運(yùn)行結(jié)果如下: The sum is: 3,Java程序概述,40,Applet小應(yīng)用程序 運(yùn)行于支持Java的Web瀏覽器中 瀏覽器的解釋器把字節(jié)碼轉(zhuǎn)換成和機(jī)器匹配的指令,在網(wǎng)頁(yè)中執(zhí)行小程序。 Applet和Application的差別:運(yùn)行環(huán)境的不同,小應(yīng)用程序總是放在Web瀏覽器的圖形用戶界面中,1.2.3 Applet舉例,Java程序概述,41,Applet的優(yōu)點(diǎn) Web 瀏覽器軟件包括很多小應(yīng)用程序運(yùn)行所需的功能 Applet的局限性 在客戶端主機(jī)的文件系統(tǒng)中讀/寫受限 不能運(yùn)行客戶端主機(jī)的任何程序 僅能在服務(wù)器和客戶端之間建立

19、聯(lián)系,1.2.3 Applet舉例(續(xù)),Java程序概述,42,JAVA Applet: import java.awt.Graphics; import java.applet.Applet; public class MyApplet extends Applet public String s; public void init() s=new String(Hello World !); public void paint(Graphics g) g.drawString(s,25,25); HTML: ,1.2.3 Applet舉例(續(xù)) 例1-3,Java程序概述,43,1.2.

20、3 Applet舉例(續(xù)) 例1-3注釋,Graphics類 使得applet繪制直線、矩形、橢圓形、字符串等 方法init() 初始化,實(shí)現(xiàn)了字符串的創(chuàng)建 方法paint() 中 g為Graphics類的對(duì)象。調(diào)用了Graphics的drawString方法繪制字符串。 此方法執(zhí)行的結(jié)果就是從坐標(biāo)(60,40)開始繪制出字符串Hello World! 。,Java程序概述,44,1.2.3 Applet舉例(續(xù)) 例1-3運(yùn)行,用支持Java的瀏覽器,比如IE6.0,打開Applet1.html,Java程序概述,45,1.2.3 Applet舉例(續(xù)) 例1-3運(yùn)行,用Java自帶的app

21、letviewer瀏覽 輸入:appletviewer Applet1.html,Java程序概述,46,Servlet 運(yùn)行在服務(wù)器端,響應(yīng)客戶端請(qǐng)求,擴(kuò)展了服務(wù)器的功能 運(yùn)行Servlet需要服務(wù)器的支持,需要在服務(wù)器中進(jìn)行部署 Servlet用到的包在J2EE的API中能找到 所有的servlet都必須實(shí)現(xiàn)Servlet接口,1.2.4 Servlet舉例,Java程序概述,47,程序首先構(gòu)建HttpServletRequest,并建立一個(gè)數(shù)據(jù)表單;點(diǎn)擊submit按鈕后,servlet再次被調(diào)用,并產(chǎn)生一個(gè)含有表單的網(wǎng)頁(yè)。 public class EchoForm extends H

22、ttpServlet public void service(HttpServletRequest req, HttpServletResponse res) throws IOException res.setContentType(text/html); PrintWriter out = res.getWriter(); Enumeration flds = req.getParameterNames();,1.2.5 Servlet舉例(續(xù)) 例1-3,Java程序概述,48,1.2.5 Servlet舉例(續(xù)) 例1-3,if(!flds.hasMoreElements() out.

23、print(); out.print(); for(int i = 0; i Field + i + + ); out.print(); ,Java程序概述,49,else out.print(Your form contained:); while(flds.hasMoreElements() String field= (String)flds.nextElement(); String value= req.getParameter(field); out.print(field + = + value+ ); out.close(); ,1.2.5 Servlet舉例(續(xù)) 例1-3,

24、Java程序概述,50,JSP就是嵌入了Java代碼的HTML JSP和servlet同是服務(wù)器端的技術(shù)。實(shí)際上,JSP文檔在后臺(tái)被自動(dòng)轉(zhuǎn)換成servlet 使用JSP便于實(shí)現(xiàn)網(wǎng)頁(yè)的動(dòng)靜分離 相對(duì)于Servlet,JSP在服務(wù)器的部署簡(jiǎn)單,1.2.6 JSP舉例,Java程序概述,51, The time in second is: ,1.2.6 JSP舉例(續(xù)),Java程序概述,52,1.3 基本數(shù)據(jù)類型與表達(dá)式,變量與常量 基本數(shù)據(jù)類型 表達(dá)式與運(yùn)算符 類型轉(zhuǎn)換,53,1.3.1 變量與常量,變量 一個(gè)由標(biāo)識(shí)符命名的項(xiàng) 每個(gè)變量都有類型, 例如 int 類型或 Object類型, 變量還

25、有作用域. 變量的值可以被改變. 常量 常量一旦被初始化以后就不可改變。,基本數(shù)據(jù)類型與表達(dá)式,54,標(biāo)識(shí)符 標(biāo)識(shí)符是一個(gè)名稱,與內(nèi)存中的某個(gè)位置(地址)相對(duì)應(yīng) 標(biāo)識(shí)符的第一個(gè)字符必須是下列字符之一: 大寫字母 (A-Z) 小寫字母 (a-z) 下劃線(_) 美元符號(hào) ($) 標(biāo)識(shí)符的第二個(gè)字符及后繼字符必須是: 上述列表中的任意字符 數(shù)字字符 (0-9),基本數(shù)據(jù)類型與表達(dá)式,1.3.1 變量與常量(續(xù)),55,整數(shù) byte 8 bits -128 +127 short 16 bits -32768 + 32767 int 32 bits 231(231-1) long 64 bits 2

26、63(263-1) char 8 bits 0 65535,基本數(shù)據(jù)類型與表達(dá)式,1.3.2 基本數(shù)據(jù)類型,56,整數(shù)運(yùn)算 比較運(yùn)算符(關(guān)系運(yùn)算符) 算術(shù)比較運(yùn)算符 , and = 算術(shù)相等比較運(yùn)算符 = and != 算術(shù)運(yùn)算符 一元運(yùn)算符 + 和 - +,- *, /, 和 % (取余 ) 自增/自減運(yùn)算符 +/- 移位運(yùn)算符 , and 位運(yùn)算符 , boolean is_hourly;is_salaried = true; /將 is_salaried設(shè)置為trueis_hourly = false; /將is_hourly設(shè)置為false,基本數(shù)據(jù)類型與表達(dá)式,1.3.2 基本數(shù)據(jù)類

27、型(續(xù)),60,布爾運(yùn)算符 關(guān)系運(yùn)算符 = and != 邏輯“非”運(yùn)算符 ! 邏輯運(yùn)算符 ,基本數(shù)據(jù)類型與表達(dá)式,1.3.2 基本數(shù)據(jù)類型(續(xù)),62,文字量 直接出現(xiàn)在程序中并被編譯器直接使用的值. 整數(shù)文字量 十進(jìn)制 如: 15 十六進(jìn)制 如: 0 xff 八進(jìn)制 如: 0377,基本數(shù)據(jù)類型與表達(dá)式,1.3.2 基本數(shù)據(jù)類型(續(xù)),63,基本數(shù)據(jù)類型與表達(dá)式,1.3.2 基本數(shù)據(jù)類型(續(xù)),浮點(diǎn)文字量 一個(gè)浮點(diǎn)文字量包括以下幾個(gè)部分 整數(shù)部分 小數(shù)點(diǎn) 小數(shù)部分 指數(shù) (e or E) 類型后綴 (f or F for float, d or D for double) float 類型

28、文字量舉例: 1e 1f 2.f .3f 0f 3.1 4f 6.022137e+23f double 類型文字量舉例: 1e1 2. .3 0.0 3.1 4 1e-9d 1e137 布爾文字量 布爾類型只有兩個(gè)值,由文字量 true 和 false表示,64,字符文字量 一個(gè)字符文字量表示為一個(gè)字符或者一個(gè)轉(zhuǎn)義序列,用單引號(hào)括起 例如 a Z 格式字符 b backspace BS t horizontal tab HT n linefeed LF f form feed FF r carriage return CR double quote single quote backslash

29、 ,基本數(shù)據(jù)類型與表達(dá)式,1.3.2 基本數(shù)據(jù)類型(續(xù)),65,字符串文字量 由零個(gè)或多個(gè)字符組成,以雙引號(hào)括起 每一個(gè)字符都可以用轉(zhuǎn)義序列來表示 例如: / 空字符串 / 只包含 的字符串 This is a string / 有16個(gè)字符的字符串 This is a + string /字符串常量表達(dá)式,由兩個(gè)字符串常量組成,基本數(shù)據(jù)類型與表達(dá)式,1.3.2 基本數(shù)據(jù)類型(續(xù)),66,public class ex1_1 public static void main(String args ) final int PRICE=30; final double PI = 3.1415926

30、54; 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); ,變量聲明,變量,文字量,常量聲明,基本數(shù)據(jù)類型與表達(dá)式,1.3.2 基本數(shù)據(jù)類型(續(xù)),67,表達(dá)式是由一系列變量、運(yùn)算符、方法調(diào)用構(gòu)成的,表達(dá)式可以計(jì)算出一個(gè)值來 程序中的很多工作是通過計(jì)算表達(dá)式的值來完成的。 有時(shí)需要的是表達(dá)式的副作用,例如賦值表達(dá)式將數(shù)值賦給變量 更多時(shí)候起作用的是表達(dá)式的值,這個(gè)值可以用作方法的參數(shù),或

31、更大的表達(dá)式的操作數(shù),或者影響語(yǔ)句的執(zhí)行順序,基本數(shù)據(jù)類型與表達(dá)式,1.3.3 表達(dá)式與運(yùn)算符,68,算術(shù)運(yùn)算符 運(yùn)算符 + 和 - 例如: i+; -j; 一元運(yùn)算符 + 和 加法運(yùn)算符 + 和 - 乘法運(yùn)算符 *, /, 和 %,基本數(shù)據(jù)類型與表達(dá)式,1.3.3 表達(dá)式與運(yùn)算符(續(xù)),69,賦值運(yùn)算符 簡(jiǎn)單賦值運(yùn)算符 = 復(fù)合賦值運(yùn)算符 *= /= %= += -= = = ,基本數(shù)據(jù)類型與表達(dá)式,1.3.4 類型轉(zhuǎn)換(續(xù)),81,數(shù)組由同一類型的一連串對(duì)象或者基本數(shù)據(jù)組成,并封裝在同一個(gè)標(biāo)識(shí)符(數(shù)組名稱)下。 數(shù)組是對(duì)象 動(dòng)態(tài)初始化 可以賦值給Object類型的變量 在數(shù)組中可以調(diào)用類O

32、bject 的所有方法,1.4 數(shù)組的概念,82,數(shù)組元素 數(shù)組中的變量被稱作數(shù)組的元素 元素沒有名字,通過數(shù)組名字和非負(fù)整數(shù)下標(biāo)值引用數(shù)組元素。 每個(gè)數(shù)組都有一個(gè)由 public final 修飾的成員變量:length ,即數(shù)組含有元素的個(gè)數(shù)(length可以是正數(shù)或零),數(shù)組的概念,1.4 數(shù)組的概念(續(xù)),83,1.5 數(shù)組的創(chuàng)建和引用,數(shù)組的聲明 數(shù)組的創(chuàng)建 數(shù)組元素的初始化 數(shù)組的引用 多維數(shù)組,84,數(shù)組的創(chuàng)建和引用,1.5.1 數(shù)組的聲明,聲明(Declaration) 聲明數(shù)組時(shí)無需指明數(shù)組元素的個(gè)數(shù),也不為數(shù)組元素分配內(nèi)存空間 不能直接使用,必須經(jīng)過初始化分配內(nèi)存后才能使用

33、,85,Type arrayName; 例如: int intArray; String stringArray; Type arrayName ; 例如: int intArray; String stringArray;,1.5.1 數(shù)組的聲明(續(xù)),數(shù)組的創(chuàng)建和引用,86,用關(guān)鍵字new構(gòu)成數(shù)組的創(chuàng)建表達(dá)式,可以指定數(shù)組的類型和數(shù)組元素的個(gè)數(shù)。元素個(gè)數(shù)可以是常量也可以是變量 基本類型數(shù)組的每個(gè)元素都是一個(gè)基本類型的變量;引用類型數(shù)組的每個(gè)元素都是對(duì)象的的引用,1.5.2 數(shù)組的創(chuàng)建,數(shù)組的創(chuàng)建和引用,87,arryName=new Typecomponets number; 例如: in

34、t 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)建(續(xù)),數(shù)組的創(chuàng)建和引用,88,聲明數(shù)組名時(shí),給出了數(shù)組的初始值,程序便會(huì)利用數(shù)組初始值創(chuàng)建數(shù)組并對(duì)它的各個(gè)元素進(jìn)行初始化 inta=22, 33, 44, 55; 創(chuàng)建數(shù)組的時(shí),如果沒有指定初始值,數(shù)組便被賦予默認(rèn)值初始值。 基本類型數(shù)值數(shù)據(jù),默認(rèn)的初始值為0; boolean類型數(shù)據(jù),默認(rèn)值為fal

35、se; 引用類型元素的默認(rèn)值為null。 程序也可以在數(shù)組被構(gòu)造之后改變數(shù)組元素值,數(shù)組的創(chuàng)建和引用,1.5.3 數(shù)組元素的初始化,89,通過下面的表達(dá)式引用數(shù)組的一個(gè)元素: arrayNameindex 數(shù)組下標(biāo)必須是 int , short, byte, 或者 char. 下標(biāo)從零開始計(jì)數(shù). 元素的個(gè)數(shù)即為數(shù)組的長(zhǎng)度,可以通過 arryName.length引用 元素下標(biāo)最大值為 length 1,如果超過最大值,將會(huì)產(chǎn)生數(shù)組越界異常(ArrayIndexOutOfBoundsException),數(shù)組的創(chuàng)建和引用,1.5.4 數(shù)組的引用,90,int data = new int10;

36、data -1 非法的 data 10 非法的 data 1.5 非法的 data 0 合法的 data 9 合法的,數(shù)組的創(chuàng)建和引用,1.5.4 數(shù)組的引用(續(xù)),91,int values = new int7; int index; index = 0; values index = 71; index = 5; values index = 23; index = 3; values 2+2 = values index-3 ;,數(shù)組的創(chuàng)建和引用,1.5.4 數(shù)組的引用(續(xù)),92,public class MyArray public static void main(String

37、args) int myArray; /聲明數(shù)組 myArray=new int10; /創(chuàng)建數(shù)組 System.out.println(IndexttValue); for(int i=0; imyArray.length;i+) System.out.println(i+tt+myArrayi); /證明數(shù)組元素默認(rèn)初始化為0 /myArray10=100; /將產(chǎn)生數(shù)組越界異常 ,數(shù)組的創(chuàng)建和引用,1.5.4 數(shù)組的引用(續(xù)),93,class Gauss public static void main(String args) int ia = new int101; for (int

38、 i = 0; i ia.length; i+) iai = i; int sum = 0; for (int i = 0; i ia.length; i+) sum += iai; System.out.println(sum); 輸出: 5050,數(shù)組的創(chuàng)建和引用,1.5.4 數(shù)組的引用(續(xù)),94,數(shù)組名是一個(gè)引用: 例子 public class Arrays public static void main(String args) int a1 = 1, 2, 3, 4, 5 ; int a2; a2 = a1; for(int i = 0; i a2.length; i+) a2i

39、+; for(int i = 0; i a1.length; i+) System.out.println( a1 + i + = + a1i); ,數(shù)組的創(chuàng)建和引用,1.5.4 數(shù)組的引用(續(xù)),95,1.5.4 數(shù)組的引用(續(xù)),運(yùn)行結(jié)果: a10 = 2 a11 = 3 a12 = 4 a13 = 5 a14 = 6,數(shù)組的創(chuàng)建和引用,96,字符串引用構(gòu)成的數(shù)組: String strArray; strArray = new String8 ; strArray0= Hello ;,數(shù)組的創(chuàng)建和引用,1.5.4 數(shù)組的引用(續(xù)),97,例子 public class ArrayOfSt

40、ringsDemo public static void main(String args) String anArray = String One, String Two, String Three; for (int i = 0; i anArray.length; i+) System.out.println(anArrayi.toLowerCase(); ,數(shù)組的創(chuàng)建和引用,1.5.4 數(shù)組的引用(續(xù)),運(yùn)行結(jié)果: string one string two string three,98,數(shù)組的復(fù)制: public static void arraycopy(Objectsource , intsrcIndex , Objectdest , intdestIndex , intlength ),source,數(shù)組的創(chuàng)建和引用,1.5.4 數(shù)組的引用(續(xù)),99,例子 public class ArrayCopyDemo public static void main(String args) char copyFrom = d, e, c, a, f, f, e, i, n, a, t, e, d; char copyTo = new char7; System.arraycopy(copyFrom, 2, copyTo,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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)論