JAVA基礎(chǔ)知識(shí)學(xué)習(xí)零基礎(chǔ)_第1頁(yè)
JAVA基礎(chǔ)知識(shí)學(xué)習(xí)零基礎(chǔ)_第2頁(yè)
JAVA基礎(chǔ)知識(shí)學(xué)習(xí)零基礎(chǔ)_第3頁(yè)
JAVA基礎(chǔ)知識(shí)學(xué)習(xí)零基礎(chǔ)_第4頁(yè)
JAVA基礎(chǔ)知識(shí)學(xué)習(xí)零基礎(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩180頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、JAVA基礎(chǔ),教師自我介紹,教師姓名: (請(qǐng)進(jìn)行自我介紹 ),字體黑體、字號(hào)24、色白,字體華文中宋、字號(hào)根據(jù)內(nèi)容20-32均可、色黑,課程概述,Java開(kāi)發(fā)環(huán)境介紹及編程入門(mén) 標(biāo)示符、關(guān)鍵字及數(shù)據(jù)類(lèi)型 表達(dá)式及流程控制 數(shù)組 常用數(shù)據(jù)結(jié)構(gòu)及算法 面向?qū)ο缶幊蘋(píng)OP 封裝、繼承、多態(tài) 異常處理Exception,課程目標(biāo),掌握程序設(shè)計(jì)語(yǔ)言開(kāi)發(fā)的一般步驟 編譯并運(yùn)行Java應(yīng)用程序 理解并使用Java的在線幫助文檔 理解Java語(yǔ)言的語(yǔ)法元素和結(jié)構(gòu)特點(diǎn) 理解面向?qū)ο蟪绦蛟O(shè)計(jì)的一般特性,并且能使用這些特性 理解并使用Java異常處理機(jī)制,程序語(yǔ)言發(fā)展歷程,機(jī)器語(yǔ)言 二進(jìn)制機(jī)器代碼,不便理解,不好記

2、憶,與硬件平臺(tái)相關(guān),不具有可移植性。 匯編語(yǔ)言 用助記符號(hào)來(lái)描述,與機(jī)器代碼一一對(duì)應(yīng),能夠理解,但同樣不可移植。 高級(jí)語(yǔ)言 按自然語(yǔ)言的語(yǔ)法風(fēng)格書(shū)寫(xiě)程序, 方便理解,在原代碼的層次上可以實(shí)現(xiàn) 跨平臺(tái)移植。,10001001 11100101,mov dptr,#2000,if(ab) max=a; else max=b;,高級(jí)語(yǔ)言開(kāi)發(fā)過(guò)程,編輯原代碼 編譯 執(zhí)行,JAVA起源,James Gosling 現(xiàn)任SUN公司副總裁及Sun研究 院院士 ,他親手設(shè)計(jì)了Java語(yǔ)言, 并開(kāi)發(fā)了Java編譯器和JAVA虛擬機(jī), 使Java成為了世界上最流行的開(kāi)發(fā)語(yǔ)言。,JAVA創(chuàng)始人,JAVA歷史,199

3、5年,Java首次公開(kāi)亮相。 1996年1月23日Sun Microsystems發(fā)布了JDK1.0。 這個(gè)版本包括了兩部分:運(yùn)行環(huán)境(即JRE)和開(kāi)發(fā)環(huán)境(即JDK)。 1997年2月18日發(fā)布了JDK1.1。 1998年,JDK1.2版本發(fā)布。將Java分成了J2EE、J2SE和J2ME。表明了Java開(kāi)始向企業(yè),桌面應(yīng)用,和移動(dòng)設(shè)備應(yīng)用3大領(lǐng)域挺進(jìn)。 2000年,JDK1.3 發(fā)布。 2002年,JDK1.4 發(fā)布。 2004年,JDK1.5 發(fā)布。同時(shí)JDK1.5改名為J2SE5.0。 2005年6月,Java SE 6。此時(shí),Java的各種版本已經(jīng)更名以取消其中的數(shù)字“2” 2006

4、年11月13日,SUN公司宣布Java全線采納GNU General Public License Version 2,從而公開(kāi)了Java的源代碼。,JAVA應(yīng)用概述,JAVAME 微型版 JAVASE 標(biāo)準(zhǔn)版 JAVAEE 企業(yè)版,名詞解釋,JDK Java Development Kit (java 開(kāi)發(fā)工具包) Software Development Kit(1.2版本-1.4版本) JVM Java Virtual Machine (java 虛擬機(jī)) JRE Java Runtime Environment (java 運(yùn)行環(huán)境),JDK 包含Java運(yùn)行的基本類(lèi)庫(kù)和開(kāi)發(fā)命令,安裝

5、JDK可以進(jìn)行完整的Java開(kāi)發(fā)。 JRE 包含Java運(yùn)行的基本類(lèi)庫(kù)和一些運(yùn)行命令,安裝JRE可以運(yùn)行編譯好的Java程序。 JVM Java語(yǔ)言?xún)?nèi)部運(yùn)行的核心。,JAVA開(kāi)發(fā)基本術(shù)語(yǔ),Java Programmer Java程序員 Java Developer Java開(kāi)發(fā)人員 Java Web Developer web開(kāi)發(fā)人員 J2EE Architect J2EE 架構(gòu)師,Java職業(yè)的分工,Java 語(yǔ)言特點(diǎn),1、簡(jiǎn)單性: Java語(yǔ)言類(lèi)似于C/C+,可以說(shuō)Java語(yǔ)言是C+語(yǔ)言的一個(gè)純凈的版本,在 java語(yǔ)言中沒(méi)有頭文件,指針,運(yùn)算符重載等 2、面向?qū)ο? C面向過(guò)程 C+面向

6、過(guò)程+面向?qū)ο?Java 純面向?qū)ο蟮恼Z(yǔ)言, 3、分布式: Java有一個(gè)擴(kuò)展的例程庫(kù),用于處理 Http/Ftp之類(lèi)的 Tcp|Ip協(xié)議。 Java語(yǔ)言能通過(guò) url打開(kāi)的訪問(wèn)網(wǎng)絡(luò)上的對(duì)象,其便利的程序如同本地訪問(wèn).,Java 語(yǔ)言特點(diǎn),4、健壯性: java投入了大量的精力進(jìn)行早期的問(wèn)題檢測(cè),后期的動(dòng)態(tài)檢測(cè),并消除了有出錯(cuò)傾向的狀態(tài),java和 c+最大的不同在于 java采用的指針模型可以消除重寫(xiě)內(nèi)存和損壞數(shù)據(jù)的可能性. 5、安全性: java適用于網(wǎng)絡(luò)/分布式環(huán)境,為了達(dá)到這個(gè)目標(biāo),在安全方面投了大量的精力,使用java可以構(gòu)建防病毒。禁止運(yùn)行時(shí)堆棧溢出,禁止自己內(nèi)存空間,未授權(quán)的讀寫(xiě)

