基于J2SE 7.0進行GUI編程_第1頁
基于J2SE 7.0進行GUI編程_第2頁
基于J2SE 7.0進行GUI編程_第3頁
基于J2SE 7.0進行GUI編程_第4頁
基于J2SE 7.0進行GUI編程_第5頁
已閱讀5頁,還剩267頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

Java教程目錄第一章Java入門第二章面向對象編程第三章標識符、關鍵字和數(shù)據(jù)類型第四章表達式和流程控制基于J2SE7.0進行GUI編程第五章數(shù)組第六章類設計第七章高級類特性第八章異常和斷言第十章建立JavaGUI第十一章GUI事件處理第十二章基于GUI的應用程序第十三章線程第十四章高級I/O流第十五章網(wǎng)絡連接第十六章注解與反射第十七章JDBC簡介第十八章使用JDBC高級特性第九章基于文本的應用程序基于J2SE7.0進行GUI編程----引言一、Java發(fā)展歷史

1990年12月,Sun的工程師Patrick(帕特里克)和JamesGosling(詹姆斯.加索林)為嵌入式設備開發(fā)一種新的基礎平臺技術,項目名為"Green",JamesGosling在使用C++做開發(fā)時,碰了一頭包,所以決定開發(fā)一種新的編程語言來實現(xiàn)這個項目,這個小語言隨后被命名為Oak(橡樹)。

1992年9月,Oak語言連同GreenOS(操作系統(tǒng))和一些應用程序被用于投標時代華納公司的機頂盒項目,但因為功能太強大給客戶太多權利遭遇失敗。

1993年的美國,互聯(lián)網(wǎng)發(fā)展迅猛,1994年,Sun定位互聯(lián)網(wǎng),與此同時Sun將Oak命名為Java(爪哇,一種咖啡的名稱),并用此針對互聯(lián)網(wǎng)開發(fā),誕生了Applet(瀏覽器java小應用程序),在瀏覽器端炫目的表現(xiàn)征服了互聯(lián)網(wǎng)開發(fā)者,并一發(fā)不可收拾。

1995年,Sun正式對外公布了Java,并且發(fā)布了JDK1.0,即JavaDevelopmentKit,Java開發(fā)人員工具包。這種外形酷似C++,卻包含一顆Smalltalk般純潔的面向對象之心的全新程序設計語言及其平臺,幾乎在一夜之間就成為軟件產(chǎn)業(yè)的新寵兒。

1996年,Sun正式發(fā)布Java1.0,同時召開第一屆"JavaOne"大會。引起了當時眾多知名廠商追隨,包括NetScape(網(wǎng)景)、惠普、IBM、Oracle、Sybase等公司。

1997年,Sun發(fā)布JDK1.1,微軟VJ++6.0加入支持、JBuilder加入支持?;贘2SE7.0進行GUI編程----引言1998-1999年,Sun發(fā)布JDK1.2(Java2SDKv1.2StandardEdition),將Java版本更名為2.0。同時將Java定位三個方向,即Java2StandardEdition(J2SE),Java2EnterpriseEdition(J2EE),Java2MicroEdition(J2ME)。J2SE定位于基于桌面應用開發(fā),J2EE定位于基于企業(yè)級服務器端應用開發(fā),J2ME定位于嵌入式設備(包括手機)應用開發(fā)。其中J2EE后來得到了飛速發(fā)展,同時J2ME也在嵌入式開發(fā),猶其手機開發(fā)中得到了廣泛應用,但J2SE中的AWT(抽象窗口工具包)/Swing(圖象處理包)卻使終被人們所詬病。

2000-2001年,Sun發(fā)布J2SE(Java2StandardEdition)1.32001年,Sun發(fā)布J2EE(Java2EnterpriseEdition)1.32002年,Sun發(fā)布J2SE1.4,自此Java的計算能力有了大幅提升。2002年,Sun發(fā)布J2EE1.42004年,Sun發(fā)布J2SE1.5,并同時更名為J2SE5.0

2005年,JavaOne大會召開,SUN公司公開JavaSE6.0,并同時將Java的各種版本名稱中的數(shù)字"2"取消:J2EE更名為JavaEE,J2SE更名為JavaSE,J2ME更名為JavaME。

2006年,SUN公司宣布Java全線采納GNUGeneralPublicLicenseVersion2(GNU通用公共許可證),從而公開了Java的源代碼。到現(xiàn)在為此,Java最成熟的應用仍然J2EE,在嵌入式設備中J2ME發(fā)展的也相當不錯,J2ME需要它自己的JDK,而J2EE需要以J2SE做為基礎。目前J2EE用的最多的還是J2EE1.4版本,JavaEE是J2EE的最新版本,引入了JDK5.0及6.0新的特性與技術。

Sun是java的發(fā)明者,但是卻幾乎沒有從java身上掙到一分錢,java的最大受益者是IBM,其次是Bea、oracle等?;贘2SE7.0進行GUI編程----引言

二、Java的三個版本:Java2.0(JDK1.2)開始,JDK分為三個版本J2EE(企業(yè)級版本)J2SE(標準版本)J2ME(微型版本)J2ME基于J2SE7.0進行GUI編程----第一章Java入門本章主要介紹了Java的特性、Java核心技術的實現(xiàn)及功能,并通過一個簡單的Java應用程序介紹了如何對Java程序進行編寫、編譯及運行,同時對編譯及運行時錯誤進行處理。1.1什么是JavaTM技術?首先,Java是一種編程語言;其次,Java還是一種開發(fā)環(huán)境;再次,Java還是一種應用程序環(huán)境;最后,Java是一種部署環(huán)境。

