国产最新a级毛片无码专区_综合亚洲欧美日韩久久精品_日本成年片在线观看66_一本到九九av电影_一级毛片免费网站播放_国内精品久久人无码大片_国产人成视频99在线观看_欧美不卡在线一本二本_国产亚洲电影av_可以免费看黄色软件

知ing

Java語(yǔ)言程序設(shè)計(jì)(第三版)

邵麗萍,邵光亞,張后揚(yáng) 編 / 清華大學(xué)出版社

拼命菇?jīng)鯜 上傳

查看本書(shū)


2.1  Java語(yǔ)言的基本元素
2.1.1  標(biāo)識(shí)符
  標(biāo)識(shí)符規(guī)則:必須以字母、下劃線、“$”或漢字開(kāi)頭,后面的字符可以是字母、數(shù)字、下劃線、“$”和漢字的一串字符
  說(shuō)明:(1)不能是Java保留的關(guān)鍵字;
 ?。?)常量名一般以大寫(xiě)字母,變量名用小寫(xiě)字母,類名以大寫(xiě)字母開(kāi)始;
  (3)區(qū)分大小寫(xiě),如ad、Ad、aD、Da是四個(gè)不同的標(biāo)識(shí)名。
2.1.2  關(guān)鍵字
    P20  表2.2
2.1.3  分隔符
  1.注釋符
 ?。?)//   注釋一行
   以“//”開(kāi)始,終止于行尾,一般作單行注釋,可放在語(yǔ)句的后面
 ?。?)/ *……*/  一行或多行注釋
   以“/ *”開(kāi)始,最后以“*/”結(jié)束,中間可寫(xiě)多行。
 ?。?)/ **……*/
   以“/ **”開(kāi)始,最后以“*/”結(jié)束,中間可寫(xiě)多行。這種注釋主要是為支持JDK工具javadoc而采用的。
  2.空白符
  如空格、回車、換行和制表符(Tab鍵)。系統(tǒng)編譯程序時(shí),只用空白符區(qū)分各種基本成分,然后忽略它。
  3.普通分隔符
  (1)“.”點(diǎn)號(hào):用于分隔包、類或分隔引用變量中的變量和方法
  (2)“;”分號(hào):Java語(yǔ)句結(jié)束的標(biāo)志;
  (3)“:”冒號(hào):說(shuō)明語(yǔ)標(biāo)號(hào);
 ?。?)“{ }”大括號(hào):用來(lái)定義復(fù)合語(yǔ)句、方法體、類體及數(shù)組的初始化;
 ?。?)“[  ]”方括號(hào):用來(lái)定義數(shù)組類型及引用數(shù)字的元素值;
 ?。?)“( )”圓括號(hào):用于在方法定義和訪問(wèn)中將參數(shù)表括起來(lái),或定義運(yùn)算的先后次序。
2.2  數(shù)據(jù)類型
  Java要求在程序中使用任何變量之前必須先聲明其類型。
  Java的數(shù)據(jù)類型分為:
* 基本類型:整型、浮點(diǎn)型、布爾型、字符型
* 數(shù)組類型:一維數(shù)組和多維數(shù)組
* 復(fù)合類型:類、接口
2.2.1  基本數(shù)據(jù)類型
        表2.3  Java基本數(shù)據(jù)類型
說(shuō)明
類型
位長(zhǎng)/b
默認(rèn)值
取值范圍
布爾型
boolean
1
false
true , false
字節(jié)型
byte
8
0
-128~127
字符型
char
16
‘\u0000’
‘\u0000’~’\uffff’即0~65535
短整型
short
16
0
-32768~32767
整型
int
32
0
-231~231-1
長(zhǎng)整型
long
64
0
-263~263-1
浮點(diǎn)型
(單精度)
float
32
0.0
+-1.4E-45或+-3.4028235E+38
雙精度
double
64
0.0
+-4.9E-324  或
+-1.797693134862315E+308
說(shuō)明:
 ?。?)一般情況下,沒(méi)小數(shù)點(diǎn)的數(shù)字是int型,有小數(shù)點(diǎn)的數(shù)是double型;
  (2)String(字符串)型,如:“合肥”、“I am student” ;
 ?。?)Java的char類型采用UniCode(國(guó)際編碼標(biāo)準(zhǔn))的新字符處理方式,即大字符編碼方案,漢字和字母均看作是一個(gè)字符,占兩個(gè)字節(jié);
  (4)Java程序是定義的變量若沒(méi)有賦初值,Java取默認(rèn)值。