7、文件。 6、可移植性: 跨平臺(tái): JVM 作用用來(lái)解釋執(zhí)行字節(jié)碼文件根據(jù)不同的平臺(tái)進(jìn)行不同的解釋執(zhí)行,從而可以達(dá)到跨平臺(tái)作用,C+生成直接可以運(yùn)行的機(jī)器碼文件。java素有 “一次編譯,到處運(yùn)行”,參考書(shū)籍,Java 認(rèn)證介紹,SCJP Sun certified java5 programmer Scjp主要偏重于對(duì)java語(yǔ)言的語(yǔ)法與及JDK的內(nèi)容. SCJD Sun certified java5 Developer SCJD相對(duì)于SCJP進(jìn)一步測(cè)試用JAVA 開(kāi)發(fā)應(yīng)用程序的能力,開(kāi)發(fā)工具,開(kāi)發(fā)環(huán)境 JDK 編輯器只要是文本編輯器或unix環(huán)境下的vi Windows環(huán)境可以使用功能較在

8、的文本編輯器 集成開(kāi)發(fā)環(huán)境 Eclipse IDE NetBeans 等 Eclipse下載網(wǎng)站 http:/,Module 1 Java開(kāi)發(fā)環(huán)境介紹及編程入門(mén),本章目標(biāo),了解高級(jí)語(yǔ)言開(kāi)發(fā)的一般步驟 正確安裝及配置Java開(kāi)發(fā)和運(yùn)行環(huán)境 理解JVM的運(yùn)行機(jī)制 了解java語(yǔ)言的垃圾回收機(jī)制 編寫(xiě)并運(yùn)行第一個(gè)java代碼,JDK 下載頁(yè)面,Win 32平臺(tái)JDK下載,Linux平臺(tái)JDK下載,配置Java環(huán)境變量,3. 設(shè)置如下三個(gè)環(huán)境變量: JAVA_HOME, CLASSPATH, PATH Windows 2000/NT/XP系統(tǒng): 開(kāi)始設(shè)置控制面板系統(tǒng)高級(jí)環(huán)境變量,Windows環(huán)境下的

9、安裝配置,安裝JDK軟件包 設(shè)置環(huán)境變量 點(diǎn)擊我的電腦右鍵-屬性-高級(jí)-環(huán)境變量-新建 JAVA_HOME=JDK安裝目錄編輯: path=在原來(lái)的path路徑前增加 JDK安裝目錄/bin 注意windows平臺(tái)中是以分號(hào)分隔 測(cè)試 運(yùn)行cmd java javac java -version 如果以上三個(gè)命令都能運(yùn)行的話(huà),說(shuō)明安裝成功,JDK安裝目錄介紹,Bin 編譯器和工具 Demo 演示 Docs HTML格式的類(lèi)庫(kù)文檔 Include 用于編譯本地方法的文件 Jre java運(yùn)行環(huán)境文件 Lib 類(lèi)庫(kù)文件 Src 類(lèi)庫(kù)源文件,Java虛擬機(jī)(JVM),提供字節(jié)碼(bytecode)的

10、運(yùn)行環(huán)境 屏蔽底層平臺(tái)的差異,JVM的作用,Java垃圾收集的概念,Java語(yǔ)言使用new運(yùn)算符來(lái)分配內(nèi)存空間,沒(méi)有動(dòng)態(tài)內(nèi)存分配的概念。 Java系統(tǒng)線程自動(dòng)處理無(wú)用內(nèi)存空間的垃圾收集 Java程序員只能建議,但不能強(qiáng)制JVM去執(zhí)行垃圾收集程序,使用下面的代碼: java.lang.System.gc() java.lang.Runtime.gc(),Java程序的運(yùn)行過(guò)程,HelloWorldApp.java,HelloWorldApp.class,javac,java,跨平臺(tái),不跨平臺(tái),第一個(gè)Java程序HelloWorld.java,public class HelloWorld pub

11、lic static void main(String args) System.out.println(“Hello World!”); ,要點(diǎn)(1),一個(gè)源文件中至多只能有一個(gè)public的class 源文件名必須和它中定義的public的類(lèi)名相同 一個(gè)文件中可以同時(shí)寫(xiě)多個(gè)類(lèi),但是只能有一個(gè)公開(kāi)的類(lèi) Main方法 java程序的入口,要點(diǎn)(2),編寫(xiě)源代碼, 生成 .java文件 編譯源代碼, 生成.class 文件 javac HelloWorld.java 運(yùn)行該程序 java HelloWorld,Jvm加載字節(jié)碼文件,加載代碼 (類(lèi)加載器) 將class字節(jié)碼文件讀入內(nèi)存,并放在數(shù)

12、據(jù)的方法區(qū),在堆區(qū)中創(chuàng)建java.lang.Class對(duì)象,用于封裝類(lèi)在方法區(qū)內(nèi)的數(shù)據(jù)結(jié)構(gòu) 連接 把已經(jīng)讀入內(nèi)存的類(lèi)的二進(jìn)制數(shù)據(jù)合并到j(luò)vm運(yùn)行環(huán)境中去 驗(yàn)證代碼 (字節(jié)碼校驗(yàn)器) 保證加載類(lèi)有正確的內(nèi)部結(jié)構(gòu),并與其他類(lèi)協(xié)調(diào)一致辭主要有以下幾個(gè)方面:文件結(jié)構(gòu)檢查,語(yǔ)義檢查,字節(jié)碼驗(yàn)證,二進(jìn)制兼容的驗(yàn)證 準(zhǔn)備 Jvm為類(lèi)的靜態(tài)變量分配內(nèi)存,并調(diào)置默認(rèn)的初始值 解析 Jvm把類(lèi)的二進(jìn)制數(shù)據(jù)中的符號(hào)引用替換為直接引用 執(zhí)行代碼 (解釋器) Jvm執(zhí)行類(lèi)初始化語(yǔ)句,為類(lèi)靜態(tài)變量賦以初值,練習(xí) :Information.java,1.開(kāi)發(fā)一個(gè)Java程序打印出下列信息: 姓名 性別 年齡 畢業(yè)學(xué)校 戶(hù)籍