Java編程語言的語法與C++(包括C#)的語法相似。任何傳統(tǒng)編程語言所能創(chuàng)建的應用程序,都可以用Java編程來創(chuàng)建。作為開發(fā)環(huán)境,Java提供了一系列的工具來實現(xiàn)軟件開發(fā)。包括:Java編譯器、解釋器、產(chǎn)品文檔生成器、類文件打包工具等。

Java提供了對多種環(huán)境的支持,包括萬維網(wǎng)(Web)及瀏覽器環(huán)境,在萬維網(wǎng)(Web)服務器端Java提供了J2EE技術以開發(fā)基于互聯(lián)網(wǎng)的企業(yè)級應用開發(fā)環(huán)境。在瀏覽器環(huán)境,Java提供了Java應用小程序(Applet)來實現(xiàn)瀏覽器端特殊效果及功能的開發(fā),Applet駐留在Web服務器中,但在瀏覽器端被下載并于瀏覽器中執(zhí)行,而且它可以與HTML進行交互。

Java應用程序是獨立的應用程序,并可以跨平臺在多種環(huán)境中被執(zhí)行。只要在相應的平臺中安裝了該平臺的Java運行時環(huán)境(JRE,JavaRuntimeEnvironment)。Sun公司、IBM、Bea、Oracle等都開發(fā)了相應版本的JRE,可用于不同的操作系統(tǒng)及平臺。Java遵循"一次編寫,到處運行"的跨平臺理論,這使得Java風靡全球?;贘2SE7.0進行GUI編程----第一章Java入門

Java有兩個主要的部署環(huán)境,第一個是Java2SDK(Java2軟件開發(fā)工具包)中的JRE,它提供了標準的Java開發(fā)、編譯及運行環(huán)境,是最主要的部署環(huán)境;第二個是適用于Web瀏覽器的JRE,大多數(shù)瀏覽器廠商都提供了瀏覽器環(huán)境的解釋器和運行環(huán)境JRE。1.2Java技術的主要目標

Java語言由C++發(fā)展而來,但Java語言是簡單的易于使用的編程語言。從歷史角度來說:

Java語言="C++語言"–"C++中的復雜性和奇異性"+"安全性和可移植性"1、易于編程的語言

1)摒棄了C++中容易引發(fā)程序錯誤的一些特性及復雜特性,如指針及內(nèi)存管理,并能進行自動內(nèi)存管理,不用象C++一樣需要自己管理內(nèi)存的分配與釋放。

2)完全面向對象最核心的東西是類與對象OO語言以類的形式組織代碼并具有封裝、繼承、多態(tài)特性

3)、提供了豐富的類庫,即SDK(SoftwareDevelopmentKit,軟件開發(fā)包),使用這些類庫有助于你簡化代碼

2、解釋環(huán)境的特性:

1)、開發(fā)速度大大提高:縮短編譯—鏈接—加載時間,縮短測試周期

2)、代碼可移植性:解釋環(huán)境執(zhí)行的是非常接近于機器語言代碼的Java二進制代碼,所以僅與JVM(JavaVirtualMachine)有關,與操作系統(tǒng)無關,這導致代碼可以容易在多個操作系統(tǒng)中運行。五月花NIIT軟件開發(fā)基于J2SE7.0進行GUI編程----第一章Java入門

3、支持多線程編程,提高應用程序性能

4、允許程序下載代碼模塊,使得在程序運行時周期內(nèi)可動態(tài)改變程序的方法

5、通過檢查加載的代碼模塊來確定代碼安全性(類加載器)

為了實現(xiàn)上述Java目標與特性,Java使用了自己獨立的核心技術:

1、JVM:JavaVirtualMachine虛擬機,這是Java技術得以實現(xiàn)的最重要的技術和核心技術,不同的操作系統(tǒng)甚至手機操作系統(tǒng)都有不同的JVM版本,只要安裝了相應版本的JVM,你的系統(tǒng)就支持Java程序。JVM通常是集成中JRE中。2、垃圾回收(GC):

Java使用垃圾回收技術實現(xiàn)自動內(nèi)存管理、碎片收集,防止了內(nèi)存分配問題,提高了開發(fā)效率。3、Java運行時環(huán)境JRE:通過JRE對程序進行解釋、實時編譯從而執(zhí)行Java代碼。

4、JVM應用程序接口(API):即Java核心類庫1.2.1Java虛擬機JVM

JVM指的是在真實的計算機中使用用軟件模擬實現(xiàn)的一種虛擬機器。JVM只能運行非常接近本地硬件及操作系統(tǒng)的二進制代碼(字節(jié)碼,bytecode),這些代碼必須存儲在.class文件中,每個.class文件最多包含一個public類,這個類我們稱之為主類。

JVM提供了編譯所有Java技術代碼的硬件平臺規(guī)范,這個規(guī)范與任何一個具體的操作系統(tǒng)及硬件都沒有任何關系,所以JVM是使用Java軟件技術規(guī)范實現(xiàn)的通用機。基于J2SE7.0進行GUI編程----第一章Java入門通過使用Java編譯器(javac程序)可以將Java源程序文件(.java文件)編譯為Java字節(jié)碼文件(.class文件)。字節(jié)碼是JVM的這個虛擬機器的機器語言指令代碼,但它并不是當前操作系統(tǒng)及硬件能夠直接執(zhí)行的機器語言代碼。

Java應用程序主要包括兩大類:JavaApplication應用程序和JavaApplet小應用程序。分別運行于標準平臺和瀏覽器環(huán)境。無論哪種應用程序,都需要一個JVM的實現(xiàn)。

JVM規(guī)范定義為:一套指令系統(tǒng)(類似于CPU指令系統(tǒng))、一組寄存器、類文件格式、運行時堆棧、垃圾回收堆、一個內(nèi)存區(qū)、致命錯誤報告機制和高精度計時支持。

JVM的代碼格式由簡潔、高效的字節(jié)碼構成。Java仍然是一個嚴格的面向對象的編程語言,所以絕大部份錯誤都將在編譯時被檢查出來。這保證了字節(jié)碼的健壯與安全特性。不同的操作系統(tǒng)平臺有不同的JVM。而且不同的公司有不同JVM,IBM公司有IBM公司的JVM,Bea公司有Bea的JVM(JRockit),Sun公司有Sun的JVM(Hotspot)。無論在linux/unix或Windows平臺上,Bea的JRockit與IBM的JVM性能表現(xiàn)不相上下,Bea稍快。而Sun的JVM(Hotspot)性能都要慢很多,Sun的Hotspot在Linux/unix下的表現(xiàn)要比在Windows下的表現(xiàn)差。所以Sun的JVM比較適合做開發(fā),而客戶目標平臺上常常使用Bea或者IBM的JVM。