C++基本數(shù)據(jù)類型有:整型(int)、字符型(char)、浮點(diǎn)型(float,double)、常量型
類型名
長(zhǎng)度(字節(jié))
取值范圍
Char(signed  char)
1
-128~127
Unsigned  char
1
0~255
Short(short  int)
2
-32768~32767
Unsigned  short
2
0~65535
int(signed  int)
2
-32768~32767
Unsigned  int
2
0~65535
Long(signed  long)
4
-2147483648~2147483647
Unsigned  long
4
0~4294967295
Float
4
+-3.4*10e-38 ~ +-3.4*10e38
Double
8
+-1.7*10e-308~ +-1.7*10e308
Long  double
8
+-1.7*10e-308~ +-1.7*10e308
2.2.2  直接量與常量
  直接量(literal)是指在程序中直接給出的一個(gè)符號(hào)串,即其它語(yǔ)言稱為的常量。
  Java的常量用final說(shuō)明,約定常量標(biāo)識(shí)符一般全部使用大寫(xiě)字母,常量在程序執(zhí)行時(shí)不可更改。
  如:final int i=1;
    i=i+1;    //錯(cuò),i是final(常量),不可更改值
  
  1.布爾型常量
    true  、   false
  注意:Java中的布爾型常量不能與0、-1、1等數(shù)字
    例:
     boolean A,b,C;
     A=false; 
     b=true;
     C=1;    //錯(cuò)
     boolean D=True;   //錯(cuò),“True” 首字大寫(xiě)
  2.整型常量
  例:  45  , 045  ,0x45  ,  45L
     int  a=10    ;        // 十進(jìn)制
     int  b=020   ;        // 八進(jìn)制  以“0”(零)開(kāi)頭
     int  c=0x3A  ;       // 十六進(jìn)制 以“0x”開(kāi)頭
     int  d=71  , Y=91  ;  //  對(duì)
     int  M=0xd1 , N=091 ;  // 錯(cuò) “091”是八進(jìn)制,不能有9
  說(shuō)明:整型常量默認(rèn)為32位int型,若在數(shù)值后加L或l,則表示為64位長(zhǎng)整型
  3.浮點(diǎn)型常量
  例:  3.45   ,  4.512E12    4.5F   4.5D
  說(shuō)明:(1)默認(rèn)類型為64位double雙精度類型(D或d),數(shù)字后面加F或f則是32位float單精度(實(shí)數(shù))類型
  (2)double類型值有效空間大,但運(yùn)行慢,結(jié)果精度不高
   float  a , b ;  double  x , y , z  ;
    a=7.4 ;    //錯(cuò), 7.4默認(rèn)是double型,不能賦予精度低的float型
    b=7.4F ;
    x=7.4E5;
    y=7.4E5D ;
    z=7.4E5F;    //對(duì)
  
  4.字符常量
  字符常量是由單引號(hào)括起來(lái)的單個(gè)字符,它可以是UniCode字符集中的任意一個(gè)字符。如  ‘A’ ‘#’  ‘宋’  ‘6’
  轉(zhuǎn)義符號(hào)見(jiàn)P23 表2.4
  5.字符串常量
  用一對(duì)雙引號(hào)起來(lái)的字符序列。
  例: “ABCD”  “學(xué)習(xí)Java”
    public class SC{
    public static void main(String arg[]){
    String  a="我是安徽\(chéng)n合肥人";  //  “\n” 表示換行
    String  b='%' ;   //錯(cuò)   ‘%’是字符型,不能賦予String型
    System.out.println(A);  //錯(cuò)   A改為a
      }  }
2.2.3   變量
  Java通常用小寫(xiě)字母或單詞作為變量名。
  變量具有名字、類型、值三元素
  1.變量的聲明
  格式:類型  變量名[,變量名]=初值,… ;
  賦值:[類型]  變量名=值
  如:int a=5 ,  b=6 , c , d  ;
    String s=”合肥” ;
    float  m , n ;
    m=6.78f ;
  說(shuō)明:
 ?。?)變量名必須在作用域中是唯一的,不同作用域中才允許相同名字的變量出現(xiàn);
 ?。?)只要在同一代碼塊沒(méi)有同名的變量名,可以在程序中任何地方定義變量,一個(gè)代碼塊就是兩個(gè)相對(duì)的“{  }”之間部分。
  2.變量的使用范圍
  每個(gè)變量的使用范圍只在定義它的代碼塊中,包括這個(gè)代碼塊中包含的代碼塊。
  在類開(kāi)始處聲明的變量是成員變量,作用范圍在整個(gè)類;
  在方法和塊中聲明的變量是局部變量,作用范圍到它的“}”;
  見(jiàn)P25  例2.4:
  例:public class SC{
    int i=0;
    public static void main(String arg[]){
      int  i=1;
     System.out.println(i);    } }   //  輸入  1
  3.變量類型的轉(zhuǎn)換
  Java可以將低精度的數(shù)字賦值給高精度的數(shù)字型變量,反之則需要強(qiáng)制類型轉(zhuǎn)換。
  強(qiáng)制轉(zhuǎn)換格式:(數(shù)據(jù)類型)數(shù)據(jù)表達(dá)式
  如:int i;
    float  f=(float)34.6;   // 34.6默認(rèn)是雙精度,float f=34.6F也對(duì)
    i=(int)f;
    System.out.println(f);  // 輸出34.6
    System.out.println(i);  // 輸出34

 byte    short   char    int      long     float         double