13、,Package包結(jié)構(gòu),Package a.b.c; public class HelloWorld public static void main(String args) System.out.println(“Hello World!”); 將生成的字節(jié)碼文件以包結(jié)構(gòu)形式來(lái)存放,用于方便管理類(lèi)文件 Package 必須要寫(xiě)在源文件第一行,注釋除外,Package包結(jié)構(gòu),帶有包結(jié)構(gòu)的程序在編譯是需要加參數(shù): Javac -d . HelloWorld.java 運(yùn)行帶包結(jié)構(gòu)的程序時(shí),要指定類(lèi)全名 Java a.b.c.HelloWorld,Import 導(dǎo)入機(jī)制,Package a.b.c

14、; Import java.util.*; public class HelloWorld public static void main(String args) System.out.println(“Hello World!”); System.out.println( new Date() ); ,生成java doc文檔,/* 此種注釋存在于源代碼中時(shí),編譯時(shí)使用javadoc命令可以生成doc文檔 */ 用法: Javadoc -d . HelloWorld.java,生成java doc文檔,author version 標(biāo)注在javadoc中的使用 使用以上標(biāo)記時(shí)要增加 aut

15、hor - version參數(shù)進(jìn)行注釋文檔的抽取,默認(rèn)情況下會(huì)忽略,壓縮成jar文件,在java中可以將生成的字節(jié)碼文件按照生成目錄的結(jié)構(gòu)壓縮成jar文件方便使用 壓縮命令: Jar -cvf first.jar a 解壓命令: Jar -xvf first.jar 運(yùn)行jar 文件中的程序: java -classpath first.jar a.b.c.HelloWorld,Jar命令參數(shù),x 解壓 u 更新 d 列表 v 顯示壓縮過(guò)程 c 創(chuàng)建壓縮文件 f 壓縮文件名 m 按照清單指定的系統(tǒng)進(jìn)行壓縮,命令行參數(shù) Echo.java,public class Echo public sta

16、tic void main(String args) System.out.println(args0); 運(yùn)行命令: Java Echo xubin,要點(diǎn):,可執(zhí)行程序必需要main方法 只能public和static調(diào)換位置 args可以是任意的名字 args0 代表第一個(gè)命令行參數(shù) 注意:運(yùn)行時(shí)一定要有命令行參數(shù)輸入,否則會(huì)有數(shù)組下標(biāo)越界異常出現(xiàn),練 習(xí),編程打印出所有命令行的參數(shù)。 從命令參數(shù)中接收姓名,在程序打印 Hello xxxxx,Java API 文檔,Download it from http:/,本章總結(jié),在這一章里,我們討論了以下問(wèn)題: 怎樣建立Java開(kāi)發(fā)環(huán)境 Jav

17、a語(yǔ)言的關(guān)鍵特性 Java虛擬機(jī)(JVM)的功能 Java的垃圾收集機(jī)制 常用Java開(kāi)發(fā)命令和開(kāi)發(fā)工具包 編寫(xiě)并運(yùn)行一個(gè)Java應(yīng)用程序,Module 2 標(biāo)示符、關(guān)鍵字和數(shù)據(jù)類(lèi)型,本章目標(biāo),程序注釋 標(biāo)示符 關(guān)鍵字 基本數(shù)據(jù)類(lèi)型,注 釋,三種類(lèi)型的注釋 /單行注釋 /* 這是一段多行注釋?zhuān)缭搅硕鄠€(gè)行*/ /* 這是一個(gè)文檔注釋?zhuān)梢允褂肑DK的javadoc工具從原文件中抽取這種注釋形成程序的幫助文檔。 */ 使用javadoc命令建立HTML格式的程序文檔 javadoc options packagenames sourcefiles files,Java的標(biāo)示符,1,什么是標(biāo)示符

18、? 在java語(yǔ)言中用來(lái)給一個(gè)類(lèi)、變量或方法命名的符號(hào) 2,標(biāo)示符的命名規(guī)則: 以字母, “_” 或 “$”符號(hào)開(kāi)頭 可以包含字母、 “_” 、“$”和數(shù)字符號(hào) 大小寫(xiě)敏感 不能與保留關(guān)鍵字沖突 沒(méi)有長(zhǎng)度限制 例如:identifier _sys_ var1 $char userName user_ name,Java的標(biāo)示符(續(xù)),3,命名約定: 類(lèi)名, 接口名 :每個(gè)單詞的首字母應(yīng)該大寫(xiě) class MyFirstClass interface Weapon 字段、方法以及對(duì)象:第一個(gè)單詞首字母應(yīng)小寫(xiě),其他單詞首字母大寫(xiě) boolean isWoman void setName(Strin

19、g name) 常量:全部用大寫(xiě)字母表示。 public final int GREEN public final int HEAD_ COUNT Java包(Package):它們?nèi)甲帜感?xiě)。 package java.awt.event,Java中的關(guān)鍵字,關(guān)鍵字列表: abstract boolean break byte case catch char class continue default do double else extends enum false final finally float for if implements import instanceof int

20、interface long native new null package private protected public return short static super switch synchronized this throw throws transient true try void volatile while Java 中 true false 不是關(guān)鍵字,而是boolean類(lèi)型的字面量 保留字:const,goto 所有的關(guān)鍵字都是小寫(xiě),friendly,sizeof不是java的關(guān)鍵字,數(shù)據(jù)類(lèi)型,基本數(shù)據(jù)類(lèi)型(primitive type) byte short in

21、t long float double char boolean 引用數(shù)據(jù)類(lèi)型(reference type),Java的基本數(shù)據(jù)類(lèi)型,boolean 布爾值( true 或 false) byte 8-bit 整形值 short 16-bit 整形值 int 32-bit 整形值 long 64-bit 整形值 char 16-bit unicode編碼的字符 double 64-bit 浮點(diǎn)數(shù)值 float 32-bit 浮點(diǎn)數(shù)值,布爾類(lèi)型-boolean,一個(gè)boolean類(lèi)型的變量用來(lái)表示一個(gè)或真或假的關(guān)系 一個(gè) boolean 類(lèi)型變量的值必須是true 或 false二者 之一 b

