|
Java 層次結(jié)構(gòu)
Java是一種解釋性的語言,但不能直接對源代碼進(jìn)行解釋,還需要對源代碼進(jìn)行初步的編譯。源代碼編譯后的結(jié)果是字節(jié)碼,不能在操作系統(tǒng)上直接運行,這兩者之間需要有一個解釋器層面,通過這一層解釋器,就可以把JAVA的字節(jié)碼翻譯成本機(jī)代碼,然后再執(zhí)行。
通過Java的解釋器,保證了java程序的可移植性。Java解釋器隨不同平臺而變化,平臺不同,但是提供的共同的Java編程接口,保證可移植性。
Java 開發(fā)流程
Java語言的源代碼以字符的方式存放在*.java的文件中,源代碼不能執(zhí)行,必須經(jīng)過java編譯器進(jìn)行編譯,其編譯結(jié)果稱為字節(jié)碼(Byte Code),存放在*.class的文件中,這些字節(jié)碼可以在帶有Java編譯器的平臺上運行。有些流浪器還支持Java語言,因此還可以 java嵌入到HTML語言中,并在瀏覽器中執(zhí)行。如Hotjava瀏覽器。
Java 開發(fā)環(huán)境
SUN公司為我們提供了一套Java開發(fā)工具(JDK),包括Java編譯器、解釋器、調(diào)試器等,使用它可以開發(fā)各種java應(yīng)用。
Java編譯器:java編譯器是用來將Java源文件編譯成可執(zhí)行的Java字節(jié)碼(bytecode)。*.java-->*.class。源文件中的每個類在編譯后都將產(chǎn)生一個class文件,這就意味著很多情況下,一個java源代碼文件可能編譯生成多個class文件。
Java解釋器:對編譯生成的bytecode格式的可執(zhí)行程序的運行提供支持,java解釋器使用環(huán)境變量CLASSPATH來確定用戶定義的類所在的目錄,CLASSPATH包含一些以分號隔開的用戶定義的java類的系統(tǒng)路徑,通常,java工具使用CLASSPATH來找到用戶定義的類。
Java技術(shù)的分類
(1)J2SE:Java 2 Standard Edition
支持所有JAVA標(biāo)準(zhǔn)規(guī)范中所定義的核心類函數(shù)庫和所有的JAVA基本類別。J2SE定位在客戶端程序的應(yīng)用上。
(2)J2EE:Java 2 Enterprise Edition
在J2SE的基礎(chǔ)上增加了企業(yè)內(nèi)部擴(kuò)展類函數(shù)庫的支持,比如支持Servlet/JSP的javax.servletr.*和EJB的 javax.ejb.*的類函數(shù)庫。J2EE定位在服務(wù)器端程序的應(yīng)用上。
(3)J2ME:Java 2 Micro Edition
只支持JAVA標(biāo)準(zhǔn)規(guī)范中所定義的核心類函數(shù)庫的子集。定位于嵌入式系統(tǒng)的應(yīng)用上。
Java 程序分類
java程序可以分為兩類:Applet與Stand-alone;
Applet:是在編譯后通過Applet View或支持Java的WWW瀏覽器來運行Java程序;
Stand-alone:程序是在操作系統(tǒng)環(huán)境下可直接運行的java程序,與傳統(tǒng)的C/C++非常類似。
J2SE分為:
Java Application
Java Applet
【Stand-alone就是在開發(fā)環(huán)境上編好代碼之后,直接點擊運行,就可以在開發(fā)環(huán)境上看到結(jié)果】
【Java Applet:通過瀏覽器訪問,就是可以通過在開發(fā)環(huán)境上通過軟件運行Tomcat, 相當(dāng)于建立一個服務(wù)器,就可以通過網(wǎng)頁進(jìn)行訪問這個JAVA工程】
【Java Application】
Java 編程基礎(chǔ)
Java是面向?qū)ο缶幊痰囊婚T語言; 對象是包含了數(shù)據(jù)data(屬性Property)與操作(Method)的軟件模型;
對象是對客觀的抽象映射。
消息是對象間交互和傳送信息的載體,對象是面向?qū)ο蟮能浖幕灸P汀?/font>
消息包含的要素: 1.消息要作用的對象 2.消息要完成的操作名 3.操作所需的參數(shù)。
android應(yīng)用程序的入口
android應(yīng)用程序中,并沒有像c++和java這樣有main函數(shù)來作為應(yīng)用程序的入口.android應(yīng)用程序提供的是入口Activity,而非入口函數(shù). 在eclipse中創(chuàng)建一個android應(yīng)用程序的時候,默認(rèn)會創(chuàng)建一個Activity.這個Activity實際上就是入口Activity了.從哪里定義它是Activity呢?AndroidManifest.xml文件中定義了整個android應(yīng)用所包含的Activity.默認(rèn)生成的Activity的定義為:
<activity android: android:label="@string/app_name">
<intent-filter>
<action android: />
<category android: />
</intent-filter>
</activity>
android應(yīng)用程序?qū)嶋H上是由多個Activity按照一定的次序拼裝起來的,只不過拼裝的過程中,后臺傳遞了一些數(shù)據(jù),使得各個Activity之間能比較好的銜接起來。
action節(jié)點中的android.intent.action.MAIN表明它所在的Activity是整個應(yīng)用程序的入口點.而category中的android.intent.category.LAUNCHER意思是把這個Activityg歸屬到加載器類,即把這個Activity標(biāo)注為自動會加載和啟動的Activity,這樣程序啟動時候就先加載這個Activity了.
面向?qū)ο缶幊痰?個特性
(1)封裝性:將數(shù)據(jù)和對數(shù)據(jù)的操作封裝到一起。
(2)繼承性:子類可以繼承父類的屬性和功能,同時又可以增添自己的屬性和功能。
(3)多態(tài)性:即多種形態(tài)。有2中意義的多態(tài):一種是操作名稱的多態(tài),即方法的重載。另一種是和繼承有關(guān)的多態(tài),是指統(tǒng)一操作被不同類型的對象調(diào)用時可能產(chǎn)生不同的行為,即運行時刻多態(tài)。方法重載,運行時刻多態(tài)。
Java 程序結(jié)構(gòu)
java的程序在結(jié)構(gòu)上看,兩部分: 1.引入庫聲明區(qū) 2.類的定義區(qū)
可以引入一個具體的類名或者是相關(guān)的類庫名。
Java系統(tǒng)提供的類庫也稱為java API,它是系統(tǒng)提供的已實現(xiàn)的標(biāo)準(zhǔn)類的集合,按其用途被劃分為若干個不同的包。J2SE中將java API主要分成3個包:
(1)java核心包:java.*:包括:applet、awt、beans、io、lang、math、net、sql、text、util等。
(2)java擴(kuò)展的包:javax.*:包括:swing、security、rmi等。
(3)組織的包:org.*:主要用于CORBA和XML處理。
除了引入庫聲明以外,所以的變量、語句、操作都在類中。
在類定義中,有變量和操作函數(shù)兩個部分。在類的定義中,有兩個與類同名的操作函數(shù)--構(gòu)造函數(shù)(一個不帶參數(shù)、一個帶參數(shù):可以適應(yīng)不同的場合):完成初始化工作,如變量賦值等。 析構(gòu)函數(shù):在對象被刪除時調(diào)用。析構(gòu)函數(shù)可以沒有,但是養(yǎng)成良好的編程習(xí)慣,應(yīng)該加上。
Java 類定義
|
|