《程序語言基礎以及java基礎.ppt》由會員分享,可在線閱讀,更多相關《程序語言基礎以及java基礎.ppt(55頁珍藏版)》請在裝配圖網上搜索。
1、程序語言基礎以及java基礎,程序語言基礎,常量 變量 流程控制 數組,流程控制,選擇 - if-else - switch 重復(循環(huán)) - while - do-while - for,跳轉 - break - continue 其它語句 - return,if語句,if (條件) 語句1; else 語句2;,if (條件) 語句組; else 語句組; ,public class SignFunction public static void main(String args) int intx; intx=0; if(intx0) System.out.printl
2、n(intx+ is + ;); else if(intx<0) System.out.println(intx+ is - ;); else System.out.println(intx+ is 0 ;); ,switch語句,switch(表達式) case 常量值 1: 語句(組); break; case 常量值 2: 語句(組); break; case 常量值 N: 語句(組); break; default: 語句(組); ,表達式必須為byte,short,int或char類型,常量值必須是與表達式類型兼容,且不能重復,break跳出case語句段
3、,若所有的case都不匹配,則可去執(zhí)行default語句,循環(huán)結構,1、while 循環(huán) while(條件) 語句組; 2、do-while循環(huán) do 語句組; while(條件); 3、for 循環(huán) for(變量初始化; 條件; 遞增或遞減變量的值) 語句組; ,注意:兩者的區(qū)別,1先判斷條件,成立才執(zhí)行。2先執(zhí)行在判斷條件。,for循環(huán)語句,for語句的執(zhí)行過程,(1) 當循環(huán)啟動時,先執(zhí)行其初始化部分即initialization 。通常,這是設置循環(huán)控制變量值的一個表達式,作為控制循環(huán)的計數器。重要的是你要理解初始化表達式僅被執(zhí)行一次。 (2)計算條件condition的值。條件co
4、ndition必須是布爾表達式。它通常將循環(huán)控制變量與目標值相比較。如果這個表達式為真,則執(zhí)行循環(huán)體body;如果為假,則循環(huán)終止。 (3)執(zhí)行循環(huán)體的反復部分即iteration,這部分通常是增加或減少循環(huán)控制變量的一個表達式。 (4)接下來重復循環(huán),首先計算條件condition的值,然后執(zhí)行循環(huán)體,接著執(zhí)行反復表達式。這個過程不斷重復直到控制表達式變?yōu)榧佟?while循環(huán)語句,while語句的執(zhí)行過程,判斷控制表達式condition的值,當其是真時,while語句重復執(zhí)行一個語句或語句塊。其中條件condition可以是任何布爾表達式。只要條件表達式為真,循環(huán)體就被執(zhí)行。當條件cond
5、ition為假時,程序控制就傳遞到循環(huán)后面緊跟的語句行。若只有單個語句需要重復,大括號則是不必要的。,do-while循環(huán)語句,do-while語句的功能,先執(zhí)行循環(huán)體,然后再計算條件表達式condition 。如果表達式為真,則循環(huán)繼續(xù)。否則,循環(huán)結束。對所有的Java循環(huán)都一樣,條件condition必須是一個布爾表達式。,其他語句,label:語句塊 :用于給程序塊取名字。 break :語句在循環(huán)中用于立即從當前循環(huán)終止執(zhí)行,結束當前循環(huán)的執(zhí)行。 continue :語句則是從其調用處跳至循環(huán)的開始處,結束本次循環(huán),繼續(xù)執(zhí)行下一次循環(huán), continue 語句之后的語句將不再執(zhí)行。,一
6、維數組的定義,數組類型 數組名; 或 數組類型 數組名; 數組類型可為Java中的任何數據類型。 數組名,必須符合標識符定義規(guī)則。 “”指明該變量是一個數組類型的變量,可放到數組名后面,也可放到數組名前。,int student; int student;,一維數組的初始化,使用new分配內存空間,并按照數組的類型,為每一個數組元素建立默任值。 int student ; student=new int10; 或 int student=new int10;,一維數組的引用,引用格式為: 數組名下標 int a=new int10; int b=a0+a9; 數組下標為從0到9。如果調用了
7、a10,程序運行時將提示錯誤: java.lang.ArrayIndexOutOfBoundsException,一維數組的使用,class qiuhe public static void main(String args) int a=5,8,2,4,1,9,78; System.out.println(The min is:+minnum(a)); static int minnum(int num) int min=num0; for(int i=0;inumi) min=numi; return min; ,注意:兩者的區(qū)別,1先判斷條件,成立才執(zhí)行。2先執(zhí)行在判斷條件。,二維數組
8、的定義,定義格式為: 數組類型 數組名; 或 數組類型 數組名; 或 數組類型 數組名;,int array_name ; 或 int array_name; 或 int array_name ;,數組的數組,二維數組的初始化,(1)直接為每一維分配空間,例如: int a=new int32; (2)高維開始,分別為每一維分配空間,例如:int a =new int3; a0=new int2; a1=new int3; a2=new int4; (3)數組常量初始化,例如: int a=1,2,3,4,5,6;,二維數組的引用,引用格式為: 數組名下標2 下標1; 下標1
9、,下標2分為二維數組的第一、二維下標,同一維數組一樣,也可為整型常量和表達式,并且數組下標都從0開始。,,,,int a=1,2,3,4,5,6,7,8,9,10,11,12; System.out.println(數組a各元素的值為:); for(int i=0;i<4;i++) for(int j=0;j<3;j++) System.out.print(aij+t); System.out.println(); ,數組的一些方法,System類中的靜態(tài)方法arraycopy() 。 Arrays類中的方法 。 排序方法sort(Object arrayname ) 二分查找方法 bina
10、rySearch(Object a,Object key),,,,Java知識,Java基本知識 異常、IO和多線程 圖形用戶界面 深入話題,Java基本知識,Java介紹 Java基礎 面向對象基本理論 類和對象 初始化和清除 多態(tài)性,三個專題,異常 IO 線程與多線程,圖形用戶界面,Java Applet GUI application,Java Swing Event model,深入話題,數據庫基礎知識 JDBC 實戰(zhàn)練習,推薦書籍資料,Thinking In Java,Bruce Eckel Core Java 2 ,Java來歷,Java語言的發(fā)展(1),1991年由James G
11、osling負責開發(fā)的一個分布式代碼系統(tǒng)(Oak),最初是為家用消費電子產品(電冰箱、電視機等)進行編程控制 。 1993年Sun 公司將目標市場轉向Internet 。 1994年將Oak語言更名為Java。 1995年Java被正式發(fā)布,之后立即引起極大的轟動。,Java語言的發(fā)展(2),自從于1995年被正式推出之后,Java語言就以其獨特的優(yōu)勢迅猛發(fā)展,經過短短10來年時間,成為迄今為止最為優(yōu)秀的面向對象語言。Java也從當初的一種語言而逐漸形成一種產業(yè),基于Java語言的J2EE架構已成為微軟.NET平臺的強大競爭對手。 當初,Java語言最初的發(fā)布不亞于一場革命,但是它并不標志著
12、Java快速革新時代的結束。在Java 1.0發(fā)布后不久,Java的設計者就已經制定出了Java 1.1、 Java 1.2、 Java 1.3、 Java 1.4 、Java 1.5,程序語言的4個層次,Machine C/C++, Pascal Perl, basic Shell Which level is Java in?,Java Platform 2,J2SE: Standard Edition J2EE: Enterprise Edition J2ME: Mirco Edition,字節(jié)碼,*.class文件與機器碼不同,不是真正的CPU可運行的指令代碼,故又稱偽代碼。 通過JV
13、M以及JRE將其轉成本地機器代碼,達到一次撰寫,到處運行的效益。 (Write Once,Run Anywhere),Java虛擬機,實現(xiàn)平臺無關性的基礎就是Java虛擬機,是以Java字節(jié)碼為指令組的軟CPU。負責對本地*.class文件解釋執(zhí)行。 包含類加載器、字節(jié)確認器、以及JIT實時編譯器。 類加載器:用來取得從網絡或本地的類文件。 字節(jié)確認器:確認類文件是否有正確的格式。 JIT:使虛擬機能提高到編譯式的運行效率。,Java環(huán)境,Java 源程序,,編譯,字節(jié)碼 文件,,Java 虛擬機,執(zhí)行,Linux,Windows,Mac,,,,Java平臺,The Java Virtual
14、Machine (Java VM) The Java Application Programming Interface (Java API),Java目前的主要應用,眾多軟件開發(fā)商支持Java軟件產品。 面向對象的應用開發(fā)。 企業(yè)級軟件開發(fā)。 動態(tài)畫面的設計,包括圖形圖像的調用。 手機游戲,應用程序開發(fā)。 其他語言能做的事,Java都能做,Java語言的特點1,簡單性 面向對象 分布式處理 健壯性 結構中立 安全性,系統(tǒng)精簡,但功能齊備。 風格類似于C++,對C++程序員而言非常容易掌握。 Java摒棄了C++中容易引發(fā)程序錯誤的地方,如指針操作和內存管理; 提供豐富的類庫。,完全是面向對象
15、的,它不支持類似C語言那樣的面向過程的程序設計技術。,支持TCP/IP協(xié)議。Java應用程序可通過一個特定的URL來打開并訪問對象,就像訪問本地文件系統(tǒng)那樣簡單。,提供面向對象的異常處理機制,在編譯時能對Null指針檢測、數組邊界檢測、異常出口字節(jié)代碼校驗等。 自動垃圾收集來進行內存管理。,將源程序編譯成一種結構中立的中間文件格式。只要有Java運行系統(tǒng)的機器都能執(zhí)行這種中間代碼。,Java語言提供的安全。 編譯器提供的安全。 字節(jié)碼校驗。 類裝載。,Java語言的特點2,可移植性 解釋性 高性能 多線程 動態(tài),Java應用程序可以在配備了Java解釋器和運行環(huán)境的任何計算機系統(tǒng)上運行,而與體
16、系結構無關。,Java編譯器將java源文件生成類文件.class,類文件可通過java命令解釋執(zhí)行,將Java字節(jié)碼轉換為機器碼。,JIT編譯器。可以提高 Java 代碼的執(zhí)行速度。,內置多線程功能,使得在一個程序里可同時執(zhí)行多個小任務。帶來的好處是更好的交互性和實時控制性。,允許程序動態(tài)地裝入運行過程中所需要的類,這是C++語言進行面向對象程序設計所無法實現(xiàn)的。,跨平臺/可移植,Cross Platform/Portable Portable: the dream from UNIX and C to Java JVM Unique data type Int: 32-bit Char:
17、Unicode,Capacity: high or low?,Low: Interpreted Code check Stack machine High JIT Mutil-thread Byte code simple design,Stable and secure,No point Index check Auto memory management,Simple: KISS,C++ like No point Auto memory check,Pure OOP,Java = C++ -- Mutil-inheritance Virtual inheritance Template
18、Operator overloading,Java與C++的比較,第一個Java程序,class HelloWorld public static void main(String args) System.out.println(“HelloWorld”); ,編譯與運行Java程序,安裝JDK 設置PATH javac HelloWorld.java javac 編譯結果:HelloWorld.class java HelloWorld java 千萬不要java ,Java程序結構,(1)至多有一個public類,文件名必須與類名相同。 (2)程序可以有一個或多個其它類。 (3)當需要從
19、某個類繼承或使用某個類及其方法時,使用import引入該類的定義。 (4)Java程序組成結構 package//0個或1個,必須放在文件開始 import//0個或多個,必須放在所有類定義之前 public classDefinition//0個或1個,文件名必須與類名相同 classDefinition //0個或多個 interface Definition //0個或多個,使用命令行工具,文本編輯程序(記事本、UltraEdit) 進入命令行模式 java version javac xxx.java java xxx(類名),使用集成開發(fā)工具,Eclipse
20、(以后介紹) JCreator JBuilder IBM WSAD (Based on Eclipse),學習經驗,學會使用JDK幫助文檔 多逛網上的Java論壇 多了解一些最近技術動向,一個簡單的Java程序,下面是一個簡單的Java程序。讀者將會看到,這個程序雖然不是很復雜,但其中所包含的內容和功能卻很豐富。 class MyExample public static void main(String args) int num; num = 200; System.out.println(This is num: + num); num = num * 2; System.out.
21、print(The value of num * 2 is:); System.out.println(num); ,運行結果: This is num: 200 The value of num * 2 is: 400,編程風格,縮進和空行 注釋 變量和函數名定義 本質:方便別人理解,關于縮進和空行,一般遇 縮進4個空格 一行不要太長,注意換行 功能塊中間注意空行,關于注釋,單行// 多行 /*.. ..*/ Java doc風格 /** * **/,變量和函數名定義,定義有意義的名稱 不要用單個字符定義變量 方便自己和他人理解記憶,電子資料,JDK幫助文檔 Thinking in Java課后答案,課后練習,抄寫例子程序 編譯并運行,