22、oolean isCorrect = true;,文本數(shù)據(jù)類(lèi)型char和 String,char 其實(shí)就是一個(gè)無(wú)符號(hào)的16位整形,其范圍為065535,用來(lái)存儲(chǔ)該字符的Unicode編碼值,因?yàn)閁nicode 編碼中包含漢字的編碼,所以一個(gè)char類(lèi)型的變量也可以存儲(chǔ)一個(gè)漢字字符。 在代碼中直接給出的一個(gè)字符值必須用單引號(hào)括起來(lái)。 char zhChar = 中; char enChar = a; char ucChar = u0060; 對(duì)某些不方便直接書(shū)寫(xiě)或直接書(shū)寫(xiě)有歧義的字符,java語(yǔ)言規(guī)定用 轉(zhuǎn)義字符給出。 可以把char類(lèi)型數(shù)據(jù)當(dāng)作整數(shù)數(shù)據(jù)來(lái)操作。例如: int three=3;

23、char one=1; int four=three+one;,轉(zhuǎn)義字符,轉(zhuǎn)義字符描述 ddd1到3位8進(jìn)制數(shù)所表示的字符(ddd) uxxxx1到4位16進(jìn)制數(shù)所表示的字符(xxxx) 單引號(hào)字符 雙引號(hào)字符 反斜杠字符 r回車(chē) n換行 f走紙換頁(yè) t橫向跳格 b退格,Java語(yǔ)言中轉(zhuǎn)義字符都以給出常用轉(zhuǎn)義字符列表:,字符串類(lèi)型-String,String 是JDK中定義的一個(gè)類(lèi),不是基本數(shù)據(jù)類(lèi)型 一個(gè)String對(duì)象可以用來(lái)存儲(chǔ)多個(gè)字符,在程序中直接給出一個(gè) String值要用雙引號(hào)括起來(lái) String myName = “Blues”; 可以使用 + 運(yùn)算符把多個(gè)String數(shù)據(jù)連接起來(lái)

24、,并且還可連接其他類(lèi)型的數(shù)據(jù) 例如: int count=7; System.out.println(Counted + count + chars. );,整形數(shù)據(jù)(byte, short, int and long),三種形式給一個(gè)整形變量直接賦值: 十進(jìn)制、八進(jìn)制和十六進(jìn)制 直接給出的值默認(rèn)是int類(lèi)型。 長(zhǎng)整形值應(yīng)該在數(shù)字后面跟上 l 或 L標(biāo)示,整形數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)方式,計(jì)算機(jī)能存儲(chǔ)的值都是二進(jìn)制值,整形數(shù)據(jù)在計(jì)算機(jī)中的存儲(chǔ)方式分兩種情況討論:,short a=57;,0000 0000,0011 1001,1111 1111,1100 0111,1,正整數(shù),存儲(chǔ)該數(shù)字的二進(jìn)制原

25、碼。,short a=-57;,2,負(fù)整數(shù),存儲(chǔ)該數(shù)字的二進(jìn)制補(bǔ)碼。,int a=57;,0000 0000,0000 0000,0000 0000,0011 1001,int a=-57;,1111 1111,1111 1111,1111 1111,1100 0111,高字節(jié)位,低字節(jié)位,浮點(diǎn)數(shù)據(jù)類(lèi)型 float 和 double,直接在程序中書(shū)寫(xiě)的浮點(diǎn)數(shù)默認(rèn)為 dobule類(lèi)型。 float 類(lèi)型的數(shù)據(jù)占32位長(zhǎng)度(4 Bytes) double類(lèi)型的數(shù)據(jù)占64位長(zhǎng)度(8 Bytes) 直接表示一個(gè)float 類(lèi)型的值必須在數(shù)字后跟 f 或F 直接表示一個(gè)double 類(lèi)型的值可以在數(shù)字后

26、跟d 或D 可以用科學(xué)計(jì)數(shù)法表示,如:123.456e3或123.456E3,public void testFloatType() float fa = 123.4f; float fb = 12.5E300F; float fc = (float)12.5E300; double da = 123D; double db = 123.456D; double dc = 123.45e301; ,基本數(shù)據(jù)類(lèi)型的取值范圍,變量的聲明和賦值,package sample; public class Assign public static void main(String args) int x

27、, y; / 聲明int類(lèi)型變量x和y float z = 3.414f; / 聲明float類(lèi)型變量并賦值 double w = 3.1415; /聲明double類(lèi)型變量并賦值 boolean truth = true; /聲明boolean類(lèi)型變量并賦值 char c; /聲明char類(lèi)型變量c String str; /聲明String類(lèi)型的引用 String str1 = “bye”; /聲明String類(lèi)型的引用并且實(shí)例化 c = A; / 給c變量賦值 str = “Hi out there!”; / 給str實(shí)例化 x = 6; y = 1000; ,引用數(shù)據(jù)類(lèi)型(refere

28、nce type),數(shù)組Array ,類(lèi) classe,接口interface屬于reference 類(lèi)型。 reference 類(lèi)型的變量是所引用的對(duì)象的內(nèi)存地址。 例子:,class MyDate private int day = 1; private int month = 1; private int year = 2000; public MyDate( int day, int month, int year) . public void print() . public class TestMyDate public static void main( String args)

29、 MyDate my_ birth = new MyDate( 22, 7, 1964); ,引用數(shù)據(jù)類(lèi)型(reference type),創(chuàng)建一個(gè)類(lèi)對(duì)象: MyDate my_ birth = new MyDate( 22, 7, 1964);,引用數(shù)據(jù)類(lèi)型(reference type),兩個(gè)引用變量的賦值將會(huì)產(chǎn)生如下結(jié)果: int x = 7; int y = x; MyDate s = new MyDate( 22, 7, 1964); MyDate t = s; t = new MyDate( 22, 12, 1964); 兩個(gè)變量指向同一個(gè)對(duì)象:,對(duì)象氣球,引用,對(duì)象,對(duì)象,引用,

30、對(duì)象,對(duì)象就像一個(gè)充滿(mǎn)氫氣的氣球,我們沒(méi)有辦法直接去得到它,要想對(duì)它的使用都必須通過(guò)一根連著它的繩子來(lái)訪問(wèn),這根繩子就是對(duì)象的引用。一根繩子同時(shí)只能連著一個(gè)氣球,就像一個(gè)引用同時(shí)只能指向一個(gè)對(duì)象;可以用多根繩子同時(shí)連接一個(gè)氣球,也就是可以有多個(gè)引用同時(shí)指向同一個(gè)對(duì)象;如果某個(gè)氣球沒(méi)有任何繩子連著它,那它就會(huì)飛走,同樣,某個(gè)對(duì)象如果沒(méi)有引用連接它,它就會(huì)成為垃圾,等著被java的垃圾收集器回收;如果某根繩子沒(méi)有連接任何氣球,那么它就是一個(gè)空引用,對(duì)它的訪問(wèn)沒(méi)有意義。同樣,某個(gè)引用如果沒(méi)有指向?qū)ο螅敲磳?duì)它的訪問(wèn)將會(huì)拋出NullPointerException,引用,null,本章總結(jié),在這一章中

