版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第1章Java語(yǔ)言基礎(chǔ)知識(shí)目錄1.1 Java語(yǔ)言與面向?qū)ο蟮某绦蛟O(shè)計(jì)1.2 Java5和Java6的新特色1.3 Java程序概述1.4 基本數(shù)據(jù)類型與表達(dá)式1.5 數(shù)組的概念1.6 數(shù)組的創(chuàng)建和引用1.7 本章小結(jié)21.1 Java語(yǔ)言與面向?qū)ο蟮某绦蛟O(shè)計(jì) Java語(yǔ)言是一個(gè)面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。 除了面向?qū)ο蟮奶攸c(diǎn)以外,Java語(yǔ)言還在安全性、平臺(tái)無(wú)關(guān)性、支持多線程、內(nèi)存管理等許多方面具有卓越的優(yōu)點(diǎn)。31.1.1 面向?qū)ο蟮某绦蛟O(shè)計(jì)思想計(jì)算機(jī)程序設(shè)計(jì) 對(duì)問題進(jìn)行抽象 用計(jì)算機(jī)語(yǔ)言表述,利用機(jī)器求解41.1 Java語(yǔ)言與面向?qū)ο蟮某绦蛟O(shè)計(jì)1.1.1 面向?qū)ο蟮某绦蛟O(shè)計(jì)思想(續(xù))程序設(shè)計(jì)
2、語(yǔ)言發(fā)展的歷程 機(jī)器語(yǔ)言 匯編語(yǔ)言 高級(jí)語(yǔ)言 面向?qū)ο蟮恼Z(yǔ)言51.1 Java語(yǔ)言與面向?qū)ο蟮某绦蛟O(shè)計(jì)1.1.1 面向?qū)ο蟮某绦蛟O(shè)計(jì)思想(續(xù))面向?qū)ο蟮乃枷?將客觀事物看作具有狀態(tài)和行為的對(duì)象,通過抽象找出同一類對(duì)象的共同狀態(tài)和行為,構(gòu)成類。61.1 Java語(yǔ)言與面向?qū)ο蟮某绦蛟O(shè)計(jì)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; void brake() void speedUp() ; voi
3、d slowDown() ; 71.1 Java語(yǔ)言與面向?qū)ο蟮某绦蛟O(shè)計(jì)1.1.1 面向?qū)ο蟮某绦蛟O(shè)計(jì)思想(續(xù))面向?qū)ο蠹夹g(shù)給軟件發(fā)展帶來的益處 可重用性 可靠性 面向?qū)ο笳Z(yǔ)言的基本特征 抽象和封裝 繼承性 多態(tài)性81.1 Java語(yǔ)言與面向?qū)ο蟮某绦蛟O(shè)計(jì)1.1.2 Java語(yǔ)言的特點(diǎn)面向?qū)ο蟀踩?Java不支持指針 Java的內(nèi)部安全措施平臺(tái)無(wú)關(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)行垃圾回收91.1 Java語(yǔ)言與面向?qū)ο蟮某绦蛟O(shè)計(jì)1.1.2 Java語(yǔ)言的特點(diǎn)(續(xù)
4、)Java 語(yǔ)言的優(yōu)點(diǎn) 易于學(xué)習(xí) 代碼效率高 代碼質(zhì)量高 開發(fā)程序快 體系結(jié)構(gòu)中立,純Java程序不依賴于平臺(tái) 一處編寫,各處運(yùn)行 軟件易于發(fā)布101.1 Java語(yǔ)言與面向?qū)ο蟮某绦蛟O(shè)計(jì)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,但goto還是保留的關(guān)鍵字; Java中沒有操作符重載; Java中沒有全局變量,可
5、以在類中定義公用、靜態(tài)的數(shù)據(jù)成員實(shí)現(xiàn)相同功能;.111.1 Java語(yǔ)言與面向?qū)ο蟮某绦蛟O(shè)計(jì)1.1.3 Java類庫(kù)組成Java程序的最小單位是類,類封裝了數(shù)據(jù)與處理數(shù)據(jù)的方法。對(duì)于大多數(shù)常用的功能,有大量已經(jīng)編譯好、經(jīng)過測(cè)試的類,這些類的集合就是Java類庫(kù)。Java類庫(kù)主要是隨編譯器一起提供,也有些類庫(kù)是由獨(dú)立軟件開發(fā)商提供的。演示:API121.1 Java語(yǔ)言與面向?qū)ο蟮某绦蛟O(shè)計(jì)1.2 Java 5和Java 6的新特色Java 5 增強(qiáng)for循環(huán);泛型;自動(dòng)裝箱拆箱;枚舉類型;可變長(zhǎng)參數(shù);靜態(tài)import;注解 Java 6 腳本執(zhí)行功能;更強(qiáng)的網(wǎng)絡(luò)服務(wù)支持;Java DB;新增桌面
6、API;處理注解;更強(qiáng)的監(jiān)控和管理;支持對(duì)編譯器的訪問;對(duì)XML安全性的支持 131.2 Java 5和Java 6的新特色Java 5的新特色 增強(qiáng)for循環(huán):遍歷集合類中元素的更方便的方式 泛型:參數(shù)化類型,即所操作的數(shù)據(jù)類型被指定為一個(gè)參數(shù) 自動(dòng)裝箱拆箱:基本數(shù)據(jù)類型與其對(duì)應(yīng)類的對(duì)象之間的自動(dòng)類型轉(zhuǎn)換 枚舉類型:適用于元素為特定值的有限集合 可變長(zhǎng)參數(shù):帶省略號(hào)的參數(shù),其實(shí)質(zhì)是數(shù)組 靜態(tài)import:import類的靜態(tài)成員,從而在使用時(shí)不需要在靜態(tài)成員名前加上類名 注解:可用于向程序分析工具提供信息 141.2 Java 5和Java 6的新特色Java 6的新特色 腳本執(zhí)行:在Jav
7、a代碼中可以執(zhí)行腳本 Java DB:Java 自帶的數(shù)據(jù)庫(kù) 新增桌面API:提供類,用于和系統(tǒng)本身的應(yīng)用程序交互 處理注解:提供處理注解功能,從而方便分析Java程序 151.3 Java程序概述Java 開發(fā)環(huán)境Application 舉例Applet舉例161.3.1 Java開發(fā)環(huán)境Java程序編譯執(zhí)行的過程171.3 Java程序概述1.3.1 Java開發(fā)環(huán)境(續(xù))一次編寫,各處運(yùn)行181.3 Java程序概述1.3.1 Java開發(fā)環(huán)境(續(xù))Java 平臺(tái)Java APIs (應(yīng)用程序接口) 經(jīng)過編譯的,可在程序中使用的Java代碼標(biāo)準(zhǔn)庫(kù)。Java VM(虛擬機(jī)) Java 程序
8、由Java虛擬機(jī)程序執(zhí)行(或解釋執(zhí)行)。19Java 程序Java APIsJava 虛擬機(jī)計(jì)算機(jī)系統(tǒng)1.3 Java程序概述1.3.1 Java開發(fā)環(huán)境(續(xù))Java 平臺(tái)Java2 SDK(Software Development Kit) Standard Edition (J2SE) Enterprise Edition (J2EE) Mobile Edition (J2ME)201.3 Java程序概述1.3.1 Java開發(fā)環(huán)境(續(xù))J2SEJ2SDK的核心部分 開發(fā)工具 編譯器 調(diào)試器 文檔制作工具 運(yùn)行環(huán)境 Java 虛擬機(jī) 組成Java 2 平臺(tái)API的類。 幫助文檔 附加庫(kù)
9、 Java程序(Applets 和 Applications) 的演示 211.3 Java程序概述1.3.1 Java開發(fā)環(huán)境(續(xù))Java開發(fā)工具包括 Javac: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)用程序。221.3 Java程序概述1.3.1 Ja
10、va開發(fā)環(huán)境(續(xù))環(huán)境安裝 下載地址 下載文件 安裝231.3 Java程序概述1.3.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ù)等 241.3 Java程序概述1.3.1 Java開發(fā)環(huán)境(續(xù))幾種集成開發(fā)環(huán)境 netBeans演示 Jcreator LE Borland Jbuilder Sun ONE Studio Eclipse251.3 Java程序概述1.3.2 Application舉例Appli
11、cation 運(yùn)行在客戶端Java虛擬機(jī)上的Java程序 可在客戶端機(jī)器中讀寫 可使用自己的主窗口、標(biāo)題欄和菜單 程序可大可小 能夠以命令行方式運(yùn)行 主類必須有一個(gè)主方法main(),作為程序運(yùn)行的入口。261.3 Java程序概述1.3.2 Application舉例(續(xù)) 例1-1public 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
12、 main(String arg) MyClass MyObj=new MyClass(); MyObj.myFun(1,2);271.3 Java程序概述1.3.2 Application舉例(續(xù)) 例1-1運(yùn)行結(jié)果使用如下命令編譯并運(yùn)行程序:java MyClass運(yùn)行結(jié)果如下:The sum is: 3281.3 Java程序概述1.3.3 Applet舉例Applet小應(yīng)用程序 運(yùn)行于支持Java的Web瀏覽器中 瀏覽器的解釋器把字節(jié)碼轉(zhuǎn)換成和機(jī)器匹配的指令,在網(wǎng)頁(yè)中執(zhí)行小程序。 Applet和Application的差別:運(yùn)行環(huán)境的不同,小應(yīng)用程序總是放在Web瀏覽器的圖形用戶界面中
13、291.3 Java程序概述1.3.3 Applet舉例(續(xù))30Applet的優(yōu)點(diǎn) Web 瀏覽器軟件包括很多小應(yīng)用程序運(yùn)行所需的功能Applet的局限性 在客戶端主機(jī)的文件系統(tǒng)中讀/寫受限 不能運(yùn)行客戶端主機(jī)的任何程序 僅能在服務(wù)器和客戶端之間建立聯(lián)系1.3 Java程序概述1.3.3 Applet舉例(續(xù))例1-231JAVA Applet:import java.awt.Graphics;import java.applet.Applet;public class MyApplet extends Appletpublic String s;public void init() s=n
14、ew String(Hello World !); public void paint(Graphics g) g.drawString(s,25,25); HTML:1.3 Java程序概述1.3.3 Applet舉例(續(xù))例1-2注釋32Graphics類 使得applet繪制直線、矩形、橢圓形、字符串等方法init() 初始化,實(shí)現(xiàn)了字符串的創(chuàng)建方法paint() 中 g為Graphics類的對(duì)象。調(diào)用了Graphics的drawString方法繪制字符串。 此方法執(zhí)行的結(jié)果就是從坐標(biāo)(60,40)開始繪制出字符串Hello World! 。1.3 Java程序概述1.3.3 Apple
15、t舉例(續(xù))例1-2運(yùn)行33用支持Java的瀏覽器,比如,打開1.3 Java程序概述1.3.3 Applet舉例(續(xù))例1-2運(yùn)行34用Java自帶的appletviewer瀏覽 輸入:1.3 Java程序概述1.3.4 Servlet舉例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接口351.3 Java程序概述1.3.4 Servlet舉例(續(xù))例1-3程序首先構(gòu)建HttpServletRequest,并建立一個(gè)
16、數(shù)據(jù)表單;點(diǎn)擊submit按鈕后,servlet再次被調(diào)用,并產(chǎn)生一個(gè)含有表單的網(wǎng)頁(yè)。public class EchoForm extends HttpServlet public void service(HttpServletRequest req, HttpServletResponse res) throws IOException res.setContentType(text/html); PrintWriter out = res.getWriter(); Enumeration flds = req.getParameterNames();361.3 Java程序概述1.3.
17、4 Servlet舉例(續(xù))例1-3if(!flds.hasMoreElements() out.print(); out.print(); for(int i = 0; i 10; i+) out.print(Field + i + + ); out.print(); 371.3 Java程序概述1.3.4 Servlet舉例(續(xù))例1-3else out.print(Your form contained:); while(flds.hasMoreElements() String field= (String)flds.nextElement(); String value= req.g
18、etParameter(field); out.print(field + = + value+ ); out.close(); 381.3 Java程序概述1.3.5 JSP舉例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)單391.3 Java程序概述1.3.5 JSP舉例(續(xù))The time in second is: 401.3 Java程序概述1.3.6 運(yùn)行腳本舉例Java的腳本API提供一個(gè)獨(dú)立于腳本語(yǔ)言,在Java
19、代碼中使用腳本引擎的框架通過Java腳本API,可以用Java語(yǔ)言實(shí)現(xiàn)一定的功能,而將另外一些功能通過腳本來實(shí)現(xiàn)腳本的來源可以是Java程序中的String對(duì)象,也可以來源于文件411.3 Java程序概述1.3.6 運(yùn)行腳本舉例(續(xù))腳本來源于String:import javax.script.*;public class ScriptTester public static void main(String args) throws ScriptException ScriptEngineManager manager = new ScriptEngineManager(); Scrip
20、tEngine engine = manager.getEngineByName(JavaScript); engine.eval(print (Hello Worldn); 421.3 Java程序概述1.3.6 運(yùn)行腳本舉例(續(xù))腳本來源于文件:import javax.script.*;public class ScriptTester1 public static void main(String args) throws Exception ScriptEngineManager factory = new ScriptEngineManager(); ScriptEngine en
21、gine = factory.getEngineByName(JavaScript); engine.eval(new java.io.FileReader(D:test.js); 建立文件“D:test.js”,其內(nèi)容為:println(This is hello from file test.js); 431.3 Java程序概述1.4 基本數(shù)據(jù)類型與表達(dá)式變量與常量基本數(shù)據(jù)類型表達(dá)式與運(yùn)算符類型轉(zhuǎn)換441.4.1 變量與常量變量 一個(gè)由標(biāo)識(shí)符命名的項(xiàng) 每個(gè)變量都有類型, 例如 int 類型或 Object類型, 變量還有作用域. 變量的值可以被改變. 常量 常量一旦被初始化以后就不可改變
22、。451.4 基本數(shù)據(jù)類型與表達(dá)式1.4.1 變量與常量(續(xù))標(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) 461.4 基本數(shù)據(jù)類型與表達(dá)式1.4.2 基本數(shù)據(jù)類型 整數(shù) byte 8 bits short 16 bits int 32 bits long 64 char 16 471.4 基本數(shù)據(jù)類型與表達(dá)式1.4.2 基本數(shù)據(jù)類型(續(xù))整數(shù)運(yùn)算 比較運(yùn)算符(關(guān)系運(yùn)算
23、符) 算術(shù)比較運(yùn)算符 , , and = 算術(shù)相等比較運(yùn)算符 = and != 算術(shù)運(yùn)算符 一元運(yùn)算符 + 和 - +,- *, /, 和 % (取余 ) 自增/自減運(yùn)算符 +/- 移位運(yùn)算符 , and 位運(yùn)算符 , &, |, and 條件運(yùn)算符 ? : 類型轉(zhuǎn)換運(yùn)算符 字符串連接運(yùn)算符 + 481.4 基本數(shù)據(jù)類型與表達(dá)式1.4.2 基本數(shù)據(jù)類型(續(xù)) 浮點(diǎn)數(shù) float 單精度浮點(diǎn)數(shù) 32-bit - m2e m2e m 是一個(gè)小于 224的正整數(shù) e 是一個(gè)介于 -149和104之間(含)的整數(shù) double 雙精度浮點(diǎn)數(shù) 64-bit - m2e m2e m是一個(gè)小于 25
24、3的正整數(shù) e是一個(gè)介于 -1045 和 1000之間(含)的整數(shù)491.4 基本數(shù)據(jù)類型與表達(dá)式1.4.2 基本數(shù)據(jù)類型(續(xù))浮點(diǎn)運(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)算符 , &, |, and 條件運(yùn)算符 ? : 類型轉(zhuǎn)換運(yùn)算符 字符串連接運(yùn)算符 + 501.4 基本數(shù)據(jù)類型與表達(dá)式1.4.2 基本數(shù)據(jù)類型(續(xù))布爾類型和布爾值 布爾類型表示一個(gè)邏輯量, 有兩個(gè)取值: true和fal
25、se 例如:boolean is_salaried;boolean is_hourly;is_salaried = true; /將 is_salaried設(shè)置為trueis_hourly = false; /將is_hourly設(shè)置為false 511.4 基本數(shù)據(jù)類型與表達(dá)式1.4.2 基本數(shù)據(jù)類型(續(xù))布爾運(yùn)算符 關(guān)系運(yùn)算符 = and != 邏輯“非”運(yùn)算符 ! 邏輯運(yùn)算符 &, , 和 | 條件“與” 和條件“或”運(yùn)算符 & 和 | 條件運(yùn)算符 ? : 字符串連接運(yùn)算符 +521.4 基本數(shù)據(jù)類型與表達(dá)式1.4.2 基本數(shù)據(jù)類型(續(xù))String字符串 String
26、是一個(gè)類 String類JDK標(biāo)準(zhǔn)類集合中的一部分String animal = walrus;531.4 基本數(shù)據(jù)類型與表達(dá)式1.4.2 基本數(shù)據(jù)類型(續(xù))文字量 直接出現(xiàn)在程序中并被編譯器直接使用的值. 整數(shù)文字量 十進(jìn)制如: 15 十六進(jìn)制如: 0 xff 八進(jìn)制如: 0377541.4 基本數(shù)據(jù)類型與表達(dá)式1.4.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 類型文字量舉例: 1e 1f 2.f .3f 0f 3.1
27、 4f 6.022137e+23f double 類型文字量舉例: 1e1 2. .3 0.0 3.1 4 1e-9d 1e137 布爾文字量 布爾類型只有兩個(gè)值,由文字量 true 和 false表示551.4 基本數(shù)據(jù)類型與表達(dá)式1.4.2 基本數(shù)據(jù)類型(續(xù)) 字符文字量 一個(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 backslas
28、h 561.4 基本數(shù)據(jù)類型與表達(dá)式1.4.2 基本數(shù)據(jù)類型(續(xù)) 字符串文字量 由零個(gè)或多個(gè)字符組成,以雙引號(hào)括起 每一個(gè)字符都可以用轉(zhuǎn)義序列來表示 例如: / 空字符串 / 只包含 的字符串 This is a string / 有16個(gè)字符的字符串 This is a + string /字符串常量表達(dá)式,由兩個(gè)字符串常量組成571.4 基本數(shù)據(jù)類型與表達(dá)式1.4.2 基本數(shù)據(jù)類型(續(xù))58public class ex1_1 public static void main(String args ) final int PRICE=30; final double PI = 3.141
29、592654; 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); 變量聲明變量聲明變量變量文字量文字量常量聲明常量聲明1.4 基本數(shù)據(jù)類型與表達(dá)式1.4.3 表達(dá)式與運(yùn)算符59表達(dá)式是由一系列變量、運(yùn)算符、方法調(diào)用構(gòu)成的,表達(dá)式可以計(jì)算出一個(gè)值來程序中的很多工作是通過計(jì)算表達(dá)式的值來完成的。 有時(shí)需要的是表達(dá)式的副作用,例如賦值表達(dá)式將數(shù)值賦給變量 更多時(shí)候起作用的是表達(dá)式的值,這個(gè)值可
30、以用作方法的參數(shù),或更大的表達(dá)式的操作數(shù),或者影響語(yǔ)句的執(zhí)行順序1.4 基本數(shù)據(jù)類型與表達(dá)式1.4.3 表達(dá)式與運(yùn)算符(續(xù))60算術(shù)運(yùn)算符 運(yùn)算符 + 和 -例如: i+; -j; 一元運(yùn)算符 + 和 加法運(yùn)算符 + 和 - 乘法運(yùn)算符 *, /, 和 % 1.4 基本數(shù)據(jù)類型與表達(dá)式1.4.3 表達(dá)式與運(yùn)算符(續(xù))61賦值運(yùn)算符 簡(jiǎn)單賦值運(yùn)算符 = 復(fù)合賦值運(yùn)算符*= /= %= += -= = = &= = |= E1 op= E2 等效于 E1 = (T)(E1) op (E2), 其中T 是 E1的類型1.4 基本數(shù)據(jù)類型與表達(dá)式1.4.3 表達(dá)式與運(yùn)算符(續(xù))62關(guān)系運(yùn)算符
31、關(guān)系表達(dá)式的類型永遠(yuǎn)是布爾類型(bool). 算術(shù)比較運(yùn)算符 , , and = 類型比較運(yùn)算符 instanceof 例如: e instanceof Point /Point 是一個(gè)類1.4 基本數(shù)據(jù)類型與表達(dá)式1.4.3 表達(dá)式與運(yùn)算符(續(xù))63相等關(guān)系運(yùn)算符 數(shù)字相等運(yùn)算符 = , != 布爾相等運(yùn)算符 = , != 引用相等運(yùn)算符 = , !=1.4 基本數(shù)據(jù)類型與表達(dá)式1.4.3 表達(dá)式與運(yùn)算符(續(xù))64邏輯運(yùn)算符 “與”運(yùn)算 & 如果兩個(gè)操作數(shù)的值都為true運(yùn)算結(jié)果為true; 否則,結(jié)果為false. “或”運(yùn)算 | 如果兩個(gè)操作數(shù)的值都為false運(yùn)算結(jié)果為fals
32、e;否則,結(jié)果true “非”運(yùn)算符! 操作數(shù)的類型必須是布爾類型 如果操作數(shù)的結(jié)果為 false,則表達(dá)式的結(jié)果為 true ,如果操作數(shù)的結(jié)果為 true則表達(dá)式的結(jié)果為 false1.4 基本數(shù)據(jù)類型與表達(dá)式1.4.3 表達(dá)式與運(yùn)算符(續(xù))65條件運(yùn)算符 (表達(dá)式1?表達(dá)式2:表達(dá)式3) 首先計(jì)算表達(dá)式1 如果表達(dá)式1的值為 true, 則選擇表達(dá)式2的值 如果表達(dá)式1的值為 false,則選擇表達(dá)式3的值1.4 基本數(shù)據(jù)類型與表達(dá)式1.4.4 類型轉(zhuǎn)換66每個(gè)表達(dá)式都有類型如果表達(dá)式的類型對(duì)于上下文不合適 有時(shí)可能會(huì)導(dǎo)致編譯錯(cuò)誤 有時(shí)語(yǔ)言會(huì)進(jìn)行隱含類型轉(zhuǎn)換1.4 基本數(shù)據(jù)類型與表達(dá)式1
33、.4.4 類型轉(zhuǎn)換(續(xù))67 擴(kuò)展轉(zhuǎn)換 byte, char, short, int, long, float, double 從一種整數(shù)類型到另一種整數(shù)類型,或者從float到double的轉(zhuǎn)換不損失任何信息 從整數(shù)類形向float或double轉(zhuǎn)換,會(huì)損失精度 窄化轉(zhuǎn)換 double, float, long, int, short, byte,char 窄化轉(zhuǎn)換可能會(huì)丟失信息1.4 基本數(shù)據(jù)類型與表達(dá)式1.4.4 類型轉(zhuǎn)換(續(xù))68賦值轉(zhuǎn)換 將表達(dá)式類型轉(zhuǎn)換為制定變量的類型方法調(diào)用轉(zhuǎn)換 適用于方法或構(gòu)造方法調(diào)用中的每一個(gè)參數(shù)強(qiáng)制轉(zhuǎn)換 將一個(gè)表達(dá)式轉(zhuǎn)換為指定的類型 例如 (字符串轉(zhuǎn)換 任何
34、類型(包括null類型)都可以轉(zhuǎn)換為字符串類型 只當(dāng)一個(gè)操作數(shù)是String類型時(shí),適用于+運(yùn)算符的操作數(shù)1.4 基本數(shù)據(jù)類型與表達(dá)式1.4.4 類型轉(zhuǎn)換(續(xù))69 數(shù)字提升 將算術(shù)運(yùn)算符的操作數(shù)轉(zhuǎn)換為共同類型 一元數(shù)字提升一元數(shù)字提升 如果一個(gè)操作數(shù)是 byte, short, 或 char類型, 一元數(shù)字提升通過擴(kuò)展轉(zhuǎn)換將它轉(zhuǎn)換為int類型 二元數(shù)字提升二元數(shù)字提升 二元數(shù)字提升作用在特定操作符的操作數(shù)上*, /, %, +, -, , , =, =, !=, &, , | and?: 在必要時(shí)使用擴(kuò)展轉(zhuǎn)換來轉(zhuǎn)換操作數(shù)類型1.4 基本數(shù)據(jù)類型與表達(dá)式標(biāo)準(zhǔn)輸入輸出簡(jiǎn)介70 標(biāo)準(zhǔn)輸入流
35、 標(biāo)準(zhǔn)輸出流 例如 System.out.println(Hello world!);1.4 基本數(shù)據(jù)類型與表達(dá)式1.5 數(shù)組的概念數(shù)組由同一類型的一連串對(duì)象或者基本數(shù)據(jù)組成,并封裝在同一個(gè)標(biāo)識(shí)符(數(shù)組名稱)下。數(shù)組是對(duì)象 動(dòng)態(tài)初始化 可以賦值給Object類型的變量 在數(shù)組中可以調(diào)用類Object 的所有方法711.5 數(shù)組的概念(續(xù))數(shù)組元素 數(shù)組中的變量被稱作數(shù)組的元素 元素沒有名字,通過數(shù)組名字和非負(fù)整數(shù)下標(biāo)值引用數(shù)組元素。 每個(gè)數(shù)組都有一個(gè)由 public final 修飾的成員變量:length ,即數(shù)組含有元素的個(gè)數(shù)(length可以是正數(shù)或零)721.6 數(shù)組的創(chuàng)建和引用數(shù)組的
36、聲明數(shù)組的創(chuàng)建數(shù)組元素的初始化數(shù)組的引用多維數(shù)組731.6.1 數(shù)組的聲明741.6 數(shù)組的創(chuàng)建和引用聲明(Declaration) 聲明數(shù)組時(shí)無(wú)需指明數(shù)組元素的個(gè)數(shù),也不為數(shù)組元素分配內(nèi)存空間 不能直接使用,必須經(jīng)過初始化分配內(nèi)存后才能使用1.6.1 數(shù)組的聲明75Type arrayName; 例如:int intArray; String stringArray; Type arrayName ; 例如:int intArray; String stringArray;1.6 數(shù)組的創(chuàng)建和引用1.6.2 數(shù)組的創(chuàng)建76用關(guān)鍵字new構(gòu)成數(shù)組的創(chuàng)建表達(dá)式,可以指定數(shù)組的類型和數(shù)組元素的個(gè)數(shù)
37、。元素個(gè)數(shù)可以是常量也可以是變量 基本類型數(shù)組的每個(gè)元素都是一個(gè)基本類型的變量;引用類型數(shù)組的每個(gè)元素都是對(duì)象的的引用1.6 數(shù)組的創(chuàng)建和引用1.6.2 數(shù)組的創(chuàng)建(續(xù))77arryName=new Typecomponets 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.6 數(shù)組的創(chuàng)建和引用1.6.3 數(shù)組元素的初始化78 聲明數(shù)組名時(shí),給出了
38、數(shù)組的初始值,程序便會(huì)利用數(shù)組初始值創(chuàng)建數(shù)組并對(duì)它的各個(gè)元素進(jìn)行初始化 int a=22, 33, 44, 55; 創(chuàng)建數(shù)組的時(shí),如果沒有指定初始值,數(shù)組便被賦予默認(rèn)值初始值。 基本類型數(shù)值數(shù)據(jù),默認(rèn)的初始值為0; boolean類型數(shù)據(jù),默認(rèn)值為false; 引用類型元素的默認(rèn)值為null。 程序也可以在數(shù)組被構(gòu)造之后改變數(shù)組元素值1.6 數(shù)組的創(chuàng)建和引用1.6.4 數(shù)組的引用79通過下面的表達(dá)式引用數(shù)組的一個(gè)元素:arrayNameindex數(shù)組下標(biāo)必須是 int , short, byte, 或者 char.下標(biāo)從零開始計(jì)數(shù). 元素的個(gè)數(shù)即為數(shù)組的長(zhǎng)度,可以通過 引用元素下標(biāo)最大值為 l
39、ength 1,如果超過最大值,將會(huì)產(chǎn)生數(shù)組越界異常(ArrayIndexOutOfBoundsException) 1.6 數(shù)組的創(chuàng)建和引用1.6.4 數(shù)組的引用(續(xù))80int data = new int10;data -1 非法的data 10 非法的 data 1.5 非法的 data 0 合法的 data 9 合法的 1.6 數(shù)組的創(chuàng)建和引用1.6.4 數(shù)組的引用(續(xù))81int values = new int7;int index;index = 0;values index = 71; index = 5;values index = 23; index = 3;values
40、 2+2 = values index-3 ; 1.6 數(shù)組的創(chuàng)建和引用1.6.4 數(shù)組的引用(續(xù))82public class MyArray public static void main(String 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ù)組越界異常 1.
41、6 數(shù)組的創(chuàng)建和引用1.6.4 數(shù)組的引用(續(xù))83class Gauss public static void main(String args) int ia = new int101; for (int 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 1.6 數(shù)組的創(chuàng)建和引用1.6.4 數(shù)組的引用(續(xù))84數(shù)組名是一個(gè)引用:例子public class Arrays public stat
42、ic void main(String args) int a1 = 1, 2, 3, 4, 5 ; int a2; a2 = a1; for(int i = 0; i a2.length; i+) a2i+; for(int i = 0; i a1.length; i+) System.out.println( a1 + i + = + a1i); 1.6 數(shù)組的創(chuàng)建和引用1.6.4 數(shù)組的引用(續(xù))85運(yùn)行結(jié)果:a10 = 2a11 = 3a12 = 4a13 = 5a14 = 61.6 數(shù)組的創(chuàng)建和引用1.6.4 數(shù)組的引用(續(xù))86字符串引用構(gòu)成的數(shù)組:String strArray;
43、strArray = new String8 ;strArray0= Hello ;1.6 數(shù)組的創(chuàng)建和引用1.6.4 數(shù)組的引用(續(xù))87例子public class ArrayOfStringsDemo 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(); 運(yùn)行結(jié)果:string onestring twostring three1.6 數(shù)組的創(chuàng)建和引用1.6.4 數(shù)組的引用(續(xù))88數(shù)組的復(fù)制: public static void arraycopy(Object source , int srcIndex , Object dest , int destIndex , int length ) 1.6.4 數(shù)組的引用(續(xù))89例子public class ArrayCopyDemo public static void main(String args
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版三角高炮合同
- 專項(xiàng)公共區(qū)域裝飾裝修工程承包協(xié)議2024一
- 2025年國(guó)際合同第六號(hào)生皮國(guó)際貿(mào)易稅務(wù)籌劃合同3篇
- 二零二五年度餐飲企業(yè)員工培訓(xùn)與職業(yè)發(fā)展規(guī)劃合同3篇
- 2024起重機(jī)安裝與運(yùn)輸安全保障服務(wù)合同3篇
- 2025年度柴油發(fā)電機(jī)組租賃與維修保養(yǎng)合同4篇
- 2024石材荒料電子商務(wù)平臺(tái)合作協(xié)議6篇
- 個(gè)性化商標(biāo)創(chuàng)作協(xié)議:2024版委托書版A版
- 2024版生鮮供應(yīng)合同范本
- 2024金融居間服務(wù)的終止與解除合同
- 上海紐約大學(xué)自主招生面試試題綜合素質(zhì)答案技巧
- 辦公家具項(xiàng)目實(shí)施方案、供貨方案
- 2022年物流服務(wù)師職業(yè)技能競(jìng)賽理論題庫(kù)(含答案)
- ?;钒踩僮饕?guī)程
- 連鎖遺傳和遺傳作圖
- DB63∕T 1885-2020 青海省城鎮(zhèn)老舊小區(qū)綜合改造技術(shù)規(guī)程
- 高邊坡施工危險(xiǎn)源辨識(shí)及分析
- 中海地產(chǎn)設(shè)計(jì)管理程序
- 簡(jiǎn)譜視唱15942
- 《城鎮(zhèn)燃?xì)庠O(shè)施運(yùn)行、維護(hù)和搶修安全技術(shù)規(guī)程》(CJJ51-2006)
- 項(xiàng)目付款審核流程(visio流程圖)
評(píng)論
0/150
提交評(píng)論