《Java 語言基礎(chǔ)》由會員分享,可在線閱讀,更多相關(guān)《Java 語言基礎(chǔ)(42頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、Java 語言基礎(chǔ)q程序結(jié)構(gòu)q語句規(guī)則q語言基本 單位行行言言Java 概述面向?qū)ο蠡靖拍頙ava 語言基礎(chǔ)OO 程序設(shè)計(上)對象與類數(shù)據(jù)結(jié)構(gòu)與語言基礎(chǔ)類圖形用戶界面OO 程序設(shè)計(下)高級功能Applets異常處理文件及輸入輸出網(wǎng)絡(luò)編程多線程JDBC與數(shù)據(jù)庫訪問JSP與Web應用Java 的可視化編程環(huán)境J2SEJ2EEJ2ME程序結(jié)構(gòu) package import - class 類名1 屬性定義 方法名1() - 方法名2() - class 類名2 - 一個程序可包括若干個類,各類之間存在并列、繼承和包含關(guān)系。這些類通常是在一起協(xié)同工作的:每一個類都可能需要創(chuàng)建其他類的對象,并調(diào)用
2、類或?qū)ο蟮膶傩约胺椒?。編程只能在方法中。編譯后每個類產(chǎn)生一個 .class文件java的名字空間和包n作為一種在整個Internet上動態(tài)裝載模塊的語言,Java特別注意避免名字空間的沖突。n全局變量不再是語言的組成部分(沒有全局的屬性與方法)。n所有的方法和屬性都在類中定義,是類的組成部分。n每個類又是包的組成部分。n全限定名 : 包名 . 類名 . 方法名ninport 打開一個包后 ,可直接指定該包中的類名。n在本類中,可以直接使用方法名及屬性名。包的概述n一個包是一組相關(guān)類的集合。n類庫由若干包組成。=java.lang 語言核心類(String Integer Math)=java.
3、awt 圖形用戶界面=java.applet applet小程序=java.io 文件與輸入輸出= 網(wǎng)絡(luò)編程=java.util 實用程序類(隨機數(shù)、日期、系統(tǒng)屬性)nJava API 文檔語句規(guī)則n語句種類=說明語句 如屬性說明、變量說明等=表達式語句 =控制語句 (條件、循環(huán)、轉(zhuǎn)移)=異常處理語句=塊語句(代碼塊,一組語句用花括號括起來)n注釋 =/ - 只限于行內(nèi)=/* - - - */ 一段注釋文本n基本語句用分號結(jié)束數(shù)據(jù)類型與說明語句nJava程序中所處理的數(shù)據(jù)是將各種數(shù)據(jù)類型實例化后的數(shù)據(jù)。n數(shù)據(jù)類型實例化的方法:說明語句n實例化數(shù)據(jù)的兩中形式:變量與常量基本數(shù)據(jù)類型數(shù)值類型整數(shù)
4、byte(8), short(16), int(32), long(64)浮點類型 float (32), double(64)字符類型char (16) 注:Unicode碼 布爾類型boolean (true / false)引用類型類class字符串String StringBuffer數(shù)組 類型 數(shù)據(jù)類型與說明語句n基本數(shù)據(jù)類型說明語句:boolean b = true;short si = 128;int I,j,k = -99;long l = 123456789;char ch = J;char chc = 中 ;float f = 3.1415926;double d = -1
5、.04E-5;nJava幾乎是將字符串視為基本數(shù)據(jù)類型String s = “你好!”; Java 標識符:n 區(qū)分大小寫n 組成 :字母 數(shù)字 _ $n 開頭: 字母 _ $ 常量n布爾常量 true falsen整型常量=一般常量:32bit 長整型常量:64bit (88L)=十進制數(shù):非0開頭的正負整數(shù) 105,-23=八進制數(shù): 0開頭的正負整數(shù) 017(15), -023(-19)=十六進制:0 x開頭的正負整數(shù) 0 x2F(47),-0 xa8(-168)n浮點常量=一般浮點常量(32bit) 3.14F 6.18E3F=雙精度浮點數(shù)(64bit ) 7.56D 6.02E23
6、(D可省)數(shù)據(jù)類型轉(zhuǎn)換n同種數(shù)據(jù)類型轉(zhuǎn)換:=短類型 長類型:默認=長類型 短類型:強制n不同數(shù)據(jù)類型轉(zhuǎn)換字符/數(shù)值:強制例:int a ; long b ; char c; b = a ; a = ( int ) b ; c= (char) a ; a=(int) cn布爾型與其他數(shù)據(jù)類型之間不能強制類型轉(zhuǎn)換byteshortintlongfloatdouble數(shù)據(jù)類型轉(zhuǎn)換import java.io.*; public class a1 public static void main(String args) int i=65; char c=a, cc=王; System.out.prin
7、tln(i); 65 System.out.println(char)i);A System.out.println(c);a System.out.println(int)c);97 System.out.println(cc);王 System.out.println(int)cc);29579 System.out.println(char)35328);言 1Wrapper類基本數(shù)據(jù)類型Wrapper 類booleanCharactercharBooleanBytebyteShortshortIntegerintLonglongFloatfloatDoubledoubleInteger
8、n屬性 =staticint MAX_VALUE 返回int型數(shù)據(jù)的最大值=staticint MIN_VALUE 返回int型數(shù)據(jù)的最小值n構(gòu)造器=Integer(int value)=Integer(String s)n方法=int intValue() double doubleValue()=String toString() =static String toString(int i)=static Int parseInt(String s) =static Integer valueOf(String s)類型轉(zhuǎn)換利用類/對象方法n利用類方法(靜態(tài)方法)=static int I
9、nteger.parseInt(“23”)=static String Integer.toString(23)=static double Double.parseDouble(“12.3”)=static String Double.toString(12.3)n利用對象方法= Double d ; String s; d=new Double(12.3) ; /構(gòu)造 s= d.toString();= Double.valueOf(“12.3”).doubleValue() ; /返回2引用類型類n定義類(新的數(shù)據(jù)類型):class MyDate int day ; int month
10、; int year ;n基本數(shù)據(jù)類型直接分配內(nèi)存空間。 int I,j,k ;n引用類型 ? MyDate d1 ; d1 = new MyDate() ;引用類型類MyDate d1 = new MyDate() ;nulld1daymonthyear0000 x01abcdefd1.day = 28 ;d1.month = 12;d1.year = 70 ;引用類型數(shù)組n在Java中,數(shù)組是獨立的類,有自身的方法,不是變量的集合。n一個數(shù)組是數(shù)組類的一個對象。n一維數(shù)組定義int IntArray = new int 5 ;=數(shù)組類對象引用說明( IntArray)=動態(tài)分配空間( ne
11、w int 5 )n int IntArray (提倡格式) 類型 變量名引用類型數(shù)組int intArray = 11, 47, 93, 26, 38 =分配空間+賦初值=靜態(tài)初始化必須與數(shù)組定義放在一個語句中。nintArray = new int10 ; /原數(shù)組丟失。XXXXintArray1147933826數(shù)組元素為類的對象n定義數(shù)組Integer a; / Null handleInteger b = new Integer5; n創(chuàng)建數(shù)組元素的對象實例 for(int i = 0; i b.length; i+)bi = new Integer(I*10);n創(chuàng)建數(shù)組時初始化
12、Integer d = new Integer(1), new Integer(2), new Integer(3);多維數(shù)組定義n數(shù)組元素又是數(shù)組對象int intArray = new int 105 ;int intArray = 1,3,2,4,1,2,3,4 數(shù)組類n數(shù)組使用之前要確定大小,可以在程序中根據(jù)需要指定其大?。ㄈ缬帽磉_式計算出大?。?。n一旦生成數(shù)組,大小不可改變。java不支持變長數(shù)組。n數(shù)組的屬性length 數(shù)組元素的個數(shù)njava數(shù)組作為一種對象類型,可以作為方法的參數(shù),傳的是指向數(shù)組的引用。nArrayIndexOutOfBoundsException 例外 數(shù)組
13、類 int m1 , m2 ; int a ; m1=5 ; m2=10; a=new intm1m2; for(int i=0 ; i5 ; i+) for(int j=0 ; j10 ; j+) aij = i*j ; for(int i=0 ; ia.length ; i+) for(int j=0 ; j,=,=,!=,= =邏輯運算符& 與 ,| 或 , !非,&簡潔與,|簡潔或按位運算符按位取反, &按位與, |按位或, 按位異或移位運算符帶符號右移, 不帶符號右移三目條件運算 D=表達式1?表達式2 :表達式3賦值運算符= ,+=,-= 運算符例移位n移位= 帶符號右移:左側(cè)空出
14、位全用符號位填充=不帶符號右移 :左側(cè)空出位用0填充= 左移:符號位被擠掉 x 二進制表示 x 2x 23000011110011110000000011100000111-17111011111011110011111011001110111281 128 / 21 = 642564 256 / 24 = 16-2564 -256 / 24 = -16128 1 128 * 21 = 25616 3?y:z; /k=8條件語句if ( 條件表達式 )語句塊;else語句塊;n多重嵌套的if語句if (條件1) 語句塊1;else if (條件2)語句塊2;else if (條件3)else語
15、句塊n;switch 開關(guān)語句switch(表達式)case 判斷值1:語句組1 ;case 判斷值2:語句組2 break ;default:語句組n; nswitch 的常量和表達式可以是整型、字符型及byte型n任何兩個case常量不可以有相同的值。n只能對等式進行測試,根據(jù)表達式取值的不同轉(zhuǎn)向不同的分支。n每個case分支中的語句塊無須用花括號括起來。n每個case分支都只是入口點nbreak 語句是轉(zhuǎn)移語句(轉(zhuǎn)出switch)Java的循環(huán)語句while(表達式) do語句組; 語句組; while(表達式);for ( 表達式1;表達式2;表達式3)語句組;=表達式1:循環(huán)變量賦初
16、值,可使用外部沒有定義的循環(huán)變量=表達式2:循環(huán)條件=表達式3:循環(huán)變量修正Java的轉(zhuǎn)移語句n沒有g(shù)oto語句nbreak =從一個封閉的語句,如switch , , 循環(huán)中跳出來nbreak 標號=從包含本break語句的標號指示的封閉語句中跳出來。 while (e1) aaa: while (e1) while(e2) while(e2) break; break aaa; Java的轉(zhuǎn)移語句ncontinue (用在循環(huán)體中)=提前結(jié)束本次循環(huán),即跳過后面的循環(huán)體語句,回到循環(huán)的條件測試部分繼續(xù)執(zhí)行。ncontinue 標號=提前結(jié)束標號所指循環(huán)。通常是某外層循環(huán)。=continue
17、不是goto 語句,標號不能指向與本循環(huán)并列的循環(huán)或其他循環(huán),也不可指向非循環(huán)語句。6Application程序人口點public class HelloWorldApp public static void main(String args) java HelloWorldApp 執(zhí)行包括main方法的主類java HelloWorldApp args0 args1 例:求2100的素數(shù),每行打印5個數(shù)字import java.io.*;public class prime public static void main(String args) First_Loop: for(int i=2,k=0;i100;i+) for(int j=2;j=Math.sqrt(i);j+) if(i%j=0) continue First_Loop; System.out.print(i+t);k+;if(k%5=0) System.out.println(); /for /main /class7