Java字節(jié)碼沒有保存特定平臺的信息,具體與特定平臺交互由JVM實現(xiàn)?;贘2SE7.0進行GUI編程----第一章Java入門注:SPARC,全稱為"可擴充處理器架構"(ScalableProcessorARChitecture),是RISC微處理器架構之一。是Sun公司推出的,最多支持1000個處理器CPU。SPARC處理器是Sun的命脈,以UltraSPARC為基礎的Unix服務器為Sun帶進大量營收收入,包括在這個平臺上Sun實現(xiàn)的SolarisOS操作系統(tǒng)。MIPSPPC是嵌入式設備處理器,RTOS為嵌入式設備操作系統(tǒng),即實時操作系統(tǒng)?;贘2SE7.0進行GUI編程----第一章Java入門1.2.2垃圾回收在C、C++等語言中,程序員往往在編寫程序時,常常需要使用內(nèi)存、分配內(nèi)存,并且程序員還需要手工釋放所用的內(nèi)存,否則可能帶來系統(tǒng)崩潰和內(nèi)存泄露等嚴格安全及穩(wěn)定問題。而java支持垃圾回收,程序員現(xiàn)在可以不用再為手工釋放程序占用的內(nèi)存而煩惱了,這將由垃圾回收器(GC)幫助我們自動完成,垃圾回收器自動檢查對象是否被引用,如果對象沒有被任何其它對象引用,垃圾回收器將回收此對象。垃圾回收在JavaVM的整個生命周期中自動進行,它消除了手工釋放內(nèi)存的問題并避免了內(nèi)存泄露,大大提高了軟件的開發(fā)周期。不同的JVM對垃圾回收的實現(xiàn)可能不同。1.2.3Java運行時環(huán)境JRE一、JDK技術:JDK(JavaSoftwareDevelopmentKit,Java軟件開發(fā)包)

JDK(JavaSoftwareDevelopmentKit)是SunMicrosystems針對Java開發(fā)員的產(chǎn)品。自從Java推出以來,JDK已經(jīng)成為使用最廣泛的JavaSDK(SoftwareDevelopmentkit)。JDK是整個Java的核心,包括了Java運行環(huán)境(JavaRuntimeEnvironment,即JRE),一堆Java工具和Java基礎的類庫(例如rt.jar)。不論什么Java應用服務器實質都是內(nèi)置了某個版本的JDK。因此掌握JDK是學好Java的第一步。最主流的JDK是Sun公司發(fā)布的JDK,除了Sun之外,還有很多公司和組織都開發(fā)了自己的JDK,例如IBM、BEA等。JDK的主要目的是利用JDK所提供的工具將Java源程序(.java文件)基于J2SE7.0進行GUI編程----第一章Java入門編譯為Java字節(jié)碼文件(.class文件),同時JDK也提供了我們開發(fā)人員所必須的Java基礎類庫。JDK從1.0到現(xiàn)在的1.6,經(jīng)歷了多個版本,JDK從1.5版本開始不再稱之為1.5了而是稱之為5.0,例如JDK1.6已經(jīng)改名為JDK6.0,雖然有很多人仍然沿用習慣,但Sun官方版本命名已改變。在JDK5.0中,Java引入了枚舉、泛型、注解等很多新特性。每個JDK版本安裝后,都會自動安裝相應版本的JRE。二、JRE技術(JavaRuntimeEnvironment,Java運行環(huán)境)JRE為JavaRunTimeEnvirment的簡稱,它是指運行JAVA程序所必須的環(huán)境的集合,包含JVM標準實現(xiàn)及Java核心類庫。JRE又分為兩類:

1)、JavaApplication(Java應用程序)依賴的JRE(JavaRuntimeEnvironment):

JavaRuntimeEnvironment(JRE)是可以在其上運行、測試和傳輸應用程序的Java平臺。它包括Java虛擬機、Java平臺核心類庫和支持文件(JavaAPI)。它不包含開發(fā)工具--編譯器、調(diào)試器和其它工具,僅包含運行環(huán)境。

JavaApplication包括Java開發(fā)的桌面應用程序,服務器端組件,Web應用程序、手機應用程序、嵌入式應用程序等。

2)、JavaApplet(Java小應用程序)依賴的JRE(JavaPlug-in瀏覽器插件):JavaPlug-in瀏覽器插件主要目的是為了便于在瀏覽器中運行JavaApplet。JavaPlug-in軟件允許JavaApplet和JavaBean組件在相應瀏覽器中運行。JavaPlug-in插件可用于Netscape

Navigator、FireFox和MicrosoftInternetExplorer等支持Java的所有瀏覽器?;贘2SE7.0進行GUI編程----第一章Java入門JavaApplet(Java小應用程序)是指只能在客戶端瀏覽器中運行的Java小程序。如果你要自行開發(fā)Java軟件,請下載JDK。在JDK中附帶有JRE。注意由于Microsoft對Java的支持不完全,請不要使用IE自帶的Java虛擬機來運行Applet,務必安裝一個相應瀏覽器版本的JRE或JDK。

在客戶目標計算機上,我們只需要安裝相應版本的JRE就可以讓Java程序或者Applet運行起來。JRE的版本一般與JDK版本相對應,例如JDK1.6與JRE1.6等。下圖展示了JRE以及JRE是如何增強代碼安全的。編譯javac從硬盤、網(wǎng)絡或其它資源加載類加載器字節(jié)碼校驗器解釋器運行時底層硬件java運行時編譯得到字節(jié)碼文件字節(jié)碼文件被加載解釋執(zhí)行在運行時,Java字節(jié)碼被加載、檢驗并在解釋器中運行。如果執(zhí)行Applet,則瀏覽器下載字節(jié)碼文件,在瀏覽器內(nèi)存的JVM中解釋執(zhí)行。解釋器需要實現(xiàn)兩大代能:執(zhí)行字節(jié)碼以及正確調(diào)用底層硬件資源。基于J2SE7.0進行GUI編程----第一章Java入門