字節(jié)型  短整型  字符型  整型   長(zhǎng)整型  單精度實(shí)型  雙精度實(shí)型
     低                                              高
2.3  運(yùn)算符與表達(dá)式(與C、C++相同)
2.3.1  賦值運(yùn)算符
簡(jiǎn)略形式
非簡(jiǎn)略形式
i+=j
i=i+j
i-=j
i=i-j
i*=j
i=i*j
i/=j
i=i/j
I%=j
i=i%j
例:a=b=c=0 ;  相當(dāng)于c=0 ,  b=c ,  a=b ;
例:  int  k=10;  double  x=10, y=20 ;
   k/=4 ;    // 2
   x+=10;   // 20
   y*=y;    // 400
例: int  i=10  , j=3 ;
      i*=j+2  //  50 
2.3.2  算術(shù)運(yùn)算符
  見(jiàn)P28 表2.7
  例   int i=1;
    System.out.println(i++);  // 輸出 1
    System.out.println(++i);  // 輸出 3
2.3.3  關(guān)系運(yùn)算符
等于
不等于
小于
小于等于
大于等于
大于
==
!=
<
<=
>=
>
     如:public class SC{
       public static void main(String arg[])
       {  boolean  x , y ;
         int  i=5 ,  j=2 ;
          x=(i-4)= =(j-1) ;
          int  a=1 ;  double  b=1.0 ;
          y=a= =b;
          int  m=65 ; char  n='A' ;
          System.out.println(x) ;  // 輸出true
          System.out.println(y) ;  // 輸出true
         System.out.println(m= =n) ;  // 輸出true
       }}
2.3.4  條件運(yùn)算符
  格式:條件表達(dá)式  ?  表達(dá)式2 :表達(dá)式3
  功能:條件表達(dá)式為true,取“表達(dá)式2”值,為false,取“表達(dá)式3”的值
  例:  int a=0x10 , b=010 , max ;
        max=a>b ? a : b  ;
        System.out.println(max) ;    // 輸出16
2.3.5  邏輯運(yùn)算符
  見(jiàn)P29 表2.9
2.3.6  位運(yùn)算符(不做要求)
2.3.7  其他運(yùn)算符
  見(jiàn)P32 表2.11
  instanceof : 對(duì)象運(yùn)算符,用于測(cè)試一個(gè)對(duì)象是否是一個(gè)指定類的實(shí)例
  例:有一個(gè)稱為shape的類,shape的子類是polygonShape,如果有一個(gè)存儲(chǔ)shape的變量實(shí)例shapeHolder,如何知道它是否是一個(gè)polygonShape呢?下述代碼段會(huì)幫助解決這個(gè)問(wèn)題:
  shape shapeHolder ;
  if (shapeHolder  instanceof polygonShape)
  {  polygonShape polygon=( polygonShape) shapeHolder ;
    …………
    …………     }
  當(dāng)處理保存某一公用父類的子類對(duì)象的數(shù)據(jù)結(jié)構(gòu)時(shí),會(huì)經(jīng)常遇到上面提及的情況。假設(shè)我們有一個(gè)基于畫(huà)圖程序的對(duì)象,并且存儲(chǔ)了用戶繪制的所有形狀,若要打印這些數(shù)據(jù),就要有一個(gè)循環(huán)遍歷這些數(shù)據(jù)結(jié)構(gòu)并打印每一形狀,如果一種特殊的形狀需要特殊的指令進(jìn)行打印,就需要使用instanceof運(yùn)算符。
  
  new     : 對(duì)象實(shí)例化運(yùn)算符,實(shí)例化一個(gè)對(duì)象,即為對(duì)象分配內(nèi)存
  
  +       : 字符串合并運(yùn)算符,
         表:字符串創(chuàng)建規(guī)則
操作數(shù)
        規(guī)    則
