《java02(第2章java基礎)》由會員分享,可在線閱讀,更多相關《java02(第2章java基礎)(46頁珍藏版)》請在裝配圖網上搜索。
1、Java語言程序設計清華大學出版社第第2 2章章 javajava基礎基礎本章內容提要本章內容提要1、基本數據類型、基本數據類型2、表達式和運算符、表達式和運算符3、程序控制語句、程序控制語句4、數組、數組5、向量(簡介)、向量(簡介)6、字符串、字符串2.12.1數據類型數據類型程序程序= =算法算法+ +數據結構數據結構+ +程序設計方法程序設計方法+ +語言工具和環(huán)境。語言工具和環(huán)境。之所以有數據類型,就是因之所以有數據類型,就是因為計算機存儲不同數據類型的方為計算機存儲不同數據類型的方式和空間不同。式和空間不同。 數據類型分類數據類型分類 Java定義了定義了8個基本數據類型:字節(jié)個基
2、本數據類型:字節(jié)型,短整型,整型,長整型,字符型,型,短整型,整型,長整型,字符型,浮點型,雙精度型,布爾型。浮點型,雙精度型,布爾型。它們分為它們分為4組:組: 整數型(整數型(byte,short,int,long) 浮點數型(浮點數型(float,double)字符型(字符型(char)布爾型(布爾型(boolean)數據類型數據類型的分類的分類【例例2-1】計算二個整數的和:計算二個整數的和: class Example2_1 public static void main(String args) int x,y,sum ; /變量聲明變量聲明 x = 3 ; y = 5 ; sum
3、 =x+y ; /求和求和 System.out.println(二數之和為:二數之和為: + sum) ; 在在Java中,使用變量要遵守中,使用變量要遵守“先聲明后使用先聲明后使用”的原的原則。則。 類型轉換類型轉換自動轉換自動轉換需要滿足兩個條件:需要滿足兩個條件:1 1、類型相容;、類型相容; 2 2、目標數據類型比原、目標數據類型比原數據類型分配的內存空間數據類型分配的內存空間大大( (即由低到高即由低到高) )。強制轉換強制轉換發(fā)生在相容數據類型發(fā)生在相容數據類型之間之間( (即精度由高到低即精度由高到低) ) 。語法形式:語法形式: ( (目標類型目標類型) )值值基本數據類型按
4、精度從基本數據類型按精度從“低低”到到“高高”的順序為:的順序為:byte short int long float double2.2 2.2 表達式和運算符表達式和運算符表達式是由運算符、操作數和方法調用按照語言的語法構造而成的符號序列。表達式可用于計算一個公式,為變量賦值以及幫助控制程序執(zhí)行流程。2.2.1 表達式與運算符表達式與運算符 只有一個運算對象的運算符稱為一元運算符。例如+x是一個一元運算符,它是對運算對象x自增加1。 +x,-x: 使用使用X之前,先使之前,先使X的值加的值加1(或減或減1);X+,X-:使用使用X之后,再使之后,再使X的值加的值加1(或減或減1) 設設X=5
5、 則則 Y=+X Y的值為的值為6; Y=X+ Y的值為的值為5,而而X為為6。我們可以將運算符分成以下幾類:我們可以將運算符分成以下幾類:算術運算符;算術運算符;關系和條件運算符;關系和條件運算符;移位和邏輯運算符;移位和邏輯運算符;賦值運算符;賦值運算符;其他的運算符。其他的運算符。2.2.2 算術運算符算術運算符Java 語言支持所有的浮點型和整型數進行各種算術運算。這些運算符為+(加)、-(減)、*(乘)、/(除)以及%(取模)。 算術運算符的使用基本上與加減乘除一樣,也是先乘除后加減,必要時加上括號表示運算的先后順序。例如這個程序代碼會在命令行模式下顯示: System.out.pr
6、intln(1 + 2 * 3); 2.2.3 關系與邏輯運算符關系與邏輯運算符運算符運算符運算運算用法用法返回返回truetrue的情況的情況 大于大于x1 x2x1 x2x1x1大于大于x2x2=不小不小于于x1 = x2x1 = x2x1 x1 大于或等于大于或等于x2x2 小于小于x1 x2x1 x2x1x1小于小于 x2x2=不大不大于于x1 = x2x1 右移x n將x各位右移n位,左邊按符號補0或補111110101左移x 無符號右移x n將x右移n位(無符號的) ,左邊補000110101&與x & y將x,y按位與操作01010000|或x | y將x,y按位或操作11011
7、111異或x y將x,y按位異或操作10001111位反 x將x各比特位按位取反00101001右移運算符“”將一個數的二進制位序列右移若干位,移出右端的低位被舍棄,最高位則移入原來高位的值。例如:a=00110111,則 a2 = 00001101 b=11010011,則 b2 = 11110100左移運算符“”將一個數的二進制位序列左移若干位,高位左移后溢出舍棄,不起作用。當移位運算符通過對運算對象左移位或者右移位來對數據執(zhí)行位操作時,一個數每左移1位,相當于這個數乘以2,每右移1位,相當于除以2。例如,設x=8,則x 1表示左移1位,相當于作x21的運算,其結果為16。 x 1表示右移
8、1位,相當于作x21的運算,其結果為4,x 2表示右移2位,相當于作x22的運算,其結果為2。一般地:x n表示右移n位,相當于作x2n的運算。邏輯右移運算符“”將一個數的二進制位右移若干位,右端移出的低位被舍棄,最高位也是補0,這點與“”不同。當運算對象為數字的時候,“&”運算符為每一個運算對象的每位執(zhí)行按位與功能。它在兩個運算對象的對應位為1時結果才為1,反之結果都為0。即:0 & 0 = 0 、0 & 1 = 0 、1 & 0 = 0 、1 & 1 = 1 “ | ”運算符執(zhí)行或操作。當兩個操作對象都是數字的時候,或操作只要有一個運算對象為1結果就為1。即:0 | 0 = 0、 0 |
9、1 = 1、1 | 0 = 1、1 | 1 = 1“”運算符執(zhí)行異或操作。異或是指當運算對象不同時結果才為1,否則結果為0。即:0 0 = 0、0 1 = 1、1 0 = 1、1 1 = 0如果c = a b那么a = c b即用同一個數b對數a進行二次異或運算的結果仍是數a。2.32.3程序控制語句程序控制語句語句分為五類:語句分為五類:1、方法調用語句;、方法調用語句;2、表達式語句;、表達式語句;3、復合語句;、復合語句;4、控制語句;、控制語句;5、package和和import語句。語句。2.3.2 控制語句控制語句通常語句在程序中都是按先后順序執(zhí)行,通常語句在程序中都是按先后順序執(zhí)
10、行,控制語句用于改變程序執(zhí)行的順序??刂普Z句用于改變程序執(zhí)行的順序。Java的控制語句有:的控制語句有:if-else語句語句switch語句語句while do-while語句語句for語句語句跳轉語句跳轉語句異常處理語句異常處理語句2.3.3if條件語句條件語句1、if 語句的一般形式語句的一般形式 if(表達式)(表達式) 若干語句;若干語句; 2.3.4 switch語句語句switch語句是一個多分支選擇語句,也叫開關語句。它可以根據一個整型表達式有條件地選擇一個語句執(zhí)行。 switch(變量名稱或表達式) case 符合數字或字符: 語句塊1; break; case 符合數字或字
11、符: 語句塊2; break; default: 語句塊3; switch語句首先計算條件表達式的值,如果表達式的值和某個case后面的常量數值相同,就執(zhí)行該case里的若干條語句,直到break語句為止。若沒有一個常量與表達式的值相同,則執(zhí)行default后面的若干條語句。default是可有可無的,如果它不存在,并且所有的常量數值都和表達式的值不相同,那么switch語句就不進行任何處理。2.3.5 循環(huán)語句循環(huán)語句1、for循環(huán)語句循環(huán)語句for循環(huán)語句的語法結構如下:循環(huán)語句的語法結構如下: for(初始條件;終止條件;增量)(初始條件;終止條件;增量) 循環(huán)體循環(huán)體; 圖圖2.7 循
12、環(huán)語句的執(zhí)行過程循環(huán)語句的執(zhí)行過程2.4 數組數組數組是一組相同類型變量的集合,可以使用共同的名字引用它。 2.4.1 創(chuàng)建和使用數組創(chuàng)建和使用數組 1、聲明數組 (1)聲明一維數組的格式: 數組元素的類型 數組的名字;(2)聲明二維數組的格式: 數組元素的類型 數組的名字;2、 創(chuàng)建數組創(chuàng)建數組 一般來說,當創(chuàng)建數組的時候,使用 new 操作符,后面跟著數組元素的數據結構。然后將元素的數目用方括號括起來,其格式如下所示: 數組名字數組名字= new 數組元素的類型數組元素的類型數組數組元素的個數元素的個數 ;例:例: a = new int10; 3、數組元素的使用、數組元素的使用數組可以通
13、過下標訪問自己的元素:int a =new int10; for(int i=0;ia.length;i+) ai=i; System.out.print(ai+); 4、確定數組的大小、確定數組的大小為了獲得數組的大小,可以使用下面的代碼: 數組名.length; 注意,不能在length后面加一個圓括號( ),否則造成錯誤,因為length不是一個方法。 2.4.2 多維數組的應用多維數組的應用 在Java中,多維數組(multidimensional arrays)是由若干行和若干列組成數組。在人們工作生活與學習中,要使用二維表格、矩陣、行列式等,都可以表示成多維數組。例如: int D
14、 = new int34; 該語句聲明并創(chuàng)建了一個3行4列的數組D。這個數組在邏輯上可以表示成一個int類型的矩陣。 也就是說,這個數組在邏輯上可以表示為: D00 D01 D02 D03 D10 D11 D12 D13 D20 D21 D22 D232.5 向量向量1、向量(Vector) 向量(Vector)是Java.util包(java.util包是專門保存各種常用工具類的類庫)提供的一個工具類。它有類似數組的順序存儲的數據結構,但是具有比數組更強大的功能。 2、創(chuàng)建向量對象、創(chuàng)建向量對象Vector類有三個構造函數:(1) Vector(): 構造一個空向量。 (2) Vector(
15、int i): 用指定的初始化容量構造一個空向量。 (3) Vector(int i, int j): 用指定的初始化容量i和容量增量j構造一個空向量。 下面的語句就利用構造函數創(chuàng)建了一個向量序列: Vector v1 = new Vector(100,10);向量的常用方法向量的常用方法 方方 法法說說 明明addElement(Object obj)addElement(Object obj)在向量尾部添加指定組件,并在向量尾部添加指定組件,并且長度加一。且長度加一。 capacity()capacity()返回該向量的當前容量。返回該向量的當前容量。copyInto(Objectcopy
16、Into(ObjectanArray)anArray) 把該向量的元素復制到指定數把該向量的元素復制到指定數組中。組中。elementAt(int index)elementAt(int index)返回指定下標處的組件。返回指定下標處的組件。firstElement()firstElement()返回該向量的第一個元素。返回該向量的第一個元素。lastElement()lastElement()返回向量的最后一個元素。返回向量的最后一個元素。size()size()返回該向量的元素數。返回該向量的元素數。insertElementAt(Object insertElementAt(Objec
17、t obj,int index)obj,int index)在指定的在指定的 index index 處插入作為處插入作為該向量元素的指定對象。該向量元素的指定對象。 2.6 字符串的簡單介紹字符串的簡單介紹 1、字符串聲明與創(chuàng)建下面是聲明并創(chuàng)建字符串的語句:String str ; str = this is a Stirng. ; 也可以將上面二條語句合并為一條語句: String str = this is a String. ; 2、字符串操作、字符串操作方法說明length()取得字符串的字符長度equals()判斷兩個字符串中的字符是否等于toLowerCase()轉換字符串中的英
18、文字符為小寫toUpperCase()轉換字符串中的英文字符為大寫(1)求字符串的長度)求字符串的長度例:String str1 = Hello! ;String str2 = 你身體好嗎?;System.out.println(str1.length();System.out.println(str2.length(); (2)比較兩個字符串)比較兩個字符串 String類中有三個方法可以比較兩個字符串是否相同。public int compareTo(String str);public boolean equals(Object obj);public boolean equalsIgn
19、oreCase(String str); 這里需要特別說明,比較二個數值這里需要特別說明,比較二個數值x、y是否相等,是否相等,我們使用我們使用x=y。而比較二個字符串相等則不能使用。而比較二個字符串相等則不能使用“=”來比較。請看下面的程序段:來比較。請看下面的程序段: (3)字符串與數值的轉換)字符串與數值的轉換字符串str轉換為整型:int x=Integer.paresInt(str);字符串str轉換為float型:float n=Integer.paresFloat(str); 例如:String str = String.valueOf(123.4);(4)字符串與字節(jié)數組的轉化
20、)字符串與字節(jié)數組的轉化 要將一個字符串轉化為字節(jié)數組,可用下列方法:byte d=字符串對象.getBytes();反之,要將一個字節(jié)數組轉化為字符串,則用字符串的構造方法就能達到目的。String(byte, int offset, int length) 3、使用、使用StringTokenizer字符分析器字符分析器 有時我們需要將字符串分解成可被獨立使用的單詞,這些單詞叫做語言符號。 當我們分析一個字符串并將字符串分解成可被獨立使用的單詞時,可以使用java.util包中的StringTokenizer類。StringTokenizer對象被稱為字符分析器。其構造方法為:String
21、Tokenizer(String str, String delim) 將指定字符串str按字符delim為分隔符進行分解。 StringTokenizer類的常用方法:hasMoreTokens():檢測字符串中是否還有語言符號,若有語言符號就返回true,否則返回false。nextToken():逐個獲取字符串中的語言符號。countTokens():計算調用了nextToken()方法的次數,用于統(tǒng)計字符串中的語言符號的個數。4、main()方法中的參數方法中的參數 在Java應用程序中必須要有public static void main(String args)主方法。Main()方法中的參數是一個字符串數組args,這個數組的元素args0,args1,argsn的值都是字符串。args是命令行參數,其功能是接收運行程序時通過命令行輸入的參數。其一般形式為:java 類文件名字符串1字符串2 字符串n其中,類文件名和各字符串間用空格分隔。 本章結束本章結束!