在Java運行時環(huán)境(JRE)中,需要將Java字節(jié)碼解釋然后再執(zhí)行,然而這降低了代碼的執(zhí)行速度。因此,Java將字節(jié)碼在運行時編譯成本地機器語言代碼,并直接在硬件平臺上執(zhí)行,從而提高代碼執(zhí)行速度,這樣代碼的運行速度將非常接近于C以及C++,但因為要在運行時進行編譯,這會帶來少許加載時間的延遲,以使得代碼能夠編譯為本機代碼。這需要使用Java的JIT(JustInTime)即時編譯器來完成。編譯javac從硬盤、網(wǎng)絡或其它資源加載類加載器字節(jié)碼校驗器解釋器運行時底層硬件java運行時編譯得到字節(jié)碼文件字節(jié)碼文件被加載解釋執(zhí)行帶有即時編譯器(JIT)的JRE代碼編譯及執(zhí)行過程JIT代碼生成器基于J2SE7.0進行GUI編程----第一章Java入門1.2.4JVM任務

JVM主要有三個任務:加載代碼、校驗代碼、執(zhí)行代碼。一、類加載器-加載代碼:類加載器加載程序執(zhí)行所需的全部類。類加載器通過將本地文件系統(tǒng)的類命名空間與網(wǎng)絡源導入的類命名空間分隔開來,以增加安全性。由于總是首先加載本地類,因而可以限制任何"特洛依木馬"程序的運行。當全部類被加載后,可執(zhí)行文件的內(nèi)存布局就確定了。這時,符號引用被賦值為具體的內(nèi)存地址,并創(chuàng)建了內(nèi)存變量的查詢表。由于內(nèi)存布局在運行時產(chǎn)生,Java技術解釋器增加了保護,以防止對受限代碼區(qū)的未授權訪問,從而提高了程序的安全。二、字節(jié)碼校驗器:

Java軟件代碼在計算機上實際運行之前要經(jīng)過幾次測試。JVM通過字節(jié)碼校驗器對代碼進行測試,以檢查非法代碼段,以防止非法偽造指針、違反對象訪問權限或試圖改變對象類型的代碼。所有網(wǎng)絡導入的類文件都要經(jīng)過字節(jié)碼校驗器的驗證,以提高安全。校驗過程:字節(jié)碼校器對程序將進行四次校驗,以確保代碼符合JVM規(guī)范并且不違反系統(tǒng)的完整性。如果校驗器在完成四次校驗后未返回錯誤消息,則說明:

1、類符合JVM規(guī)范指定的類文件格式

2、沒有訪問權限違例

3、代碼未引起操作數(shù)堆棧上溢或下溢

4、所有操作代碼的參數(shù)類型是正確的

5、無非法數(shù)據(jù)轉換發(fā)生,如將整數(shù)轉換為對象引用然后,JVM開始解釋執(zhí)行代碼?;贘2SE7.0進行GUI編程----第一章Java入門1.3Java的工作方式

1、文件類型.java Java源代碼文件.class 二進制字節(jié)碼文件

2、運行機制對于大多數(shù)語言,要運行程序,要么編譯程序要么解釋程序;而Java語言的程序則既要被編譯又要被解釋。3、其工作方式為:

1)、編譯程序將Java源程序編譯為字節(jié)碼(bytecode)程序;

2)、解釋程序(Java虛擬機中的解釋程序)分析并運行字節(jié)碼程序。

基于J2SE7.0進行GUI編程----第一章Java入門1.4Java開發(fā)工具:1、記事本+JDK:適合初學者,并能了解Java程序執(zhí)行邏輯

2、JCreator:適合初學者,一個簡單免費的IDE(集成開發(fā)環(huán)境)

3、JBuilder:Bland公司非常強大的IDE(商業(yè)的集成開發(fā)環(huán)境),已走下坡路

4、NetBeans:Sun公司開源免費IDE,速度比較慢,適合做桌面開發(fā)

5、Eclipse:IBM資助的開源免費IDE,是目前企業(yè)主流開發(fā)平臺,最新版3.5及JavaEEforEclipse。

1.5、JDK的下載與安裝:為了鼓勵使用Java語言開發(fā)軟件,SunMicrosystems公司提供了免費開源的軟件開發(fā)工具包(SDK),其中包括編譯器、虛擬機、調(diào)試器等開發(fā)工具,稱為Java開發(fā)工具包或JDK。JDK(可從下載最新版本)jdk6.0

基于J2SE7.0進行GUI編程----第一章Java入門1.6安裝JDK后產(chǎn)生如下目錄結構:\bin目錄:Java開發(fā)工具,包括Java編譯器、解釋器等\demo目錄:一些實例程序\lib目錄:Java開發(fā)類庫\jre目錄:Java運行環(huán)境,包括Java虛擬機、運行時類庫等1.7JDK實用程序:1、javacJava編譯器,將Java源程序編譯成字節(jié)碼2、javaJava解釋器,直接從類文件執(zhí)行Java應用程序,即application3、appletviewer小程序瀏覽器,執(zhí)行html文件上的Java小程序,即Applet1.8設置環(huán)境變量:

1、JAVA_HOME:JAVA_HOME環(huán)境變量主要設置JDK的安裝目錄這個環(huán)境變量主要為其它java環(huán)境變量服務,使用:%JAVA_HOME%2、PATH:…;%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin;

使得在Windows命令窗口下能直接使用bin中的實用程序。在Windows操作系統(tǒng)"運行"中輸入cmd進入命令窗口,在提示符下輸入:

c:\>java-version如果能夠看到java版本提示信息,表示環(huán)境變量配置成功?;贘2SE7.0進行GUI編程----第一章Java入門

3、CLASSPATH:為java加載類(classorlib)路徑,只有類在CLASSPATH中,java命令才能識別。設為:.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar1.9一個簡單的Java應用程序HelloWorld一、程序示例:保存到c:\java\TestGreeting.java,代碼如下:publicclassTestGreeting{publicstaticvoidmain(String[]args){Greetinghello=newGreeting();hello.greet();}}保存到c:\java\Greeting.java,代碼如下:publicclassGreeting{publicvoidgreet(){System.out.println("Java,你好");}}基于J2SE7.0進行GUI編程----第一章Java入門二、TestGreeting應用程序:publicclassTestGreeting{publicstaticvoidmain(String[]args){Greetinghello=newGreeting();hello.greet();}}三、Greeting類publicclassGreeting{publicvoidgreet(){System.out.println("Java,你好");}}四、編譯和運行TestGreeting應用程序確保操作系統(tǒng)的Path環(huán)境變量增加了JDK安裝文件夾下的bin文件夾路徑。c:\java>javacTestGreeting.javac:\java>javaTestGreeting基于J2SE7.0進行GUI編程----第一章Java入門五、診斷編譯錯誤

