版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
Java
編程簡介
Java發(fā)展史1990年Sun公司的
JamesGosling等人開始開發(fā)名稱為
Oak的語言。希望用於控制嵌入在有線電視交換盒、PDA(PersonalDigitalAssistant個人數(shù)字助理)、家用電器等的微處理器。
1993年互動式電視和
PDA市場開始滑坡,而
Internet正處於增長時期,因此Sun公司將目標市場轉(zhuǎn)向
Internet應用程式。1994年將Oak語言更名為Java。(java音譯為“爪哇”,是印尼一個盛產(chǎn)咖啡的島嶼)
1995年正式推出1995年Sun公司的
HotJava流覽器問世。什麼是JavaJava是一種跨平臺的,純面向?qū)ο蟮木幊陶Z言。Java
主要應用在基於WEB的程式中。Java在客戶端可用來生成兩類程式:應用程式(Application)、小應用程式(Applet)。Java既是一種編譯執(zhí)行的語言,也是一種解釋執(zhí)行的語言。Java的基本特點3-1簡單面向?qū)ο蠓謥咽絁ava的風格類似於C++,因而對C++程式員而言非常容易掌握Java編程技術;Java摒棄了C++中容易引發(fā)程式錯誤的地方,如指針操作和記憶體管理;
在Java中任何東西都是對象,是真正純粹面向?qū)ο蟮恼Z言。更有利於編制大型軟體工程Java提供了包容廣泛的例程庫,可處理像HTTP和FTP這樣的TCP/IP協(xié)議。Java應用程式可通過一個特定的URL來打開並訪問對象,就像訪問本地檔系統(tǒng)那樣簡單。
Java語言提供的安全機制編譯器提供的安全機制位元組碼校驗器類加載器Java的基本特點3-2健壯性安全體系結(jié)構(gòu)中立可移植性
Java在編譯和運行程式時都要對可能出現(xiàn)的問題進行檢查它提供自動垃圾收集來進行記憶體管理具有面向?qū)ο蟮漠惓L幚頇C制
Java程式被編譯成一種與體系結(jié)構(gòu)無關的位元組代碼只要安裝了Java運行時系統(tǒng),Java程式可以在任意的處理器上運行源代碼級目標代碼級Java的基本特點3-3解釋執(zhí)行高性能多線程動態(tài)Java語言內(nèi)置支持多線程的功能Java類庫提供了Thread類Java自身的設計使它適合於一個不斷發(fā)展的環(huán)境。在Java類庫中可以自由地加入新的方法和實例變數(shù)而不會影響用戶程式的執(zhí)行。通過JIT編譯器(Just-In-Time,運行時編譯執(zhí)行的技術)首先將位元組碼編譯成固有代碼,將結(jié)果緩存下來,然後在需要時調(diào)用它們。編譯器javac.exe將處理.java原始檔案生成類檔類檔可通過名稱為java.exe的加載實用程式解釋執(zhí)行,將Java位元組碼轉(zhuǎn)換為機器可執(zhí)行代碼。瞭解Java的跨平臺性--機器語言不同種類的電腦有不同的機器語言瞭解Java的跨平臺性--高級語言
高級語言程式
目標語言程式編譯器的編譯
目標語言程式可能是:機器語言程式(如:C,C++)中間語言程式(如:Java的class代碼)瞭解Java的跨平臺性--操作系統(tǒng)OperatingSystem操作系統(tǒng)用來支持最基本的操作,比如創(chuàng)建檔和文件夾,在螢幕上顯示,列印等等。操作系統(tǒng)是用戶與電腦之間的主要介面。所有的程式都與操作系統(tǒng)通訊為一種平臺編寫的代碼不能在另一種平臺上運行。機器語言決定代碼移植的可行性SoftwareforIBMMachineSunSolarisSoftwareforSolarisMACSoftwareforMACMachineIBM平臺可以理解為電腦系統(tǒng)與硬體的結(jié)合體。編譯後執(zhí)行的高級語言程式存在的問題問題Program為特定的平臺編寫的程式在其他平臺上無法使用解決辦法解釋器解釋器解釋器Program為解決這個問題,我們使用了“解釋器”。
這樣在解釋器的幫助下,我們就可以編寫一次代碼而在不同的平臺上運行。Java虛擬機Java程式的運行環(huán)境編譯型根源程式位元組碼程式Java根源程式可執(zhí)行程式EXE裸機操作系統(tǒng)解釋器編譯連接編譯執(zhí)行解釋執(zhí)行.java.classJava是解釋執(zhí)行的高級編程語言因此,每個平臺都有一個特定的JVM。即JVM是與平臺相關的平臺Java虛擬機2-1Java虛擬機(JVM—JavaVirtualMachine)可以是硬體或軟體(通常為軟體)??梢栽诓僮飨到y(tǒng)和硬體平臺上模擬一種抽象化的電腦系統(tǒng)運行時環(huán)境,在上面執(zhí)行Java的位元組碼程式。Java虛擬機將在內(nèi)部創(chuàng)建一個運行時系統(tǒng)(JRE),主要功能如下:加載.class檔管理記憶體執(zhí)行垃圾收集Java虛擬機2–2(即時編譯器)使用“即時(JustInTime)”編譯器,也稱為JIT編譯器??梢蕴岣逬ava代碼的執(zhí)行速度。SUN公司在Java2發(fā)行版中提供了JIT編譯器,JIT編譯器是Java虛擬機的一部分。JIT的主要用途是將位元組碼指令集轉(zhuǎn)換為針對某一特定微處理器的機器代碼指令。Java虛擬機2–3(Hotspot編譯器)Hotspot性能優(yōu)化編譯器是對Java2平臺的增強,主要加速模組的組成部分:記憶體模型,垃圾收集,線程同步,本地編譯器。特性綜述:總體性能更強(和 JIT編譯器相比);針對平臺的最優(yōu)化;精確的一次性垃圾收集器;Java虛擬機2–3(Hotspot編譯器)JavaHotspot性能優(yōu)化編譯器主要包括兩個檔和其他一些調(diào)試庫檔,位置在jre\bin\目錄下:新版本JDK包含兩種編譯器(server和client),它們都有下麵兩個檔jvm.dllXusage.txt測試Hotspot:DOS提示符:>java-version提示資訊:使用“混合模式”,可以把使用頻率高的代碼編譯成本地代碼,而其他的代碼仍然解釋執(zhí)行,可以獲得最高的效率。JavaHotSpot(TM)ClientVM(build1.4.1_02-b06,mixedmode)Java運行時環(huán)境編譯時.java(源代碼).class(位元組碼)運行時類加載器位元組碼校驗器解釋器JIT代碼生成器硬體網(wǎng)路垃圾收集2-1Java虛擬機使用兩個獨立的堆記憶體,分別用於靜態(tài)記憶體分配和動態(tài)記憶體分配。其中一個是非垃圾收集堆記憶體,用於存儲所有類定義、常量池和方法表。用於垃圾收集的演算法適用於存放在動態(tài)堆記憶體中的對象。垃圾收集2-2垃圾收集器將在收集對象實例之前調(diào)用finalize方法。即使顯式調(diào)用(System.gc())方法來啟動垃圾收集線程,但它也不能保證立即運行。因為垃圾收集線程的運行優(yōu)先順序很低,所以可能經(jīng)常會被中斷。Java的編輯環(huán)境JDK(JavaDevelopmentKit)是有助於程式員開發(fā)Java程式的Java開發(fā)工具包,它包括:類庫編譯器調(diào)試器Java運行時環(huán)境(JRE)小常識:Java2的版本號是和JDK的版本號相聯(lián)系的,在JDK1.2版本之後,都為Java2。JDK提供的常用工具
javac.exe是用來編譯源代碼的命令。
java.exe是用於執(zhí)行類檔的命令,而類檔將在Java虛擬機中運行類。appletviewer命令允許在萬維網(wǎng)流覽器的環(huán)境之外運行Applet。JavaApplication程式基本結(jié)構(gòu)import語句class{publicstaticvoidmain(String[]args){}}主類名稱方法體第一個Java程式//這是名稱為“HelloWorld.java”的簡單程式importjava.io.*;classHelloWorld{ publicstaticvoidmain(Stringargs[]){ System.out.println(“歡迎訪問Java世界!“);}}單行注釋導入必要的包定義類Main函數(shù)在控制臺上輸出在記事本編輯Java程式單擊開始依次選擇程式->附件->記事本//這是名稱為“HelloWorld.java”的簡單程式importjava.io.*;classHelloWorld{ publicstaticvoidmain(Stringargs[]){ System.out.println(“歡迎訪問Java世界!“);}}編譯和運行單擊開始依次選擇程式->附件->命令提示符進入程式所保存的目錄輸入命令編譯HelloWorld輸入命令執(zhí)行HelloWorld輸出結(jié)果JavaAPI文檔2-1加載API文檔的步驟:打開InternetExplorer。鍵入下列URL/j2se/1.4.1/docs/api/index.html通過單擊相關主題,可以流覽網(wǎng)頁。JavaAPI文檔是一種非常有用的文檔,描述許多java的內(nèi)置功能,包含類、包、介面等的幫助。
JavaAPI文檔2-2選擇包選擇包中的介面或類可查看相應幫助總結(jié)3-1Java是一種面向?qū)ο蟮木幊陶Z言,主要用於Internet應用程式。Java可用來生成兩類程式:應用程式、小應用程式(Applet)。Java既是一種解釋執(zhí)行的語言,也是一種編譯執(zhí)行的語言??偨Y(jié)3-2Java的特點包括:簡單面向?qū)ο蠓謥咽浇研园踩w系結(jié)構(gòu)中立可移植性解釋執(zhí)行高性能多線程動態(tài)注釋Java語言提供三種類型的注釋:單行注釋多行注釋文檔注釋以//開始,並以換行符結(jié)束以/*開始,并以*/結(jié)束以/**開始,并以*/結(jié)束,注釋中的每一行都必須以*開始。使用javadoc工具從源代碼和文檔注釋中將資訊取出,然後轉(zhuǎn)換為HTML檔。變數(shù)命名規(guī)定2-1變數(shù)是在程式執(zhí)行期間可根據(jù)需要經(jīng)常變化的值,是指定給變數(shù)、方法和類的名稱,以便編譯器可唯一標識它們。變數(shù)具有3個特性:名稱:
識別字初始值:為其賦值或者是保留缺省值作用域:
在不同程式塊中的可用性及生命週期聲明示例:[<訪問修飾符>][<存儲修飾符>]<數(shù)據(jù)類型><變數(shù)名>;變數(shù)命名規(guī)定2-1對變數(shù)名的長度沒有任何限制。
變數(shù)名可包含字母數(shù)字字元。實際上,Java支持Unicode字元集,從而允許使用日語、中文字等符作變數(shù)命名。
變數(shù)名不能以非數(shù)字字元開頭。
其餘字元可以是字母,數(shù)字,下劃線(“_”),美元符(“$”)組成。變數(shù)名不得是關鍵字。關鍵字2-1原始數(shù)據(jù)類型byteshortintlongfloatdoublecharboolean迴圈關鍵字dowhileforbreakcontinue分支關鍵字ifelseswitchcasedefaultbreak方法、變數(shù)和類修飾符privatepublicprotectedfinalstaticabstractsynchronizedvolatilestrictfp(strictfloatprecision)關鍵字2-2異常處理trycatchfinallythrowthrows對象相關關鍵字newextendsimplementsclassinstanceofthissuper
字面值常量
false
true
null方法相關關鍵字
return
void
包相關關鍵字
package
import基本數(shù)據(jù)類型Java共有八種基本數(shù)據(jù)類型:四種整數(shù)類型(byte、short、int、long)兩種浮點數(shù)類型(float、double)一種字元類型(char)一種布爾類型(boolean)整型數(shù)據(jù)類型類型缺省值長度數(shù)的範圍byte08位-128~127
short016位-32,768~32,767
int032位-2,147,483,648~2,147,483,647
long064位-9,223,372,036,854,775,808~9,223,372,036,854,775,807
做為實例變數(shù)時的缺省值浮點型數(shù)據(jù)類型類型缺省值長度數(shù)的範圍float0.032位3.4E-038~3.4E+038
double0.064位1.7E-308~1.7E+308
字元數(shù)據(jù)類型類型缺省值長度數(shù)的範圍char'\u0000'
16位\u0000~\uFFFF
布爾數(shù)據(jù)類型類型缺省值長度數(shù)的範圍booleanfalse
1位false、true字串創(chuàng)建一個String類的實例:
Stringstr1=“comein”;//字串字面量Stringstr2=newString(“please!”);兩個或多個字串可以用“+”運算符合併起來。例如:str3=str1+“,haveaseat,”+str2;字串的長度可以通過String類中的函數(shù)計算。例如:intnumLength=str2.length();也可將數(shù)字添加到字串類型中。例如:StringstrVar=“thevalueis:”+1;字串池Java程式可包含許多字串字面量“字串池”存放在程式中創(chuàng)建的所有字串字面量任何時候創(chuàng)建字串字面量,系統(tǒng)都會搜索字串池,查看是否存在該字串字面量。SundayMondayHelloAptechWorld1234NStringday="Monday";Stringweekday="Monday";字串池String類方法charAt():返回字串中某個特定位置的字元
indexOf():返回字串中某個特定字元或子字串首次出現(xiàn)的索引
toUpperCase():將字串內(nèi)的所有字元從小寫改為大寫toLowerCase():將字串內(nèi)的所有字元從大寫改為小寫算術運算符運算符含義示例求值+加c=a+b
-減c=a-b
*乘c=a*b
/除c=a/b
%取模c=a%b
++遞增a++--遞減b--+=相加並賦值c+=a
c=c+a
-=相乘並賦值c*=a
c=c*a
/=相除並賦值c/=a
c=c/a
%=取模並賦值c%=a
c=c%a
-取負數(shù)c=-a關係運算符關係運算符用於測試兩個運算元之間的關係。關係運算式將返回一個布爾結(jié)果。運算符含義示例==等於a==b!=不等於a!=b>大於a>b<小於a<b>=大於或等於a>=b<=小於或等於a<=b邏輯運算符邏輯運算符兩側(cè)可以使用關係運算符和布爾運算元運算符含義示例!邏輯反!A||邏輯(短路)或A||B&&邏輯(短路)與A&&BpublicclassA{ publicstaticvoidmain(Stringargs[]) { booleanb1=true; booleanb2=false; System.out.println("theresult1is:"+(b1&&b2)); System.out.println("theresult2is:"+((3>2)||(4>5))); } }位運算符用於int、short、long、byte和char數(shù)據(jù)類型運算符含義示例~
按位非(NOT)
b=~a
&
按位與(AND)
c=a&b
|
按位或(OR)
c=a|b
^
按位異或(XOR)
c=a^b
>>
右移
b=a>>2
>>>
無符號右移,左邊空出的位以0填充
b=a>>>2
<<
左移
b=a<<1
注意:Java中沒有“無符號左位移”運算符
chara1=16; chara2=32; System.out.println("theresultis:"+(a1|a2));賦值運算符一次可以為多個變數(shù)賦值,如:inta=20000;intp,q,r,s;p=q=r=s=a;賦值運算符(=)用於為變數(shù)賦值三元運算符(?:)三元運算符(?:)可以替代if-else結(jié)構(gòu)true
false條件?運算式1:運算式2
classPaySalary{publicstaticvoidmain(Stringargs[]){intsalary,daysPresent=30;
salary=daysPresent==20?2000:3000; System.out.println("您本月薪資為$"+salary);}}instanceof運算符classInstanceOfDemo{publicstaticvoidmain(Stringargs[]){ InstanceOfDemot=newInstanceOfDemo(); if(tinstanceofInstanceOfDemo){System.out.println("T是InstanceOfDemo的實例"); }
else{ System.out.println("T不是InstanceOfDemo的實例!"); }}}
可以確定對象是否屬於一個特定的類java.lang包2-1該包中包含的類是
Java編程語言設計的基礎其中比較重要的類包括:ObjectClass封裝類類體系結(jié)構(gòu)的根封裝對象或介面運行時的狀態(tài)封裝基本數(shù)據(jù)類型,為基本數(shù)據(jù)類型建立對象運算式java.lang包2-2Math類String和StringBufferClassLoaderProcessRuntimeSecurityManagerSystem提供一些常用的數(shù)學運算的方法提供常用的字串運算提供“系統(tǒng)操作”,可以管理類的動態(tài)加載、外部進程的創(chuàng)建、主機環(huán)境查詢(如一天中的時間)及安全策略的執(zhí)行等java.lang.Math2-1java.lang.Math類中可用的static方法有:abs():返回參數(shù)的絕對值ceil():返回大於或等於參數(shù)的最小整數(shù)floor():返回小於或等於參數(shù)的最大整數(shù)round():返回雙精度浮點數(shù)參數(shù)四捨五入後的整數(shù)或長整數(shù)java.lang.Math2-2max():返回兩個參數(shù)值中的大者min():返回兩個參數(shù)值中的小者random():返回類型為double且介於0.0和1.0之間的亂數(shù)控制結(jié)構(gòu)選擇if-elseswitch迴圈whiledo-whileforJava支持下列控制結(jié)構(gòu):選擇、迴圈、跳轉(zhuǎn)跳轉(zhuǎn)breakcontinue
if-else選擇語句if-else
結(jié)構(gòu)的語法為:if(條件)語句1;else
語句2;if(條件){語句組;}
else{
語句組;}if和else塊中只有一條語句if和else塊中有多條語句switch選擇語句switch結(jié)構(gòu)的語法為:
switch(運算式){case'常量值1':語句(組);break;case'常量值2':語句(組);break;case'常量值N':語句(組);break;default:語句(組);}運算式必須為byte,short,int或char類型常量值必須是與運算式類型相容的特定的一個常量不允許有重複的case值迴圈while迴圈
while(條件) {語句組;}do-while迴圈do{語句組;}while(條件);for迴圈for(變數(shù)初始化;條件;遞增或遞減變數(shù)的值){語句組;}break和continue語句break語句在迴圈中用於立即從當前迴圈終止控制。遇到break語句時,將跳出當前迴圈。continue語句則是從其調(diào)用處跳至迴圈的開始處,再進行下一次迴圈。continue語句之後的語句將不再執(zhí)行。return語句用於返回調(diào)用者。數(shù)組屬於複雜數(shù)據(jù)類型由類型相同的元素組成的有順序的數(shù)據(jù)集合數(shù)組是固定的不能擴展可以存儲基本數(shù)據(jù)類型或?qū)ο笸ㄟ^數(shù)組名和下標可以訪問各元素創(chuàng)建數(shù)組通用的一維數(shù)組的聲明格式是:
typearrayName[];或type[]arrayName;舉例: String[]arrayName; int[][]arrayName;//二維數(shù)組 或intarrayName[][];利用new來為數(shù)組型變數(shù)分配記憶體空間arrayName=newString[10];兩步可以合併,如:String[]arrayName=newString[10]; int[][]arrayName=newint[2][3];
數(shù)組聲明與賦值的其他格式數(shù)組可以聲明,分配記憶體空間和賦值一步完成:Stringstr[]=newString[]{“Tom”,”Marry”};int[][]a=newint[][]{{1,2,3},{4,5,6}};錯誤形式:inta[]=newint[3]{1,2,3};int[][]a=newint[2][3]{{1,2,3},{4,5,6}};數(shù)組賦值時,不能填寫size值命令行參數(shù)Java應用程式可以從命令行中接收任意數(shù)量的參數(shù)每個參數(shù)被視為字串分別存儲在main函數(shù)的參數(shù)數(shù)組中可以使用雙引號將多個字串作為一個整體顯示命令行參數(shù)示例classComndLineArg1{publicstaticvoidmain(Stringargs[]){for(inti=0;i<args.length;i++)
{System.out.println(args[i]);}}}
輸出結(jié)果輸出結(jié)果總結(jié)2-1Java具有8種基本數(shù)據(jù)類型:byte、short、int、long、boolean、char、float及doubleJava中的運算符可劃分為四個子集:算術運算符、位運算符、關係運算符、邏輯運算符&運算符適用於如下子集:邏輯和位。邏輯&以條件運算式為運算元,而位&則以數(shù)字為運算元類和對象2-1對象表示現(xiàn)實世界中某個具體的事物。抽象是從特定的實例中抽取共同的性質(zhì)以形成一般化概念的過程。對象具有兩方面的含義:在現(xiàn)實世界中:是客觀世界中的一個實體在電腦世界中:是一個可標識的存儲區(qū)域類和對象2-2類是具有共同屬性和行為的對象的抽象。類可以定義為數(shù)據(jù)和方法的集合。類也稱為範本,因為它們提供了對象的基本框架。類對象抽象實例化屬性或狀態(tài)操作或行為數(shù)據(jù)或變數(shù)方法封裝的實體=數(shù)據(jù)+方法創(chuàng)建類classname{typevariable1;
…typevariableN;
typemethodname1(parameter-list){//方法體}
…typemethodnameN(parameter-list){//方法體}}
在類中,屬性是通過成員變數(shù)體現(xiàn)的,而操作是用成員函數(shù)(又稱為方法)實現(xiàn)的。Java中定義類的通用格式:成員變數(shù)(對象屬性)成員方法(對象行為或操作)定義方法定義方法的一般格式:[accessmodifier]typemethodName([parameter-list]){//方法體}發(fā)往某個對象的消息對應於一個方法調(diào)用。作為對消息的回應,對象將執(zhí)行一個類似於過程體的方法。方法是包含在類中的函數(shù)。方法名稱返回類型修飾符,可選參數(shù)列表,可選舉例:publicvoidsetdate(intday,intmonth,intyear){day=23;month=7;year=2003;}對象作為參數(shù)classTest{inta,b;
Test(inti,intj){a=i;b=j;}//可以在方法中改變對象狀態(tài)
voidchange(Testobj){
obj.a=50;
obj.b=40;}}
當對象作為方法參數(shù)時,在方法中只能改變該對象的狀態(tài),但不能通過該對象的引用的改變其狀態(tài)voidswapobj(Dayx,Dayy){
Daytemp=y;
y=x;
x=temp;}
引用本身按值傳遞改變對象狀態(tài)this引用publicclassTest{
intx; Test(intx){
this.x=x;}publicvoidshowValue(){System.out.println(“x等於"+x);
}publicstaticvoidmain(Stringargs[]){ Testtest=newTest(10); test.showValue(); }}
關鍵字this與對象關聯(lián)它用於指示當前對象指明此對象的屬性變數(shù)x應賦值為通過構(gòu)造方法傳遞的參數(shù)引數(shù)x的值。
方法重載(overload)方法重載是Java實現(xiàn)面向?qū)ο蟮亩鄳B(tài)性機制的一種方式。同一個類中多個方法有相同的名字,不同的參數(shù)列表,這種情況稱為方法重載。返回類型不同並不足以構(gòu)成方法重載。當重載方法被調(diào)用時,編譯器根據(jù)參數(shù)的類型和數(shù)量來確定實際調(diào)用哪個重載方法的版本。注意方法重載(overload)與方法重寫(override)的區(qū)別,後面將介紹方法重寫的概念。方法重載示例classCalculation{
publicvoidadd(inta,intb){intc=a+b;System.out.println("兩個整數(shù)相加得"+c);}
publicvoidadd(floata,floatb){floatc=a+b;System.out.println("兩個浮點數(shù)相加得"+c);}
publicvoidadd(Stringa,Stringb){Stringc=a+b;System.out.println("兩個字串相加得"+c);}}
classCalculationDemo{publicstaticvoidmain(Stringargs[]){ Calculationc=newCalculation(); c.add(10,20); c.add(40.0F,35.65F);
c.add("早上","好");
}}
編譯器決定調(diào)用版本構(gòu)造函數(shù)構(gòu)造函數(shù)名稱與類名稱相同構(gòu)造函數(shù)沒有返回類型其任務是在創(chuàng)建對象時初始化其內(nèi)部狀態(tài)classFruit{booleanseedLess;booleanseasonal;floatprice;Fruit(booleanseed,booleanseason,floatp){
seedLess=seed; seasonal=season; price=p; }
}創(chuàng)建對象使用下列語法可創(chuàng)建對象:
new構(gòu)造方法關鍵字new通常稱為創(chuàng)建運算符,用於分配對象記憶體,並將該記憶體初始化為缺省值。一旦new完成分配和初始化記憶體,它就將調(diào)用構(gòu)造函數(shù)來執(zhí)行對象初始化。
當創(chuàng)建一個類時,只是創(chuàng)建了一種新的數(shù)據(jù)類型。對象是類的一個實例。classFruitDemo{publicstaticvoidmain(Stringargs[]){ Fruitf=newFruit(true,false,50.0F);}}
創(chuàng)建對象缺省初始值Java保證了在任何代碼使用該記憶體之前,已至少將記憶體初始化為可預知的缺省值類型缺省值類型缺省值byte(byte)0char'\u0000'short(short)0float0.0Fint0double0.0Dlong0L對象引用nullbooleanfalse重載構(gòu)造函數(shù)Java為每一個類自動提供缺省構(gòu)造函數(shù)缺省構(gòu)造函數(shù)將成員變數(shù)的值初始化為缺省值一旦創(chuàng)建了自己的構(gòu)造函數(shù),缺省的構(gòu)造函數(shù)將不復存在。重載構(gòu)造函數(shù)提供了一組創(chuàng)建對象的方式,可以根據(jù)需要決定是否帶初始參數(shù)。publicclassconstructOverload{intx;constructOverload(){x=0;
System.out.println("不帶參數(shù)的構(gòu)造函數(shù)");}
constructOverload(intx){this.x=x;System.out.println("帶一個參數(shù)的構(gòu)造函數(shù)");}}談談“繼承”被繼承的類稱為父類繼承父類的類稱為子類執(zhí)行繼承時,子類將獲得父類的屬性,並具有自身特有的屬性。
繼承是面向?qū)ο缶幊碳夹g的一塊基石,它允許創(chuàng)建分等級層次的類。運用繼承,可以創(chuàng)建一個通用類定義一系列一般特性。該類可以被更具體的類繼承Emoloyee類:namesexWorker類:categorydressAllowanceOfficer類:empClassvehicle職員類,具有姓名和性別兩個屬性工人類,繼承了父類的姓名和性別屬性外還包含類別和是否有服裝津貼屬性主任類,還包含級別和是否配備交通工具屬性extends關鍵字extends關鍵字用於繼承類。聲明一個繼承父類的類的通常形式如下:classsubclass-nameextends
superclass-name{//類體}
沒有extends,默認父類為ObjectJava類只能有一個父類,即單繼承子類自動繼承父類的全部成員注意super關鍵字super關鍵字用來解決如何直接訪問或初始化從父類繼承來的屬性。super有兩種通用形式:調(diào)用父類的構(gòu)造函數(shù)、用來訪問被子類的成員覆蓋的父類成員。
它用在對象的構(gòu)造函數(shù)中,將構(gòu)造細節(jié)通過繼承鏈往上傳遞。super()必須是在子類構(gòu)造函數(shù)中的第一個執(zhí)行語句。繼承示例classEmployee{
Stringname;//姓名
charsex;//性別
Employee(Stringn,chars){name=n;sex=s;}publicStringgetName(){returnname;}publicchargetSex(){returnsex;}}classWorkerextendsEmployee
{
charcategory;//類別
booleandressAllowance;//是否提供服裝津貼Worker(Stringn,chars,charc,booleand){
super(n,s);
category=c;dressAllowance=d;}publicchargetCategory(){returncategory;}
publicbooleangetAll(){returndressAllowance;}}classInheDemo{publicstaticvoidmain(Stringargs[]){Workerw=newWorker("M.John",'M','B',true);
System.out.println("工人資訊");
System.out.println("姓名
:"+w.getName());System.out.println("性別
:
"+w.getSex());
System.out.println("類別
:"+w.getCategory());if(w.getAll())System.out.println("提供服裝津貼");
elseSystem.out.println(“未提供服裝津貼”);
}}instanceofclassStudent{}classGraduateextendsStudent{}classUndergraduateStudentextendsStudent{}publicclassst{publicstaticvoidmain(String[]args){UndergraduateStudents1=newUndergraduateStudent();Graduates2=newGraduate();Studentx;
x=s1;if(xinstanceofUndergraduateStudent)System.out.println(“x是UndergraduateStudent類的實例?!?;elseSystem.out.println(“x是Graduate類的實例?!?;}}instanceof測試第一個參數(shù)的運行時類型是否為與第二個參數(shù)相容的賦值。x在運行時指向s1,所以if語句條件返回true注意:s1=s2;是錯誤的!類型轉(zhuǎn)換執(zhí)行自動類型轉(zhuǎn)換需要兩個條件:接受轉(zhuǎn)換的兩種類型是相容的目的類型數(shù)的範圍比源類型的大強制類型轉(zhuǎn)換語句的通用格式如下:
(目標類型)valueUndergraduateStudents1=newUndergraduateStudent();Graduates2=newGraduate();Studentx;x=s1;Graduates3=newGraduate();if(xinstanceofGraduate)
s3=(Graduate)x;
注意:從父類到子類的轉(zhuǎn)換,建議在轉(zhuǎn)換前判斷父類引用是否指向子類的對象Object類Object類是類體系結(jié)構(gòu)的根Java系統(tǒng)中的每個類都是Object類直接或間接的子類Object類包括在java.lang包中此類定義了所有對象都具備的基本狀態(tài)和行為可以用類型為Object的變數(shù)來引用任意類型的對象equals()用於比較兩個對象是否相等,相等返回trueObject類中提供的equals方法使用恒等函數(shù)來確定對象是否相等Object類中實現(xiàn)的equals方法只能用來判斷兩個不同的對象是否指向同一個記憶體區(qū)域子類一般通過覆蓋Object的equals方法實現(xiàn)有意義的測試,可以實現(xiàn):若同一類型的兩個不同對象包含相同的資訊即返回trueIntegerone=newInteger(1);IntegeranotherOne=newInteger(1);if(one.equals(anotherOne))System.out.println("對象相等");equals()方法與等號“==”的區(qū)別:“==”用於數(shù)值之間的絕對比較,如果用來比較兩個對象,即使這兩個對象屬於同種類型,也因為記憶體地址的不同,而為false例如: Stringname1=newString(“tom”);Stringname2=newString(“tom”);if(name1==name2){}//結(jié)果為falseequals()方法用於同類型兩個對象之間,數(shù)據(jù)成員的比較。if(2){}//結(jié)果為truetoString()toString用於返回對象的字串表示。
建議所有子類都覆蓋此方法。使用“+”運算符將對象同一個字串連接,Java編譯器會自動調(diào)用toString方法,獲取對象的字串表現(xiàn)形式。Derivedd=newDerived();System.out.println("Derived的
toString():"+d);自動調(diào)用d.toString方法,獲取對象的字串表示形式方法重寫(override)方法重寫是Java實現(xiàn)多態(tài)性機制的另一種方式。在類層次結(jié)構(gòu)中,如果子類中的一個方法與父類中的方法有相同的方法名並具有相同數(shù)量和類型的參數(shù)列表,這種情況稱為方法重寫。當一個重寫方法通過父類引用被調(diào)用,Java根據(jù)當前被引用對象的類型來決定執(zhí)行哪個版本的方法。可以通過super關鍵字調(diào)用直屬父類中被覆蓋的方法版本。方法重寫示例classSuperClass{inta;SuperClass(){a=10;}
publicvoidprintA(){System.out.println("父類中a="+a);}}classSubClassextendsSuperClass{inta;SubClass(inta){this.a=a;}
publicvoidprintA(){System.out.println("子類中a="+a);}}
publicclassOverrideDemo{publicstaticvoidmain(Stringargs[]){SuperClasss1=newSubClass(10);
s1.printA();}}將調(diào)用子類的printA方法包在Java中,包主要有以下用途:包允許將類組合成較小的單元有助於避免命名衝突包允許在更廣的範圍內(nèi)保護類、數(shù)據(jù)和方法
包可以是類、介面和子包的集合代碼的複用性是軟體開發(fā)中最關注的特點。複用性將為您節(jié)省時間、精力並能保證一致性。介面包類其他的包使用包創(chuàng)建包
packagemypackage;導入包importpackage_name.*;(包中的通用類和介面,不含子包)Importpackage_name.My_Class;導入子包importpackage_name.subpackage_name.*;訪問Java包成員
mypackage.My_Class;編譯包命令:>javac–d目錄名原始檔案名Java中重要的包包含了建立Java程式的基本類。您不需要顯式地寫出導入這個包的語句,任何程式中,該包都被自動導入。這個包由對您的輸入/輸出操作有用的類組成。該包由您在流覽器中執(zhí)行一個applet所需要的類組成。該包對創(chuàng)建GUI應用程式有用。
該包提供了許多創(chuàng)建如:lists,calendar,date等所需要的類和介面。該包提供了許多進行TCP/IP網(wǎng)路編程的類和介面。java.langjava.iojava.appletjava.awtjava.util修飾符修飾符是為代碼和類指定附加意義的關鍵字。有兩種類型或類別的修飾符:訪問修飾符非訪問修飾符訪問修飾符的類型有:publicprotectedprivate類繼承的訪問修飾符(public,friendly)類成員的訪問說明符(public,protected,friendly,private)訪問修飾符的訪問屬性描述privatefriendlyprotectedpublic同一類是是是是同一包不同類否是是是同一包子類否是是是不同包不同類否否否是不同包子類否否是是訪問修飾符public訪問修飾符:使類的特徵公用於任何類。protected訪問修飾符:(只有屬性和方法可以聲明為protected)允許來自下麵的訪問
類本身
同一包中的子類和其他類
出現(xiàn)在不同包中子類private訪問修飾符:限制最大的訪問修飾符,一旦用來修飾類,那麼該類只能從類內(nèi)部來訪問。訪問修飾符(續(xù))friendly修飾符:如果類、變數(shù)或方法沒有修飾符,則它們將獲得此修飾符的訪問許可權。它們能被同一包中的任何類訪問。這指的是說即使一個類是該類的子類,但如果在不同的包中,也不能訪問。非訪問修飾符static修飾符:能用於變數(shù),方法和一塊代碼。
類中的Static變數(shù)或方法不是指特定的實例。它能夠與“類名”一起使用,不需要創(chuàng)建一個類的對象來訪問該類的靜態(tài)特徵。abstract修飾符可用於類和方法:
類—此類不能實例化。
方法—必須在此abstract類的子類中提供該方法的實現(xiàn)。
一個類在下面情況下成為
abstract:
當一個類的一個或多個方法是抽象的時候;
當類是一個類的子類,並且不能為任何抽象方法提供實現(xiàn);當一個類實現(xiàn)一個介面,並且不能為任何抽象方法提供實現(xiàn);非訪問修飾符(續(xù)1)final修飾符被用在變數(shù),方法和類。其作用如下:變數(shù)
:指定後,一旦賦了值,就不能更改它。方法
:指定後,不能更改方法主體。類
:指定後,此類不能再產(chǎn)生子類。某個類的對象
:指定後,不能更改在對象中的引用,但是可 以更改該對象的值。非訪問修飾符(續(xù)2)native修飾符“native”只能與方法一起使用。此關鍵字指出方法的主體將在別處提供,例如在“Java虛擬機”外。因此本機代碼將用Java以外的語言編寫,並且其編譯用於本機。synchronized用於控制多線程的程式。volatile與變數(shù)一起使用,指示變數(shù)的值可以更改??偨Y(jié)2-1對象代表現(xiàn)實世界中的實體
類是對象的抽象,將對象的屬性和行為抽象為類中的數(shù)據(jù)和方法。在Java中,extends關鍵字用於繼承類。super關鍵字用來解決如何直接訪問或初始化從父類繼承來的屬性。構(gòu)造方法沒有返回類型,名稱與類的名稱相同。關鍵字this與對象關聯(lián)用於指明當前對象。類的靜態(tài)成員類中的靜態(tài)變數(shù)、方法或代碼塊屬於類,而不屬於某個特定的對象。
類的靜態(tài)成員可以與類的名稱一起使用,而無需創(chuàng)建類的對象。
靜態(tài)變數(shù)或方法也稱為類變數(shù)或類方法。用static修飾符修飾,可以是變數(shù)、方法或代碼塊思考:引入靜態(tài)成員的意義?靜態(tài)變數(shù)不管創(chuàng)建了類的多少實例,整個類中靜態(tài)變數(shù)的副本只有一個。
引用靜態(tài)變數(shù)的方法:通過引用類的任一實例通過類的名稱classStaticDemo{
staticintx=0;
StaticDemo(){x++;}}StaticDemod1=newStaticDemo();StaticDemod2=newStaticDemo();d1.x=100;d2.x=200;testVariable=d1.x;
通過類實例訪問不是一個好方法StaticDemod1=newStaticDemo();StaticDemod2=newStaticDemo();
StaticDemo.x=100;StaticDemo.x=200;testVariable=StaticDemo.x;
聲明為static的變數(shù)實質(zhì)上就是全局變數(shù)通過類名訪問靜態(tài)方法與靜態(tài)方法相關的幾個要點:類的靜態(tài)方法只能訪問其他的靜態(tài)成員靜態(tài)方法沒有this靜態(tài)方法不能被重寫為非靜態(tài)方法classStaticFun{staticinti=10;intj;staticvoidsetValue(intx){
j=x;//出錯System.out.println(""+i);}}不能訪問非靜態(tài)變數(shù)j,可以訪問靜態(tài)變數(shù)iclassStaticTest{staticvoidtest(){}}classStaticex
extends
StaticTest{
voidtest(){}//出錯}
靜態(tài)塊如果需要通過計算來初始化靜態(tài)變數(shù),可以聲明一個靜態(tài)塊。靜態(tài)塊僅在該類被加載時執(zhí)行一次。只能初始化類的靜態(tài)數(shù)據(jù)成員。
classTryInitialization{
staticint[]values=newint[10];//靜態(tài)數(shù)組成員
static{for(inti=0;i<values.length;i++)values[i]=(int)(100.0*Math.random());
}}
final關鍵字/final類final修飾符可應用於類、方法和變數(shù)。final在應用於類、方法和變數(shù)時意義是不同的,但本質(zhì)是一樣的:final表示不可改變。
聲明為final的類不能被繼承。final類示例:
java.lang.String
final
classTestFinal{inti=7;intj=1;voidf(){}}classFurtherextendsTestFinal{}
final類不能被繼承final方法在方法聲明中使用final關鍵字向編譯器表明子類不能覆蓋此方法。在聲明類中,一個final方法只被實現(xiàn)一次。如果一個類為
final類,那麼它的所有方法都為隱式的
final方法。classTestFinal{finalvoidf(){}}classFurtherextendsTestFinal{finalvoidf(){}}
final方法不能被覆蓋final變數(shù)一個變數(shù)可以聲明為final,這樣做的目的是阻止它的內(nèi)容被修改。聲明final變數(shù)後,只能被初始化一次,然後就不能對其值進行修改。一個final變數(shù)實質(zhì)上是一個常量。
classFinalDemo{ publicstaticvoidmain(Stringargs[]){finalintnoChange=20;
noChange=30;
}}
final變數(shù)不能被修改抽象類2-1定義抽象類的目的是提供可由其子類共用的一般形式。子類可以根據(jù)自身需要擴展抽象類。抽象類不能實例化。抽象方法沒有函數(shù)體。抽象方法必須在子類中給出具體實現(xiàn)。abstract修飾符可與類和方法一起使用抽象類2-2在以下情況下,某個類將成為抽象類:當一個類的一個或多個方法為抽象方法時。當該類為一個抽象類的子類,並且沒有為所有抽象方法提供實現(xiàn)細節(jié)或方法主體時。當一個類實現(xiàn)一個介面,並且沒有為所有抽象方法提供實現(xiàn)細節(jié)或方法主體時。抽象類示例abstractclassEmployee{ intbasic=2000;
abstractvoidsalary();//抽象方法}classManagerextendsEmployee{voidsalary(){ System.out.println("薪資等於"+basic*5);}}
classWorkerextendsEmployee{voidsalary(){ System.out.println("薪資等於"+basic*2);}}
抽象方法沒有方法主體在子類中提供實現(xiàn)在子類中提供實現(xiàn)介面一個介面允許一個類從幾個介面繼承而來。Java程式一次只能繼承一個類但可以實現(xiàn)幾個介面。介面不能有任何具體的方法。介面也可用來定義可由類使用的一組常量。介面提供“isa”關係。
創(chuàng)建介面的形式//有方法的介面publicinterfacemyinterface{ publicvoidadd(intx,inty); publicvoidvolume(intx,inty,intz);}//定義程式使用的常量的介面publicinterfacemyconstants{ publicstaticfinaldoubleprice=1450.00;publicstaticfinalintcounter=5;}定義一個介面:實現(xiàn),編譯介面實現(xiàn)介面的形式:用關鍵字implements實現(xiàn)介面,例如:classdemoimplementsmyinterface如果有一個以上介面被實現(xiàn),則用逗號隔開介面名稱,如下所示:
classdemoimplementsMycalc,Mycount編譯形式如下:javac介面原始檔案名.javajavac–d目的目錄名介面原始檔案名.java創(chuàng)建一個介面publicinterfacemyinterface{publicvoidadd(intx,inty);}在Java中,介面的實現(xiàn)按下麵的方式進行:當右邊的代碼執(zhí)行時,將在“JavaProgs”檔夾下創(chuàng)建檔夾“mypackage”,並且在該檔夾下產(chǎn)生“myinterface.class”檔代碼的編譯方法如下:javac–dc:\JavaProgs\mypackagemyinterface.java在程式中實現(xiàn)介面importjava.io.*;importmypackage.*;classdemoimplementsmyinterface{ publicvoidadd(intx.,inty) { System.out.println(“”+(x+y); } publicstaticvoidmain(Stringargs[]) { denod=newdemo(); d.add(10,20); }}導入
myinterface.class
檔所在的包封裝類基本數(shù)據(jù)類型不是對象層次結(jié)構(gòu)的組成部分。有時需要象處理對象一樣處理這些基本數(shù)據(jù)類型,可通過相應的“封裝類”來將其“封裝”。
數(shù)據(jù)類型封裝類(WrapperClass)booleanBooleanbyteBytecharCharacterdoubleDoublefloatFloatintIntlongLongshortShort封裝類使用示例BooleanwrapBool=newBoolean("false");Integernum1=newInteger("31");Integernum2=newInteger("3");intsum=Value()*Value();intValue()返回調(diào)用對象的整型值
classCmdArg{publicstaticvoidmain(Stringargs[]){ intsum=0; for(intcnt=0;cnt<args.length;cnt++)sum+=Integer.parseInt(args[cnt]); System.out.println("和為:"+sum);}}
parseInt()方法將執(zhí)行從字串轉(zhuǎn)換成與之相應的整型(int)值
內(nèi)部類內(nèi)部類為非靜態(tài)的嵌套類。在類中定義的類稱為內(nèi)部類。內(nèi)部類之外的類稱為外部類。內(nèi)部類可以訪問其外部類的所有變數(shù)和方法,並能夠以和外部類的其他非靜態(tài)成員相同的方式直接引用它們。內(nèi)部類完全在其包圍類的範圍之內(nèi)。外部類與內(nèi)部類的關係是:“havea”內(nèi)部類使用示例classOuterClass{ Stringstr; booleanouterClassAccessible;
InnerClassin;//在外部類中使用內(nèi)部類,需聲明內(nèi)部類的實例 publicOuterClass(){//代碼見實例} classInnerClass { Stringstr; booleaninnerClassAccessible; publicInnerClass(){//代碼見實例
}//可以把內(nèi)部類當作是外部類的方法,因此不需聲明外部類的實例 }}總結(jié)2-1類中的靜態(tài)變數(shù)、方法或代碼塊並不具體到實例,它們可以與類的名稱一起使用,而無需創(chuàng)建類的對象來訪問類的靜態(tài)特性。final修飾符可應用於類、方法和變數(shù)。
定義抽象類的目的是提供可由其子類共用的一般形式。介面就是需要由其他類實現(xiàn)的行為範本。
什麼是異常運行時發(fā)生的錯誤稱為異常(Exception)。處理這些異常就稱為異常處理。一旦引發(fā)異常,程式將突然中止,且控制將返回操作系統(tǒng)。發(fā)生異常後此前分配的所有資源都將保留在相同的狀態(tài),這將導致資源漏洞。何時使用Java中異常?1)如果是可以預料到的,通過簡單的運算式修改就可以處理好的,就不必使用異常(如數(shù)組越界錯誤)2)因為異常佔用了JAVA程式的許多處理時間,簡單的測試比處理異常的效率更高。所以,建議將異常用於你無法預料或無法控制的情況。(如打開遠程檔,而Error異常就不必處理)(Error的實例是JAVA運行時環(huán)境(JVM)中的內(nèi)部錯誤,通常是致命的,對它們你無法做太多的工作)3)花費時間處理異??赡軙绊懩愕拇a的執(zhí)行速度,但在稍後的專案和在越來越大的程式中再次使用你的類時,這種額外的小心將會給你帶來極大的回報。(當然JAVA類庫是小心編寫的,它已經(jīng)足夠強壯)異常體系結(jié)構(gòu)2-1所有異常類型都是內(nèi)置類Throwable的子類用於Java運行時系統(tǒng)來顯示與運行時系統(tǒng)本身有關的錯誤用於用戶程式可能捕獲的異常,也是用來創(chuàng)建用戶異常類型子類的類。Error類對象由Java虛擬機生成並拋出;Exception類對象由應用程式處理或拋出。異常體系結(jié)構(gòu)2-2Java中的異常是實際的對象,是從類Throwable繼承而來的派生類的實例。Throwable類有兩個子類:Error和ExceptionJava的Exception類實現(xiàn)了Throwable介面並提供一些有用的特性來處理異常,特別是為消息提供了管道,包含一個棧跟蹤。類Exception的子類分為兩組:1)運行時異常(類RuntimeException的子類)通常是因為代碼不夠強壯而發(fā)生。各種運行時異常都繼承Exception類,負責記錄拋出的異常資訊。2)其他異常(例如:IOException)常見異常及其用途2-1異常說明RuntimeException
java.lang包中多數(shù)異常的基類
ArithmeticException
算術錯誤,如除以0
IllegalArgumentException
方法收到非法參數(shù)
ArrayIndexOutOfBoundsException
數(shù)組下標出界
NullPointerException
試圖訪問
null對象引用
SecurityException
試圖違反安全性
ClassNotFoundException不能加載請求的類常見的異常及其用途2-2異常說明AWTException
AWT中的異常
IOException
I/O異常的根類
FileNotFoundException
不能找到檔
EOFException
檔結(jié)束
IllegalAccessException
對類的訪問被拒絕
NoSuchMethodException
請求的方法不存在
InterruptedException
線程中斷
Java異常處理基礎Java異常處理機制採用一個統(tǒng)一和相對簡單的拋出(throw)和處理錯誤的機制。如果一個方法本身能引發(fā)異常,當所調(diào)用的方法出現(xiàn)異常時,調(diào)用者可以捕獲(catch)異常使之得到處理;也可以回避異常,這時異常將在調(diào)用的堆疊中向下傳遞,直到被處理。異常處理模型由五個關鍵字try、catch、throw、throws
和
finally
處理。Java中可用於處理異常的兩種方式:自行處理:可能引發(fā)異常的語句封入在try塊內(nèi),而處理異常的相應語句則封入在catch塊內(nèi)?;乇墚惓#涸诜椒暶髦邪瑃hrows
子句,通知潛在調(diào)用者,如果發(fā)生了異常,必須由調(diào)用者處理。
如本級調(diào)用者不能處理,就再上傳到上級處理,即使用調(diào)用鏈系統(tǒng)。try-catch塊示例
publicclassExceptionDemo{
publicstaticvoidmain(Stringargs[]){
try{
intc=calculate(9,0);
System.out.println(c);
}
catch(Exceptione){
System.err.println("發(fā)生異常:"+e.toString()); e.printStackTrace();
} }
staticintcalculate(inta,intb){ intc=a/b;returnc; }}
調(diào)用方法calculate,將引發(fā)一個異常在catch塊中處理異常輸出結(jié)果多個catch塊單個代碼片段可能會引起多個錯誤。可提供多個catch塊分別處理各種異常類型。...try{}catch(ArrayIndexOutOfBoundsExceptione){}catch(Exceptione){}...ArrayIndexOutOfBoundsException類為Exception類的子類,但是如果異常屬於ArrayIndexOutOfBoundsException類將執(zhí)行第一個catch塊,之後控制將轉(zhuǎn)向try/catch塊之後的語句,所以始終不會執(zhí)行第二個catch塊。
多個catch塊示例classCatch22{
public
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 隴南清水混凝土施工方案
- 樂都水泥滲水磚施工方案
- 年產(chǎn)1000萬米紡織壞布建設可行性研究報告申請建議書
- 2025年中國甘草次酸市場競爭格局分析及投資方向研究報告
- 水楊酸甲酯項目建議書(立項報告)
- 裝修人工費季節(jié)性用工合同
- 畫室裝修改造委托書
- 陶瓷店裝修合同費用方案
- 2025年新型樹林承包與生態(tài)修復合同2篇
- 2025年度運動健身產(chǎn)品限時團購合同范本3篇
- 2024-2025學年成都高新區(qū)七上數(shù)學期末考試試卷【含答案】
- 定額〔2025〕1號文-關于發(fā)布2018版電力建設工程概預算定額2024年度價格水平調(diào)整的通知
- 2025年浙江杭州市西湖區(qū)專職社區(qū)招聘85人歷年高頻重點提升(共500題)附帶答案詳解
- 《數(shù)學廣角-優(yōu)化》說課稿-2024-2025學年四年級上冊數(shù)學人教版
- “懂你”(原題+解題+范文+話題+技巧+閱讀類素材)-2025年中考語文一輪復習之寫作
- 2025年景觀照明項目可行性分析報告
- 2025年江蘇南京地鐵集團招聘筆試參考題庫含答案解析
- 2025年度愛讀書學長參與的讀書項目投資合同
- 電力系統(tǒng)分析答案(吳俊勇)(已修訂)
- 化學-河北省金太陽質(zhì)檢聯(lián)盟2024-2025學年高三上學期12月第三次聯(lián)考試題和答案
- 期末復習試題(試題)-2024-2025學年四年級上冊數(shù)學 北師大版
評論
0/150
提交評論