31、,我們討論了以下問(wèn)題: 不同類(lèi)型的注釋 標(biāo)示符和關(guān)鍵字 基本數(shù)據(jù)類(lèi)型 引用類(lèi)型 對(duì)象的概念,練 習(xí),1,寫(xiě)一個(gè)程序,要求定義出boolean,int,char,double,float,String 類(lèi)型的變量并賦初值,然后將這些值輸出出來(lái)。 2,程序中定義有如下語(yǔ)句,畫(huà)出這些整形值在內(nèi)存空間中的存儲(chǔ) 狀態(tài)。 int a=74; int b=-132; int c=0 x2B8F; 3,下列哪些賦值語(yǔ)句是錯(cuò)誤的: (1) byte b= 0 x175; (2) int i=0 x27f; (3) char c=123; (4) int a=真; (5) float f=12.345E2; (6

32、) boolean f=0;,練 習(xí),4,判斷下列語(yǔ)句中的a和b的值是否相等: (1) int a=0; int b=0; (2) int a=0; char b=u0000; (3) int a=123; char b=u007B; (4) int a=0 x123; char b=123; (5) int a=3+5; char b=8; (6) int a=3+5; char b=8; (7) char a=u0000; char b=0;,Module 3 表達(dá)式及流程控制語(yǔ)句,本章目標(biāo),Java的運(yùn)算符 基本數(shù)據(jù)類(lèi)型的賦值 布爾表達(dá)式 選擇結(jié)構(gòu)(if else,switch) 循環(huán)結(jié)

33、構(gòu)(while,dowhile,for) 使用continue和break進(jìn)行循環(huán)控制,常用運(yùn)算符列表,算術(shù)運(yùn)算符,說(shuō)明: Java對(duì)“+”運(yùn)算符進(jìn)行了擴(kuò)展,使它能夠進(jìn)行字符串的連接, 如“abc”+“de”,得到串“abcde” +i , -i 在使用i前,先使i的值改變 i+ , i- 在使用i后,再改變i的值,關(guān)系運(yùn)算符,說(shuō)明: Java中,任何數(shù)據(jù)類(lèi)型的數(shù)據(jù)(包括基本類(lèi)型和引用類(lèi)型)都可以通過(guò)=或!=來(lái)比較是否相等(這與C、C+不同)。 關(guān)系運(yùn)算的結(jié)果返回true或false,而不是C、C+中的1或0。,布爾邏輯運(yùn)算符,邏輯運(yùn)算符 AND( i public class Casting

34、Test public void implictCasting() byte a = 0 x60; int ia = a; char b = a; int c = b; long d = c; long e = 1000000000L; float f = e; double g = f; String s = hello; Object o = s; public void explicitCasting() long l = 1000000L; int i = l; /(int)l; double d = 12345.678; float f = d; /(float)d; Object

35、o = new String(Hello); String str = o; /(String)o; ,流程控制語(yǔ)句,1分支語(yǔ)句:if-else, switch-case 2循環(huán)語(yǔ)句:for, while, do-while 3 循環(huán)跳轉(zhuǎn)語(yǔ)句: break, continue, label:,選擇結(jié)構(gòu)if else,if( boolean expression) code block 1 else code block 2 ,if( boolean expression) code block ,if( boolean expression 1) code block 1 else if (b

36、oolean expression 2) code block 2 else code block 3 ,if else 的語(yǔ)法結(jié)構(gòu),1,基本結(jié)構(gòu),2,省略else分支,3,多層嵌套,選擇結(jié)構(gòu)switch case,switch case 實(shí)現(xiàn)多分支選擇結(jié)構(gòu)的語(yǔ)句: switch(expression) case 整數(shù)值1 : 語(yǔ)句; break;case 整數(shù)值2 : 語(yǔ)句; break;case 整數(shù)值3 : 語(yǔ)句; break;case 整數(shù)值4 : 語(yǔ)句; break;case 整數(shù)值5 : 語(yǔ)句; break;/.default:語(yǔ)句;,switch case 說(shuō)明,說(shuō)明: 1.表達(dá)

37、式expression可以是以下四種基本數(shù)據(jù)類(lèi)型和枚舉類(lèi)型(byte,short,int,char) 2.case子句中的值必須是常量,而且所有case子句中的值應(yīng)是不同的。 3.case通常與break語(yǔ)句聯(lián)用,以保證多路分支的正確實(shí)現(xiàn),多個(gè)case可以公用一組執(zhí)行語(yǔ)句。,switch case 應(yīng)用,例題:根據(jù)考試成績(jī)的等級(jí)打印出百分制分?jǐn)?shù)段。 public class GradeLevel public static void main( String args ) System.out.println(n* first situation *); char grade=C; /norm

38、al use switch( grade ) case A : System.out.println(grade+ is 85100);break; case B : System.out.println(grade+ is 7084);break; case C : System.out.println(grade+ is 6069);break; case D : System.out.println(grade+ is 60);break; default : System.out.println(input error); ,for循環(huán),格式 for(初始表達(dá)式; 布爾表達(dá)式; 步進(jìn))