Null變量
取值為空(null)會(huì)產(chǎn)生null字符串
整數(shù)
整數(shù)會(huì)被轉(zhuǎn)換成十進(jìn)制,表示字符串,如是是負(fù)數(shù),前面會(huì)加上“-”號(hào)。
浮點(diǎn)數(shù)
被轉(zhuǎn)換為緊縮格式的字符串,如果長(zhǎng)度超過(guò)10個(gè)字符,會(huì)以指數(shù)形式表示。
字符
被轉(zhuǎn)換為長(zhǎng)度為1的包含相同字符的字符串
布爾值
轉(zhuǎn)換成“true”或“false”
對(duì)象
對(duì)象的方法toString( )會(huì)被調(diào)用
  例:String  a="Hi" , b="你好"  ;
    int i=42  ;
    float j=42.0f  ;
    boolean f=i==j ;
    double d=489.47 ;
    System.out.println(a+b) ;  // 輸出Hi你好
    a=a+f ;
    System.out.println(a);    // 輸出Hitrue
    System.out.println(b+d);  // 輸出你好489.47
2.3.8  運(yùn)算優(yōu)先級(jí)
  見(jiàn)P32 表2.12
  例: int a=3 , b=6 , k ;
     k=a+=b-=2 ;          // 先計(jì)算b-=2, 得4,再計(jì)算a+=4
     System.out.println(k) ;  // 輸出 7
2.4  數(shù)組
  數(shù)組是有序數(shù)據(jù)的集合,數(shù)組中的每個(gè)元素具有相同的數(shù)組名,根據(jù)數(shù)組名和下標(biāo)來(lái)唯一確定數(shù)組中的元素。使用時(shí)要先聲明后創(chuàng)建
2.4.1  一維數(shù)組的聲明
  格式: 數(shù)據(jù)類型  數(shù)組名[ ]   或  數(shù)據(jù)類型  [ ]數(shù)組名
  例:  int a[]  ;  String s[]  ;  char []c  ;
  說(shuō)明:定義數(shù)組,并不為數(shù)據(jù)元素分配內(nèi)存,因此“[ ]”中不用指出數(shù)組中元素個(gè)數(shù)。
2.4.2  一維數(shù)組的創(chuàng)建與賦值
  創(chuàng)建數(shù)組并不是定義數(shù)組,而是在數(shù)組定義后,為數(shù)組分配存儲(chǔ)空間,同時(shí)對(duì)數(shù)組元素進(jìn)行初始化
  1.用運(yùn)算符new分配內(nèi)存再賦值
   格式:數(shù)組名=new  數(shù)據(jù)類型[size]
   例:int a[]  ; String s[]  ;  char []c  ;
     a=new int[3] ;  // 產(chǎn)生a[0] , a[1] , a[2] 三個(gè)元素
     s=new String[2] ; c=new char[5] ;
     a[0]=8 ; a[1]=8 ; a[2]=8 ;
     s[1]=”網(wǎng)絡(luò)” ;
     int intArr[]=new int[3] ;    //  聲明和分配內(nèi)存并在一起
     char chArr[]=new char[6] ;  // 聲明和分配內(nèi)存并在一起
     System.out.println(a[0]+a[1]) ;
  2.直接賦初值并定義數(shù)組的大小
     例:int i[]={4,5,010,7,3,2,9} ;
       String names[]={“張三”,”李四”,”王五”,”宋七”} ;
       char c[]={‘a(chǎn)’,’b’,’c’,’北’,’京’} ;
  3.測(cè)試數(shù)組長(zhǎng)度(補(bǔ)充)
    格式:數(shù)組名.length
    char c[]={‘a(chǎn)’,’b’,’c’,’北’,’京’} ;
    System.out.print(c.length)  ;   // 輸出5
2.4.3  多維數(shù)組
  以二維數(shù)組為例    
 例:int  d[][] ;  // 定義一個(gè)二維數(shù)組
   d=new int[3][4] ; // 分配3行4列數(shù)組內(nèi)存
   char c[][]=new char[2][3] ; // 定義和分配在一起
   int a[][]=new int[2][] ;
   a[0]=new int[3] ;   // 第二維第一個(gè)元素指向3個(gè)整型數(shù)
   a[1]=new int[5] ;   // 第二維第一個(gè)元素指向5個(gè)整型數(shù)
           // Java可以第二維不等長(zhǎng)
   int  i[][]={{0},{1,4,5},{75,6},{8,50,4,7}} ; //定義和賦初值在一起
   System.out.println(i[2][1])  ;   // 輸出6
   System.out.println(i[1][2])  ;   // 輸出5
   System.out.print(i.length)   ;   // 輸出4
   System.out.print(i[1].length);   // 輸出3
例: 下面數(shù)組定義哪些是正確的
   int  a[][]=new  int[10,10]      //錯(cuò)
   int  a[10][10]=new  int[][]     //錯(cuò)
   int  a[][]=new  int[10][10]     //錯(cuò)
   int  []a[]=new  int[10][10]     //對(duì)
   int  [][]a=new  int[10][10]     //對(duì)

查看更多