1、編譯時錯誤

1)、javac:Commandnotfound環(huán)境變量Path沒有配置好,請在Path中增加jdk安裝文件夾下的bin文件夾的路徑

2)、語法錯誤:

如:System.out.printl("Java,你好");3)、類和文件命名錯誤:如果一個.java文件中包含一個public類,則該文件的主文件名必須與這個類名完全相同,包括大小寫。示例:

4)、類的個數(shù)每一個.java文件中只能聲明一個頂級非靜態(tài)的public類,且這個類的名稱必須與.java文件主文件名完全相同。如果在一個源文件.java中聲明了多個public類,將發(fā)生錯誤。每個.java文件中允許非public的類多個。2、運行時錯誤

1)、Can’tfindclassTestGreeting

java是嚴格區(qū)分大小寫的,這個運行時錯誤說明TestGreeting類沒有找到

2)、Exceptioninthread"main"java.lang.NoSuchMethodError:main這表示,解釋器要執(zhí)行的類沒有一個靜態(tài)的main方法,可能只有一個非靜態(tài)的main方法,你需要為這個main方法加上static關鍵字。或者是main方法的參數(shù)格式錯誤。基于J2SE7.0進行GUI編程----第一章Java入門六、在上面HelloWorld示例中,下圖演示了如何進行編譯及運行TestGreeting.javaGreeting.javaTestGreeting.classGreeting.classjavac也編譯JVMjava也加載UNIXJVMDOSJVMJavaOS可運行于多個平臺編譯運行時基于J2SE7.0進行GUI編程----第二章面向對象編程本章主要介紹了Java的類的層次結構、java中類的實現(xiàn)、類中成員、屬性、方法、構造器、包、使用JavaAPI在線文檔等相關知識,以及面向對象編程建模、軟件工程等概念。2.1軟件工程2.1.1軟件工程發(fā)展歷史軟件工程是一門異常困難且難以駕馭的學科。軟件工程的目的旨在通過讓代碼復用來使軟件系統(tǒng)的開發(fā)、維護與擴展更容易。軟件工程自從軟件誕生以來一直在發(fā)展,歷史如下:一、機器代碼(二十世紀四十年代末--現(xiàn)在)

二、高級語言(二十世紀五十年代--現(xiàn)在)操作系統(tǒng)(二十世紀六十年代--現(xiàn)在)

FortranLISPCCOBOLOS/360UNIXMacOSWindows

三、庫/函數(shù)API(二十世紀六十年代--二十世紀八十年代初)

NASTRANTCP/IPISAMX-WindowsOpenLook

四、面向對象的語言(二十世紀八十年代--現(xiàn)在)

SELFSmalltalkCommonLispObjectSystemEiffelC++Java

五、工具包/框架/對象API(二十世紀九十年代--現(xiàn)在)

Java2SDKAWT/J.F.C./SwingJiniJavaBeansJDBC從最早期的機器代碼,到后面的高級語言,到面向對象的編程語言及框架的誕生,目的都是使對軟件的開發(fā)更容易,對代碼的組織與維護、代碼的復用更方便。Java從1995年誕生后,發(fā)展至今有許多軟件技術和框架,并且現(xiàn)在還在不斷增加?;贘2SE7.0進行GUI編程----第二章面向對象編程2.1.2分析和設計階段軟件開發(fā)項目分為五個主要工作流程:需求捕獲、分析、設計、實現(xiàn)和測試。每一個階段都非常重要,但往往分析與設計階段對后續(xù)的實現(xiàn)與測試影響很大,因為在分析和設計階段確定了軟件開發(fā)的方向。在分析階段需要定義系統(tǒng)的功能任務,分析階段必須明確要操作的目標系統(tǒng)所涉及的對象以及對象間的行為和關系。設計階段需要定義系統(tǒng)并如何實現(xiàn)目標及功能任務,在該階段需要創(chuàng)建目標系統(tǒng)中的角色、活動、對象和行為模型,這可以使用統(tǒng)一建模語言(UML)來實現(xiàn)建模。

UML是一種大型且復雜的建模語言,主要用于設計階段,通過相應的UML建模軟件例如IBM的Rose建模軟件,可以方便實現(xiàn)軟件建模,并支持生成代碼。2.1.3分析和設計舉例:略2.1.4抽象軟件設計一直在從低級的構造向更高級發(fā)展??梢院喕统橄髞韺崿F(xiàn)這個發(fā)展。簡化就是在早期語言設計都構建高級語言或技術時,不使用原始的復雜的東西,而采用簡單的技術。抽象是指強制在公有接口后面隱藏私有實現(xiàn)的細節(jié)。抽象的要領導致了高級語言中子程序(函數(shù))的出現(xiàn),以及對象中函數(shù)與數(shù)據(jù)的配對。在更高級別上,抽象導致了框架和API的誕生與發(fā)展。基于J2SE7.0進行GUI編程----第二章面向對象編程2.1.5作為對象藍圖的類類是一種軟件藍圖,可以實例化到得對象,從而被使用。類與對象中允許包括屬性及方法,這稱之為類與對象中成員。類具有三大特性:封裝、繼承和多態(tài)特性。2.2聲明Java技術類:格式:

[訪問修飾符]class類名{//屬性定義部分

//構成器定義部分

//方法定義部分}

注:類名遵循變量的名稱規(guī)則,訪問修飾符只能使用public或<缺省>,public說明類可以被任意訪問。示例:

publicclassVehicle{privatedoublemaxLoad;publicvoidsetMaxLoad(doublevalue){maxLoad=value;}}基于J2SE7.0進行GUI編程----第二章面向對象編程2.3聲明屬性:在類中聲明格式:

[訪問修飾符]數(shù)據(jù)類型屬性名稱[=表達式|值];示例:

publicclassVehicle{ privateintx; privatefloaty=10000.0F; privateStringname="BatesMotel";}

注:private聲明為私有的屬性,只能供類本身使用?;贘2SE7.0進行GUI編程----第二章面向對象編程2.4聲明方法:在類中聲明格式:

[訪問修飾符]返回值數(shù)據(jù)類型方法名稱(類型1參數(shù)變量1,…,類型n參數(shù)變量n){//方法體

//允許使用return中止函數(shù)執(zhí)行,并返回值,格式:return;或return表達式;}

說明:返回值類型可以為void,表示返回無值。示例:

publicclassDog{ privateintweight; publicintgetWeight(){returnweight;} publicvoidsetWeight(intnewWeight){ if(newWeight>0){ weight=newWeight; }}}基于J2SE7.0進行GUI編程----第二章面向對象編程2.5訪問對象成員:格式:類名對象名=new類名();

對象名.成員;

對象名.成員函數(shù)();

示例:將使用前面的Dog類publicclassTestDog{publicstaticvoidmain(String[]args){ Dogd=newDog(); System.out.println("狗的體重為:"+d.getWeight());d.setWeight(42); System.out.println("狗的體重為:"+d.getWeight());d.setWeight(-42); System.out.println("狗的體重為:"+d.getWeight());}}基于J2SE7.0進行GUI編程----第二章面向對象編程2.6信息隱藏:技術:使用private、public等訪問修飾符。例如:有一個MyDate類,包括屬性:day、month和year。在UML(統(tǒng)一建模語言)中,類圖如右。實現(xiàn)如下:

publicclassMyDate{ publicintday; publicintmonth; publicintyear;}

然后如果客戶端代碼如下,會導致出現(xiàn)錯誤:

MyDated=newMyDate();d.day=32;//非法的日子d.month=2;d.day=30;//2月沒有30天d.day=d.day+1;//2月更沒有31天

因此,對于上述代碼的問題,最好是讓客戶端代碼不能直接訪問三個屬性。而采用setXyz()(在java中通常稱之為setter設置器)來設置三個屬性的值,并做驗證;采用getXyz()(在java中通常稱之為getter獲取器)來得到三個屬性的值。將三個屬性設置為私有private。類圖如右:d.setDay(32);//非法的日子,檢查后返回falsed.setMonth(2);d.setDay(30);//2月沒有30天返回falsed.setDay(d.getDay()+1);//2月更沒有31天返回false+day:int+month:int+year:intMyDate-day:int-month:int-year:intMyDate+getDay()+getMonth()+getYear()+setDay(int):boolean+setMonth(int):boolean+setYear(int):boolean基于J2SE7.0進行GUI編程----第二章面向對象編程2.7封裝:對于客戶端程序隱藏該隱藏的,開放該開發(fā)的就是封裝。這些要使用public、private這樣的訪問修飾符來實現(xiàn)。使用封裝特性,可以使對類的更改讓客戶端程序沒有私毫察覺。例如:對于上面的MyDate類的開發(fā)人員決定使用一個相對于某一天(紀元日)的過去的天數(shù)做為MyDate的日期存儲基礎,以實現(xiàn)日期的比較和日期間隔的輕松計算。而不再采用原來的年、月、日做為存儲基礎。則開發(fā)人員可以輕松更改,而客戶端程序不需要任何變動。類圖如右:-date:longMyDate+getDay():int+getMonth():int+getYear():int+setDay(int):boolean+setMonth(int):boolean+setYear(int):boolean-isDayValid(int):boolean基于J2SE7.0進行GUI編程----第二章面向對象編程2.8聲明構造器:構造器即構造函數(shù)。格式:

[訪問修飾符]類名(參數(shù)變量列表){//函數(shù)體;}

說明:訪問修飾符只能為public、protected或private。構造器不是方法,它們沒有返回值也不能被繼承。示例:publicclassDog{ privateintweight;publicDog(){ weight=42;} publicintgetWeight(){returnweight;} publicvoidsetWeight(intnewWeight){ if(newWeight>0){ weight=newWeight; }}}基于J2SE7.0進行GUI編程----第二章面向對象編程2.9缺省構造器:

java中每個類必須至少一個構造器,如果不為類編寫任何構造器,Java將為該類自動創(chuàng)建一個缺省的構造器,這個缺省構造器沒有任何參數(shù),且沒有任何語句。當擁有缺省構造器之后,對于類被實例化為對象可以直接如下格式任何:類名對象名=new類名();

注意:當手工為一個類編寫任何一個構造函數(shù)時,該類都將丟失Java為其創(chuàng)建的缺省構成函數(shù)。示例:classGreeting{publicGreeting(Strings){System.out.println("Java,你好1"+s);}publicvoidgreet(){System.out.println("Java,你好");}}publicclassTestGreeting{publicstaticvoidmain(String[]args){Greetinghello=newGreeting();hello.greet();}}基于J2SE7.0進行GUI編程----第二章面向對象編程2.10源文件布局:任何Java源程序文件均按照下列部份依次組織每一個Java源代碼文件。

[package名稱;]//包聲明部份

<import包路徑名;>*//包導入部份,也可使用多行同時導入多個包

<類聲明部份>+

說明:[]括起來的表示可出現(xiàn)可不出現(xiàn),<>括起來的表示必須出現(xiàn),*指示前面的部份出現(xiàn)>=0次(即可不出現(xiàn)),+指示前面的部份出現(xiàn)>=1次(即必須出現(xiàn))

必須嚴格按照這種代碼布局來編寫Java源程序。先聲明包,指定本文件中的所有類定義均位于該包空間中,以便于其它地方使用包空間加.對該文件中的類進行訪問,如果不聲明包,則該文件中所有類將被Java放入默認包空間空間中,不便于訪問;緊接著,導入本文件下面將要使用的包空間或包空間中的具體類,可以使用多行導入多個包空間或類,需要使用包空間或類的完全限定名稱,也可以使用包空間路徑.*,一次性導入該包空間中的所有類,當導入包空間或類后,對于該包空間下的類或直接導入的類,可以在下面代碼中直接使用類名,而不再需要完全限定名對類進行訪問,如果不使用import,則Java將僅僅導入java.lang這個包中的所有類。再下面是類聲明部份,在一個Java源文件中雖然允許同時聲明多個類,但建議還是一個類使用一個Java源文件來定義,并且Java源文件的名稱與類名完全相同。如果一個Java源文件中有多個類定義,則最多只能有一個public類,且該類的類名必須與該Java源文件名一致?;贘2SE7.0進行GUI編程----第二章面向對象編程示例:VehicleCapacityReport.javapackageshipping.reports;importshipping.reports.*;importjava.util.List;importjava.io.*;publicclassVehicleCapacityReport{privateListvehicles;publicvoidgenerateReport(Writeroutput){//方法主體

}}基于J2SE7.0進行GUI編程----第二章面向對象編程2.11軟件包:大多數(shù)軟件系統(tǒng)都很龐大,為了管理這些軟件系統(tǒng)的源代碼。常常需要將系統(tǒng)中的類分組到不同的包中來簡化類的管理,并防止類命名沖突。在Java中使用包可以包含類以及其它包從而構成包的層次結構,并對包方便進行引用。在UML建模語言中也使用了包的概念。如下圖,UML中的shipping包:shippingGUIreportsdomainCompanyVehicleTruckRiverBarge在上面的shipping包中實現(xiàn)了航運軟件系統(tǒng)的部分功能。在shipping頂層包中包括了兩個子包GUI和reports,而這兩個子包要依賴domain包,在domain包中包括了Company、Vehicle(交通工具)、Truck(卡車)、RiverBarge(駁船)等模型元素即類。擁有0..*基于J2SE7.0進行GUI編程----第二章面向對象編程2.12package語句:格式:package頂層包空間名[.子包空間名.子包空間名];

包空間聲明部份必須位于,Java源代碼文件的第一行。每個Java源代碼最多只能進行一次包空間聲明,如果沒有聲明包空間則該Java源代碼中的所有類型位于當前應用程序的默認包空間(無名包空間)中。Java應用程序中的包對應源程序中的一個文件夾,且包空間的名稱與該文件夾名稱完全相同。Java應用程序之所以引入包,主要是為了解決對Java源程序中的類型按包進行分類管理的問題,并且也防止了類名發(fā)生沖突的問題。這樣后,不同包之間的類型允許重名,而不會出現(xiàn)任何問題。在創(chuàng)建Java類之前,我們應該創(chuàng)建相應的包,然后將該類放入該包空間中(即將Java類文件放入該包空間對于的文件夾中),包空間中只能包含Java的類型定義、接口定義等,不能直接出現(xiàn)執(zhí)行代碼。包空間的結構為一個層次結構,即允許在頂層包空間下創(chuàng)建各種下級,甚至下下級的包空間,并以此對類型進行分層管理,在聲明包空間時,允許使用.做間隔直接聲明頂層包空間的子包空間。示例:

packageshipping.domain;publicclassVehicle{//..類定義}

包空間聲明前可以出現(xiàn)空白或注釋,但包空間名稱應全部小寫,類名則應遵循第一個字母大小,其它單詞首字母大寫的駝峰規(guī)則。基于J2SE7.0進行GUI編程----第二章面向對象編程2.13import語句:格式1:import包名[.子包名].類名;格式2:import包名[.子包名].*;

格式1用于導入指定包空間中的指定類,該包空間中其它類不導入,這將導致Java編譯器更快速找到該類并進行編譯。格式2用于導入指定包空間中的所有類,這將導致編譯器根據(jù)你Java源代碼中類的使用情況,由編譯器自動決定導入哪些類,將會花費比較多的時間從上到下依查找需要用到類相應的包,并檢查是否有沖突,但不影響運行速度,只會降低編譯速度。

import語句必須出現(xiàn)在所有類的聲明代碼之前。當導入相應的類或包中所有類后,在下方的代碼中可以直接通過使用類名訪問導入的類,而非類的完全限定名。示例:

packageshipping.reports;importshipping.domain.*;importjava.util.List;importjava.io.*;publicclassVehicleCapacityReport{privateCompanycompanyForReport;//…}

基于J2SE7.0進行GUI編程----第二章面向對象編程2.14目錄布局和包:一個包在Java中必須對應一個目錄(文件夾)(除開無名包)。所以,Java中的包層次管理可以理解為文件夾的層次管理,在相應包中聲明類,可以理解為在相應文件夾中創(chuàng)建該類的Java源代碼文件。不同的Java源文件中的類可以隸屬于同一個包,并且需要放在相同的包文件夾中。對于前面的shipping軟件包中的示例目錄結構為:

shipping/|--------------domain/||--------Company.class||--------Vehicle.class||--------RiverBarge.class||--------Truck.class|--------------GUI/|--------------reports/|--------VehicleCapacityReport.class基于J2SE7.0進行GUI編程----第二章面向對象編程2.15開發(fā):如果要同時進行幾個項目開發(fā),可以采用多種開發(fā)方式與手段。例如:對于前面的shipping軟件包中的示例目錄結構為:

JavaProjects/|------ShippingPrj/|-----src||------shipping/|||---------domain/|||---------GUI/|||---------reports/|-----docs/|-----classes/ |------shipping/ |---------domain/ |---------GUI/|---------reports/|------其它項目/這種對項目開發(fā)進行管理的技術好處在于,可以在src文件夾中管理.java源代碼,而編譯生成的.class文件將位于classes文件夾中,在docs文件夾中可以保存項目的文檔資料?;贘2SE7.0進行GUI編程----第二章面向對象編程2.16使用–d編譯選項指定類文件(.class文件)的存放路徑:格式:javac-d目錄路徑編譯文件.java對于上面開發(fā)技術示例中,在命令窗口執(zhí)行:

cdJavaProjects/ShippingPrj/srcjavac-d../classesshipping/domain/*.java2.17部署在客戶計算機上部署并運行一個Java程序可以不用操作客戶計算機上的CLASSPATH環(huán)境變量,也很少這樣做。采用下方法即可:即通過創(chuàng)建可執(zhí)行的Java存檔(JAR)文件來實現(xiàn)部署并運行。操作步驟:

1、創(chuàng)建一個臨時文件MANIFEST.MF(清單文件):該文件的內(nèi)容為:主要是指定主類,即啟動類,必須在其后有兩空行

Main-Class:mypackage.MyClass

2、使用如下命令:

jarcmfMANIFEST.MF

MyProgram.jar*.class|文件夾/

說明:如果沒有包空間,則使用*.class將類文件打包到.jar中,如果有頂層包空間,則必須先到達頂層包空間文件夾的上層文件夾,在命令后指定頂層包空間文件夾名稱并加一個/,jar將遞歸把當前文件夾下頂層包空間文件夾中所有的.class文件打包到.jar中。3、復制MyProgram.jar到目標計算機,并運行,如果是在Windows操作系統(tǒng),雙擊jar文件就可以執(zhí)行:

java–jar.jar文件的路徑基于J2SE7.0進行GUI編程----第二章面向對象編程部署庫:在Java中,特殊情況下,jar文件中可能包括許多類需要我們在不同項目程序中使用,這樣的.jar庫文件,可以直接通過復制的方式復制到JDK安裝文件夾下的jre目錄下的lib目錄的ext子目錄中,但這樣做將導致任何程序都可以執(zhí)行.jar庫中的類,擁有完全執(zhí)行權限。并且,如果jar庫中的類與JDK類庫中的類發(fā)生命名沖突將導致運行時錯誤。如果只安裝了標準JRE,則應當復制到標準JRE目錄下的lib下的ext子目錄中。

示例:創(chuàng)建一個Test.jar軟件包,包名test,類TestClass,有一公共方法,不需要設置MANIFEST.MF(清單文件)的主類。然后復制到jdk/jre/lib/ext下(擴展庫文件夾下)。在自己的任意的類中調(diào)用該jar包中的TestClass類。技術摘要:

1、類--對象模型

2、對象--類的實例

3、屬性--對象的數(shù)據(jù)元素

4、方法--對象的功能元素,函數(shù)或過程。

5、構造器--用于初始化創(chuàng)建對象時被自動調(diào)用,構造函數(shù)。

6、包--類、子包及兩者的集合,用于管理軟件系統(tǒng)。使用Java技術API文檔:

基于J2SE7.0進行GUI編程----第三章標識符、關鍵字和數(shù)據(jù)類型本章主要介紹了Java語法基礎,包括Java變量、關鍵字、基本類型和類類型等相關知識。3.1注釋在Java代碼中,允許使用三種格式的注釋:

1、單行注釋:

//2、段落注釋:

/**/3、文檔注釋:文檔注釋可以使用javadoc命令生成HTML幫助文檔。

javadoc-d輸出目錄包|.java

/***文檔注釋*/基于J2SE7.0進行GUI編程----第三章標識符、關鍵字和數(shù)據(jù)類型3.2分號、塊和空白

1、分號:

Java中所有語句必須以;結束,單獨的一個分號為空語句。

2、語句塊:語句塊必須以{開始及}結束。

{//語句塊中的語句}

語句塊可以嵌套。3、空白:在語句的元素之間可以有空白。并允許任意數(shù)量的空白,包括空格、制表符和換行符,以提高源代碼的清晰度和直觀效果。

基于J2SE7.0進行GUI編程----第三章標識符、關鍵字和數(shù)據(jù)類型3.3標識符

Java中的標識符是為變量、類或方法起的一個名稱。標識符以字母、下劃線_或美元符號$開頭,其后可以是字母、數(shù)字和下劃線的組合,沒有長度限制。標識符不能使用Java的關鍵字。

Java源代碼中的字符是16位即雙字節(jié)Unicode字符。雖然Java支持使用Unicode字符做為標識符,但建議變量名、類名、方法名等標識符只使用ASCII字符(英文字符)。3.4Java編程語言關鍵字關鍵字對Java編譯器有特殊意義,它們標識數(shù)據(jù)類型名稱或程序結構名稱。

Java編程語言關鍵字:abstract continue for new switchassert default goto package synchronizedboolean do if private thisbreak double implements protected throwbyte else import public throwscase enum instanceof return transientcatch extends int short trychar final interface static voidclass finally long strictfp volatileconst float native super while基于J2SE7.0進行GUI編程----第三章標識符、關鍵字和數(shù)據(jù)類型

對Java關鍵字的說明:

1、true、false和null都是小寫,它們不是Java的關鍵字,也是Java字符(常量)2、沒有sizeof運算符,Java中不能直接訪問內(nèi)存,因此sizeof沒有用。

3、Java編程語言不使用關鍵字goto和const。3.5基本Java編程語言數(shù)據(jù)類型

Java編程語言有許多內(nèi)置的數(shù)據(jù)類型,這數(shù)據(jù)類型分為兩類:類數(shù)據(jù)類型和基本數(shù)據(jù)類型?;緮?shù)據(jù)類型即簡單的值,而非對象。類數(shù)據(jù)類型用于更為復雜的數(shù)據(jù)類型,包含您自己聲明的所有類型。類數(shù)據(jù)類型習慣上用來創(chuàng)建對象。3.5.1基本數(shù)據(jù)類型

1、邏輯類型:booleanboolean類型的常量值為:true和falsebooleantruth=true;Java中boolean類型只能保存true或false,而不能使用數(shù)字表示boolean類型的值2、字符類型:charJava中單個字符使用char類型表示,char表示雙字節(jié)Unicode字符,必須位于’’之內(nèi)。

‘a(chǎn)’字母a‘\t’制表符

‘\u????’表示特定的Unicode字符,例如,’\u03A6’表示一個特殊字符基于J2SE7.0進行GUI編程----第三章標識符、關鍵字和數(shù)據(jù)類型\\\字符本身\’‘字符本身

\""字符本身\n換行符

charch=‘A’;charch1,ch2;3、字符類型:String

可以使用String類型(它不是基本類型,而是一個特殊的類類型)來表示字符串。String仍然是一個Unicode字符串,在String類型中仍然允許使用轉義字符。Java中的String不以\0(空字符)結束。String是非常特殊的對象數(shù)據(jù)類型,保存其中的值不能被更改。

String類型必須以""引起來。

Stringgreeting="GoodMorning!!\n";

StringerrorMessage="RecordNotFound!";Stringstr1,str2;

空字符串:""或者使用null基于J2SE7.0進行GUI編程----第三章標識符、關鍵字和數(shù)據(jù)類型4、整數(shù)類型:byte、short、int和longJava編程語言的四種整數(shù)類型??梢允褂檬M制、八進制或十六進制形式來表示整數(shù)類型的數(shù)據(jù)。格式:

225 十進制

077 八進制

0xBAAC0X23f十六進制

Java中數(shù)字類型都是帶有符號,即可以表示正數(shù)也可以表示負數(shù)。Java中l(wèi)ong類型的常量必須后綴l或L表示,建議使用L。

2L077L0xBAACL1)、byte:字節(jié)類型(1byte)-128到127-2^7到2^

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論