39、 循環(huán)體語(yǔ)句塊 說(shuō)明: 無(wú)論初始表達(dá)式,布爾表達(dá)式,還是步進(jìn),都可以置空。 初始表達(dá)式在整個(gè)循環(huán)過(guò)程中只執(zhí)行一次。for(int i = 0,j = 1; i 10 ,while 循環(huán),格式: while(布爾表達(dá)式) 循環(huán)體語(yǔ)句塊 例子:,public class WhileTest public static void main(String args) double r = 0; while(r 0.99d) r = Math.random(); System.out.println(r); ,do while 循環(huán),格式: do 循環(huán)語(yǔ)句 while(布爾表達(dá)式); 例子:,break

40、,不帶標(biāo)號(hào)的break語(yǔ)句,跳出它所在的循環(huán)語(yǔ)句或switch 語(yǔ)句,并從緊跟該循環(huán)語(yǔ)句或switch 語(yǔ)句后的第一條語(yǔ)句處執(zhí)行,int n=13; boolean flag=true; for(int i=2;i=n/2;i+) if(n%i=0) flag=false; break; System.out.println(n+(flag?” is”:”is not”)+ ” a prime number”);,帶標(biāo)號(hào)的break語(yǔ)句: 對(duì)Java來(lái)說(shuō),唯一用到標(biāo)簽的地方是在循環(huán)語(yǔ)句之前 如:label1: 循環(huán)語(yǔ)句 跳出標(biāo)號(hào)所指定的塊,并從緊跟該塊后的第一條語(yǔ)句處執(zhí)行,帶標(biāo)號(hào)的 break

41、,continue,不帶標(biāo)號(hào)的continue語(yǔ)句,用來(lái)結(jié)束本次循環(huán),跳過(guò)循環(huán)體中下面尚未執(zhí)行的語(yǔ)句,接著進(jìn)行終止條件的判斷,以決定是否繼續(xù)循環(huán) 帶標(biāo)號(hào)的continue語(yǔ)句跳轉(zhuǎn)到標(biāo)號(hào)指明的外層循環(huán)中。,本章總結(jié),在這一章里,我們討論了以下問(wèn)題: 實(shí)例變量和局部變量 實(shí)例變量的初始化 Java語(yǔ)言的運(yùn)算符 基本數(shù)據(jù)類(lèi)型和引用類(lèi)型 使用 if, switch, for, while, do, break and continue 來(lái)控制程序的流程,練 習(xí),1.編寫(xiě)程序,判斷給定的某個(gè)年份是否是閏年。 閏年的判斷規(guī)則如下: (1)若某個(gè)年份能被4整除但不能被100整除,則是閏年。 (2)若某個(gè)年份

42、能被400整除,則也是閏年。 2.給定一個(gè)百分制的分?jǐn)?shù),輸出相應(yīng)的等級(jí)。 90分以上 A級(jí) 8089 B級(jí) 7079 C級(jí) 6069 D級(jí) 60分以下 E級(jí) 3.編寫(xiě)程序求 1+3+5+7+99 的和值。,練 習(xí),練習(xí)一: 利用for循環(huán)打印 9*9 表? 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35

43、6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81,練習(xí):,練習(xí)二: 求500以?xún)?nèi)的完備數(shù)? (提示:完備數(shù)就是所有約數(shù)和等于本身的數(shù) 6 = 1 + 2 + 3) 練習(xí)三: 從命令行接受一個(gè)參數(shù)年份,計(jì)算此年份是否為閏年? 練習(xí)四: 輸出所有的水仙花數(shù),把謂水仙花數(shù)是指一個(gè)數(shù)3位數(shù),其各各位數(shù)字立方和等于基本身, 例如: 153 = 1*1*1 + 3*3*3 + 5*5*5,練習(xí),練

44、習(xí)六:求 a+aa+aaa+.+aaaaaaaaa=? 其中a為1至9之中的一個(gè)數(shù),項(xiàng)數(shù)也可以指定? 練習(xí)七: 求 2/1+3/2+5/3+8/5+13/8.前20項(xiàng)之和?,練習(xí),練習(xí)八: 利用程序輸出如下圖形: * * * * * * *,Module 4: 數(shù)組,本章目標(biāo),聲明并建立一個(gè)基本類(lèi)型的數(shù)組和引用類(lèi)型的數(shù)組 為什么數(shù)組在使用前必須初始化 定義并初始化一個(gè)數(shù)組 正確使用數(shù)組中的元素 創(chuàng)建一個(gè)多維數(shù)組(存放數(shù)組的數(shù)組),聲明數(shù)組,相同的數(shù)據(jù)類(lèi)型元素類(lèi)型按一定的順序排列就構(gòu)成了數(shù)組 數(shù)組元素可以為: 基本數(shù)據(jù)類(lèi)型 某一類(lèi)的對(duì)象(引用類(lèi)型) 建立java數(shù)組需要以下三個(gè)步驟: 聲明數(shù)組

45、創(chuàng)建數(shù)組空間 初始化數(shù)組元素,創(chuàng)建數(shù)組,聲明數(shù)組的語(yǔ)法格式有兩種如下: 數(shù)組元素類(lèi)型 數(shù)組名 ; 數(shù)組元素類(lèi)型 數(shù)組名; 例如:char s; Point p; 或: char s; Point p;,數(shù)組實(shí)例化,說(shuō)明: 為數(shù)組開(kāi)辟內(nèi)存空間,在創(chuàng)建數(shù)組空間時(shí)必須為它指明數(shù)組的長(zhǎng)度。 一個(gè)數(shù)組是一個(gè)對(duì)象,所以用new來(lái)創(chuàng)建數(shù)組 語(yǔ)法格式為:數(shù)組名 = new 數(shù)組元素類(lèi)型數(shù)組元素的個(gè)數(shù); 例如: int MyIntArray; MyIntArray =new int10;,數(shù)組實(shí)例化,說(shuō)明: 也可以在創(chuàng)建數(shù)組空間的時(shí)候,同時(shí)將初值給出來(lái) 例如:int MyIntArray=1,2,3,4,5,6

46、,7,8,9;存儲(chǔ)空間的分配等價(jià)于使用new 基本數(shù)據(jù)類(lèi)型的數(shù)組元素系統(tǒng)會(huì)自動(dòng)初始化為默認(rèn)值(對(duì)于數(shù)值,默認(rèn)值就是零;對(duì)于char,它是空白字符;而對(duì)于boolean,它卻是false)。數(shù)組名是對(duì)數(shù)組對(duì)象的一個(gè)引用。,創(chuàng)建一個(gè)基本數(shù)據(jù)類(lèi)型的數(shù)組,創(chuàng)建一個(gè)基本數(shù)據(jù)類(lèi)型元素的數(shù)組: public char createArray() char s; s = new char 26; for(int i= 0;is.length; i+) si = (char) (A+ i); return s; ,創(chuàng)建一個(gè)對(duì)象數(shù)組,創(chuàng)建一個(gè)對(duì)象數(shù)組: public Point createArray() Poi

47、nt p; p = new Point10; for(int i= 0;ip.length;i+ ) pi = new Point(i,i+1); return p; ,多維數(shù)組,1. 定義方式:type 維數(shù)arrayName; 例如:int intArray;int a2; 2. 分配內(nèi)存空間:有兩種方法: 直接為每一維分配空間, 如int a = new int23; int twoDim = new int 4; /error 分別為每一維分配空間 如: int a = new int2 ; a0 = new int3; a1 = new int3; 可以為每行設(shè)置為空間大小不同的數(shù)組

48、。 如: a0 = new int3; a1 = new int5;,多維數(shù)組說(shuō)明,說(shuō)明:Java中多維數(shù)組被看作數(shù)組的數(shù)組。例如二維數(shù)組為一個(gè)特殊的一維數(shù)組,其每個(gè)元素又是一個(gè)一維數(shù)組。 3. 初始化 有兩種方式: 先定義數(shù)組,分配空間,然后直接對(duì)每個(gè)元素進(jìn)行賦值 在定義數(shù)組的同時(shí)進(jìn)行初始化。 如:int a = 2,3, 1,5, 3,4;,數(shù)組的拷貝,使用 System . arraycopy() 方法: / original array int elements = 1, 2, 3, 4, 5, 6 ; / new larger array int hold = 10, 9, 8, 7

49、, 6, 5, 4, 3, 2, 1 ; / copy all of the elements array to the hold / array, starting with the 0th index System. arraycopy( elements, 0, hold, 0, elements. length);,本章總結(jié),在這一章里,我們討論了以下問(wèn)題: 如何聲明并建立一個(gè)基本數(shù)據(jù)類(lèi)型的數(shù)組和引用類(lèi)型的數(shù)組 為什么數(shù)組在使用前必須實(shí)例化 怎樣定義并初始化數(shù)組 怎樣知道數(shù)組的元素個(gè)數(shù) 怎樣建立一個(gè)多維數(shù)組,練 習(xí),1.定義一個(gè)int型的一維數(shù)組,包含10個(gè)元素,分別賦一些隨機(jī)整數(shù),然

50、后求出所有元素 的最大值,最小值,平均值,和值,并輸出出來(lái)。 2.定義一個(gè)int型的一維數(shù)組,包含10個(gè)元素,分別賦值為110, 然后將數(shù)組中的元素 都向前移一個(gè)位置,即,a0=a1,a1=a2,最后一個(gè)元素的值是原來(lái)第一個(gè)元素 的值,然后輸出這個(gè)數(shù)組。 3. 定義一個(gè)int型的一維數(shù)組,包含40個(gè)元素,用來(lái)存儲(chǔ)每個(gè)學(xué)員的成績(jī),循環(huán)產(chǎn)生40個(gè) 0100之間的隨機(jī)整數(shù),將它們存儲(chǔ)到一維數(shù)組中,然后統(tǒng)計(jì)成績(jī)低于平均分的學(xué)員的 人數(shù),并輸出出來(lái)。 4. (選做)承上題,將這40個(gè)成績(jī)按照從高到低的順序輸出出來(lái)。 5,(選做)編寫(xiě)程序,將一個(gè)數(shù)組中的元素倒排過(guò)來(lái)。例如原數(shù)組為1,2,3,4,5; 則倒

51、排后數(shù)組中的值為5,4,3,2,1。,練 習(xí),6,要求定義一個(gè)int型數(shù)組a,包含100個(gè)元素,保存100個(gè)隨機(jī)的4位數(shù)。再定義一個(gè) int型數(shù)組b,包含10個(gè)元素。統(tǒng)計(jì)a數(shù)組中的元素對(duì)10求余等于0的個(gè)數(shù),保存 到b0中;對(duì)10求余等于1的個(gè)數(shù),保存到b1中,依此類(lèi)推。 7,定義一個(gè)20*5的二維數(shù)組,用來(lái)存儲(chǔ)某班級(jí)20位學(xué)員的5門(mén)課的成績(jī);這5門(mén)課 按存儲(chǔ)順序依次為:core C+,coreJava,Servlet,JSP和EJB。 (1)循環(huán)給二維數(shù)組的每一個(gè)元素賦0100之間的隨機(jī)整數(shù)。 (2)按照列表的方式輸出這些學(xué)員的每門(mén)課程的成績(jī)。 (3)要求編寫(xiě)程序求每個(gè)學(xué)員的總分,將其保留在

52、另外一個(gè)一維數(shù)組中。 (4)要求編寫(xiě)程序求所有學(xué)員的某門(mén)課程的平均分。 8,完成九宮格程序? 9,求一個(gè)3*3矩陣對(duì)角線元素之和 10,打印楊輝三角,Module 5: 模塊化的程序設(shè)計(jì) -方法的調(diào)用,方法的概念,方 法,輸入,輸出,當(dāng)我們要建一棟大樓,我們不需要把一磚一瓦的建立過(guò)程全部寫(xiě)在一個(gè)程序 代碼塊里,我們可以把建大樓的工作劃分成若干個(gè)功能模塊,讓每一個(gè)模塊 完成一部分功能,這樣方便我們對(duì)程序的管理和維護(hù),比如:打地基的方法, 建主體的方法,裝修的方法等等。而在我們的主題程序中只需要對(duì)他們?nèi)ヒ?次調(diào)用就可以完成整個(gè)建大樓的工作,主方法,方法A,方法B,模塊化的程序設(shè)計(jì)過(guò)程實(shí)際 上就是方

53、法之間相互調(diào)用的 過(guò)程,模塊化的思想:把一個(gè)大的問(wèn)題細(xì)分為若干個(gè)小的問(wèn)題 方法:完成某一具體功能的封裝的程序模塊,方法的定義, () throws public void setName(String name) throws IllegalNameException public String getName() 如果一個(gè)方法沒(méi)有明確的返回值,那么它的返回值類(lèi)型必須定義為void 構(gòu)造方法沒(méi)有返回值,也不能寫(xiě)void,模塊化程序設(shè)計(jì)方法的調(diào)用,方法調(diào)用的基本步驟: 1,為被調(diào)用方法分配臨時(shí)存儲(chǔ)空間。 2,將實(shí)參的值復(fù)制一份傳給形參。 3,程序流程跳到被調(diào)用方法中執(zhí)行。 4,被調(diào)用方法執(zhí)行完成

54、或遇到return語(yǔ)句,則程序流程跳回主方法,同時(shí)被調(diào)用 方法的臨時(shí)存儲(chǔ)空間被回收。,public class MethodInvoke public static void main(String args) int age=21; addAge(age); System.out.println(“age=“+age); public static void addAge(int a) a+; System.out.println(“a=“+a); ,方法的調(diào)用(圖解),main()方法,addAge()方法,age,21,step1: 為被調(diào)用方法分配臨時(shí)存儲(chǔ)空間,a,21,step2:

55、將實(shí)參的值復(fù)制一份傳給形參,step3:程序流程跳到被調(diào)用方法中執(zhí)行,step4: 被調(diào)用方法執(zhí)行完成或遇到return語(yǔ)句,則程序流程跳回主方法, 同時(shí)被調(diào)用 方法的臨時(shí)存儲(chǔ)空間被回收,22,F:java MethodInvoke,a=22,age=21,練 習(xí),1,寫(xiě)一個(gè)方法,求1+3+5+7+的前n項(xiàng)的和,n通過(guò)方法參數(shù)給定,和值通過(guò) 方法返回值返回。 2,寫(xiě)一個(gè)方法判斷給定的年份是否是閏年。 3,寫(xiě)一個(gè)方法,用來(lái)求一個(gè)整形數(shù)組中的最大元素,方法需要一個(gè)int 類(lèi)型的 參數(shù),返回一個(gè)整形值。 4,寫(xiě)一個(gè)方法用來(lái)判斷一個(gè)整數(shù)是否是素?cái)?shù),如果是則返回true,否則返回false, 在主方法中

56、調(diào)用這個(gè)方法,驗(yàn)證其是否正確。 5,寫(xiě)一個(gè)方法用來(lái)生成一個(gè)整形數(shù)組,該方法返回一個(gè)int 類(lèi)型,需要一個(gè)int 型參數(shù),數(shù)組的大小由傳進(jìn)來(lái)的參數(shù)決定。 6,要求將第4章練習(xí)7的(1)(4)步分別用方法實(shí)現(xiàn)。,Module 6: 類(lèi)和對(duì)象,本章目標(biāo),面向?qū)ο缶幊痰幕靖拍睿悍庋b、繼承和多態(tài) private 和 public 修飾符 對(duì)象的創(chuàng)建和初始化 方法的調(diào)用 方法的重載和覆蓋 this和super關(guān)鍵字 理解Java語(yǔ)言中的下列概念: package、import、class、member method、field、constructor、override/overload、supercla

57、ss,面向?qū)ο蟮幕靖拍?面向?qū)ο笾饕槍?duì)面向過(guò)程。 面向過(guò)程的基本單元是函數(shù)。 什么是對(duì)象:EVERYTHING IS OBJECT(萬(wàn)物皆對(duì)象) 面向?qū)ο蟮挠^點(diǎn):一切皆對(duì)象 所有的事物都有兩個(gè)方面: 有什么(屬性):用來(lái)描述對(duì)象。 能夠做什么(方法):告訴外界對(duì)象有那些功能。,什么是類(lèi),類(lèi)(Class) 抽象的數(shù)據(jù)類(lèi)型,用來(lái)描述某一類(lèi)具有相同特性的對(duì)象。 類(lèi)是一種復(fù)雜的數(shù)據(jù)類(lèi)型,它是將不同類(lèi)型的數(shù)據(jù)和與這些數(shù)據(jù)相關(guān)的操作封裝在一起的集合體。這有點(diǎn)像C語(yǔ)言中的結(jié)構(gòu),唯一不同的就是結(jié)構(gòu)沒(méi)有定義所說(shuō)的“數(shù)據(jù)相關(guān)的操作”,“數(shù)據(jù)相關(guān)的操作”就是我們平常經(jīng)??吹降摹胺椒ā?,因此,類(lèi)具有更高的抽象性,

58、類(lèi)中的數(shù)據(jù)具有隱藏性,類(lèi)還具有封裝性,面向?qū)ο蟮膬?yōu)點(diǎn),首先,面向?qū)ο蠓先祟?lèi)看待事物的一般規(guī)律。 對(duì)象的方法的實(shí)現(xiàn)細(xì)節(jié)是屏蔽的,只有對(duì)象方法的實(shí)現(xiàn)者了解細(xì)節(jié)。 注意區(qū)分:對(duì)象(本身)、對(duì)象的實(shí)現(xiàn)者、對(duì)象的調(diào)用者。 分析對(duì)象主要從方法開(kāi)始。 我們通過(guò)類(lèi)來(lái)看待對(duì)象,類(lèi)是對(duì)象的抽象。,面向?qū)ο蟮膬?yōu)點(diǎn),其次,采用面向?qū)ο蠓椒梢允瓜到y(tǒng)各部分各司其職、各盡所能。 對(duì)象之間的耦合性一定要低(比如不同硬盤(pán)和不同主板之間的關(guān)系)。這樣才能使每個(gè)對(duì)象本身做成最好的。 對(duì)于對(duì)象的要求:高內(nèi)聚、低耦合,這樣容易拼裝成為一個(gè)系統(tǒng)。 實(shí)現(xiàn)高內(nèi)聚就是要最大限度低提高復(fù)用性(復(fù)用性好是因?yàn)楦邇?nèi)聚)。 可復(fù)用性是OOP的基礎(chǔ)

59、。 對(duì)象的功能越簡(jiǎn)單,復(fù)用性就越好。(對(duì)象的耦合性弱,復(fù)用性就比較強(qiáng)) 可擴(kuò)展性 系統(tǒng)的可插入性,是在系統(tǒng)中加入新的對(duì)象之后的系統(tǒng)穩(wěn)定性。 對(duì)象的可替換性,是在系統(tǒng)中替換原有的對(duì)象之后的系統(tǒng)的穩(wěn)定性。,面向?qū)ο笈c面象過(guò)程區(qū)別,比較面向過(guò)程的思想和面向?qū)ο蟮乃枷耄?面向過(guò)程的思想: Algorithms + Data Structor = Programs 面向過(guò)程是先有算法,后有數(shù)據(jù)結(jié)構(gòu)。 由過(guò)程、步驟、函數(shù)組成,以過(guò)程為核心; 面向?qū)ο蟮乃枷耄?以對(duì)象為中心,先開(kāi)發(fā)類(lèi),得到對(duì)象,通過(guò)對(duì)象之間相互通信實(shí)現(xiàn)功能 oop關(guān)鍵是讓每一個(gè)對(duì)象負(fù)責(zé)執(zhí)行一組相關(guān)的任務(wù). 面向?qū)ο笫窍扔袛?shù)據(jù)結(jié)構(gòu),然后再有算

60、法。,定義類(lèi),public class Animal String name; /屬性 int age; /屬性 public Animal(String name,int age) /構(gòu)造方法 =name; this.age=age; public void eat() /方法 System.out.println(name+” eating!”); ,修飾符 class 類(lèi)名 extends 父類(lèi)名 implements 接口1 ,接口2 類(lèi)的定義主體 ,創(chuàng)建一個(gè)對(duì)象(實(shí)例),為對(duì)象分配存儲(chǔ)空間 為成員變量賦初始值 調(diào)用構(gòu)造方法,構(gòu)造方法,方法名跟類(lèi)名相同 沒(méi)有返回值類(lèi)型

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論