第3章Java中的基本數(shù)據(jù)類型_第1頁
第3章Java中的基本數(shù)據(jù)類型_第2頁
第3章Java中的基本數(shù)據(jù)類型_第3頁
第3章Java中的基本數(shù)據(jù)類型_第4頁
第3章Java中的基本數(shù)據(jù)類型_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第3 3章章 JavaJava中的基本數(shù)據(jù)類型和運算符中的基本數(shù)據(jù)類型和運算符在上面兩章中,我們對在上面兩章中,我們對Java有了一個初步的認識,并且準備好有了一個初步的認識,并且準備好了我們的開發(fā)利器了我們的開發(fā)利器Eclipse。下面我們回顧一下我們對前兩章學(xué)。下面我們回顧一下我們對前兩章學(xué)到的東西。到的東西。我們知道我們知道JDK是是Java世界的基礎(chǔ),并且在電腦上成功安裝和配世界的基礎(chǔ),并且在電腦上成功安裝和配置了置了JDK。我們編寫了第一個我們編寫了第一個Java程序。雖然我們對這個程序并不了解,程序。雖然我們對這個程序并不了解,但是我們知道了一個但是我們知道了一個Java程序程序

2、“大概長得什么樣大概長得什么樣”。我們了解了編寫一個我們了解了編寫一個Java程序的過程程序的過程編寫源代碼,編譯源編寫源代碼,編譯源代碼,運行程序。并且在源代碼出錯的時候,我們需要找到錯誤。代碼,運行程序。并且在源代碼出錯的時候,我們需要找到錯誤。我們將我們將Eclipse安裝到電腦上,并且學(xué)會了在安裝到電腦上,并且學(xué)會了在Eclipse中創(chuàng)建項中創(chuàng)建項目,使用目,使用Eclipse提供的各種工具編寫、編譯并運行程序。提供的各種工具編寫、編譯并運行程序。3.1 Java3.1 Java中有的基本數(shù)據(jù)類型中有的基本數(shù)據(jù)類型基本數(shù)據(jù)類型是一門編程語言所支持的最底層的數(shù)據(jù)基本數(shù)據(jù)類型是一門編程語言

3、所支持的最底層的數(shù)據(jù)類型。程序中所有的數(shù)據(jù)歸根究底都是由基本數(shù)據(jù)類型構(gòu)成類型。程序中所有的數(shù)據(jù)歸根究底都是由基本數(shù)據(jù)類型構(gòu)成的?;緮?shù)據(jù)類型就好像一門編程語言中的的?;緮?shù)據(jù)類型就好像一門編程語言中的“基本微?;疚⒘!?。基本數(shù)據(jù)類型是各種編程語言都有的一個概念。下面我們開基本數(shù)據(jù)類型是各種編程語言都有的一個概念。下面我們開始對始對Java語言的基本數(shù)據(jù)類型進行介紹。語言的基本數(shù)據(jù)類型進行介紹。3.1.1 3.1.1 基本數(shù)據(jù)類型基本數(shù)據(jù)類型編程語言中的數(shù)據(jù)原編程語言中的數(shù)據(jù)原子子編寫編寫Java程序,其實就是使用程序,其實就是使用Java處理數(shù)據(jù)。在處理數(shù)據(jù)。在Java的的世界中,雖然數(shù)據(jù)類

4、型千變?nèi)f化,有字符串、圖片、文件、世界中,雖然數(shù)據(jù)類型千變?nèi)f化,有字符串、圖片、文件、聲音數(shù)據(jù)和視頻數(shù)據(jù)等等。但是構(gòu)成所有聲音數(shù)據(jù)和視頻數(shù)據(jù)等等。但是構(gòu)成所有Java數(shù)據(jù)類型的基數(shù)據(jù)類型的基礎(chǔ)的數(shù)據(jù),只有為數(shù)不多的幾種。我們稱這幾種基礎(chǔ)數(shù)據(jù)為礎(chǔ)的數(shù)據(jù),只有為數(shù)不多的幾種。我們稱這幾種基礎(chǔ)數(shù)據(jù)為Java基本數(shù)據(jù)類型?;緮?shù)據(jù)類型。3.1.2 Java3.1.2 Java中的基本上數(shù)據(jù)類型介紹中的基本上數(shù)據(jù)類型介紹值和值域(取值范圍)是值和值域(取值范圍)是Java基本數(shù)據(jù)類型的兩個最基本數(shù)據(jù)類型的兩個最重要的屬性。我們可以將重要的屬性。我們可以將Java基本數(shù)據(jù)類型與我們數(shù)學(xué)中學(xué)基本數(shù)據(jù)類型與我

5、們數(shù)學(xué)中學(xué)習(xí)過的數(shù)字類型(如自然數(shù),整數(shù),有理數(shù),無理數(shù)等)做習(xí)過的數(shù)字類型(如自然數(shù),整數(shù),有理數(shù),無理數(shù)等)做一個類比,用來幫助我們理解基本數(shù)據(jù)類型。一個類比,用來幫助我們理解基本數(shù)據(jù)類型。而基本數(shù)據(jù)類型與數(shù)學(xué)中的數(shù)字類型有一個很不一樣而基本數(shù)據(jù)類型與數(shù)學(xué)中的數(shù)字類型有一個很不一樣的地方就是:編程語言中的數(shù)據(jù)類型的值域是有限的。也就的地方就是:編程語言中的數(shù)據(jù)類型的值域是有限的。也就是說,在編程語言中,不可能有一種數(shù)據(jù)類型可以表示所有是說,在編程語言中,不可能有一種數(shù)據(jù)類型可以表示所有的自然數(shù)。其實這個也很好理解。即使是在現(xiàn)實中,我們也的自然數(shù)。其實這個也很好理解。即使是在現(xiàn)實中,我們也不

6、可能處理所有自然數(shù)。不可能處理所有自然數(shù)。3.1.3 3.1.3 基本數(shù)據(jù)類型值域基本數(shù)據(jù)類型值域上一節(jié)中我們了解的基本數(shù)據(jù)類型的概念,并且知道上一節(jié)中我們了解的基本數(shù)據(jù)類型的概念,并且知道了了Java中共有中共有8種數(shù)據(jù)類型。下面我們對每種數(shù)據(jù)類型做一種數(shù)據(jù)類型。下面我們對每種數(shù)據(jù)類型做一個簡單的介紹。個簡單的介紹。1byte類型類型2short類型類型3int類型類型4long類型類型5float類型類型6double類型類型7char類型類型8boolean類型類型3.2 Java3.2 Java運算符運算符本節(jié)中我們將講述本節(jié)中我們將講述Java中另一個最基本的東西中另一個最基本的東西

7、Java運算符。在使用運算符。在使用Java運算符的時候我們需要用到上面介運算符的時候我們需要用到上面介紹的紹的Java基本數(shù)據(jù)類型,同時了解變量的概念?;緮?shù)據(jù)類型,同時了解變量的概念。3.2.1 3.2.1 變量的概念變量的概念首先,為了使用首先,為了使用Java運算符,我們必須先引入變量(運算符,我們必須先引入變量(Variable)的概念。變量就是程序中使用的數(shù)據(jù)。我們可以將變量)的概念。變量就是程序中使用的數(shù)據(jù)。我們可以將變量用于運算。變量有三個屬性用于運算。變量有三個屬性變量名(變量名(Variable Name),變量),變量類型(類型(Variable Type)和變量的值()

8、和變量的值(Variable Value)。)。變量就是數(shù)據(jù)的載體,我們在程序中就是通過創(chuàng)建一個變量變量就是數(shù)據(jù)的載體,我們在程序中就是通過創(chuàng)建一個變量來使用基本數(shù)據(jù)類型的。數(shù)據(jù)類型可以說是一個抽象的規(guī)定,而來使用基本數(shù)據(jù)類型的。數(shù)據(jù)類型可以說是一個抽象的規(guī)定,而一個變量則是符合這個規(guī)定的、可以使用的具體。我們理解后,一個變量則是符合這個規(guī)定的、可以使用的具體。我們理解后,變量其實是一個很簡單的概念。變量其實是一個很簡單的概念。3.2.2 3.2.2 插曲:插曲:JavaJava中的語句中的語句我們發(fā)現(xiàn),無論是在第一章中的我們發(fā)現(xiàn),無論是在第一章中的HelloWorld程序里,程序里,還是在上

9、面一節(jié)中的創(chuàng)建一個變量的代碼中,方法里每一行還是在上面一節(jié)中的創(chuàng)建一個變量的代碼中,方法里每一行代碼似乎都是以分號(代碼似乎都是以分號(;)結(jié)束的。像這樣以分號結(jié)束的一)結(jié)束的。像這樣以分號結(jié)束的一行或多行代碼,我們稱之為行或多行代碼,我們稱之為Java中的語句。也就是說,我們中的語句。也就是說,我們可以把可以把Java中的分號理解成為我們漢語中的句號,它們都是中的分號理解成為我們漢語中的句號,它們都是代表一句話的結(jié)束。只不過是在漢語中,我們可以相對靈活代表一句話的結(jié)束。只不過是在漢語中,我們可以相對靈活的使用句號,而在的使用句號,而在Java中,我們卻要嚴格遵守中,我們卻要嚴格遵守Java語

10、法來使語法來使用分號。用分號。3.2.3 3.2.3 定義一個變量和變量名的規(guī)范定義一個變量和變量名的規(guī)范我們首先來看一下我們首先來看一下Java中創(chuàng)建一個變量的基本語法:中創(chuàng)建一個變量的基本語法:“數(shù)據(jù)類型數(shù)據(jù)類型”+“空格空格”+“合法的變量名合法的變量名”。這里空格可以有多個,但是至少有一個。這里空格可以有多個,但是至少有一個。在這里我們首先需要注意的就是在這里我們首先需要注意的就是“變量名變量名”。變量名必須是。變量名必須是Java中一中一個合法的標(biāo)識符(個合法的標(biāo)識符(identifier)。什么是標(biāo)識符呢?)。什么是標(biāo)識符呢?Java語言語法對標(biāo)識符有語言語法對標(biāo)識符有明確的規(guī)定。

11、下面我們給出標(biāo)識符的規(guī)范。明確的規(guī)定。下面我們給出標(biāo)識符的規(guī)范。標(biāo)識符必須以英文字母(包括大寫和小寫)或下劃線(標(biāo)識符必須以英文字母(包括大寫和小寫)或下劃線(_)開頭。)開頭。標(biāo)識符除開頭之外的字符,允許使用英文字幕(包括大寫和小寫),標(biāo)識符除開頭之外的字符,允許使用英文字幕(包括大寫和小寫),下劃線(下劃線(_)和數(shù)字。其余字符都不可以使用。)和數(shù)字。其余字符都不可以使用。標(biāo)識符區(qū)分大小寫。也就是標(biāo)識符區(qū)分大小寫。也就是a和和A是兩個不同的變量名。是兩個不同的變量名。標(biāo)識符不能是標(biāo)識符不能是Java中的關(guān)鍵字。中的關(guān)鍵字。標(biāo)識符不能重名。標(biāo)識符不能重名。3.2.4 Java3.2.4 Ja

12、va中的基本運算符和表達式中的基本運算符和表達式首先我們介紹一下運算符的概念。運算符就是對首先我們介紹一下運算符的概念。運算符就是對Java變量進行運算操作的符號。本節(jié)中我們將介紹如下幾個最常變量進行運算操作的符號。本節(jié)中我們將介紹如下幾個最常用的運算符:賦值運算符(用的運算符:賦值運算符(=)、加法運算符()、加法運算符(+)、減法運)、減法運算符(算符(-)、乘法運算符()、乘法運算符(*)、除法運算符()、除法運算符(/)、括號運算)、括號運算符(符(())、余數(shù)運算符()、余數(shù)運算符(%)以及多個布爾運算符。)以及多個布爾運算符。1賦值運算符(賦值運算符(=)2 四則運算符四則運算符3

13、 括號運算符括號運算符4 余數(shù)運算符余數(shù)運算符3.2.5 Java3.2.5 Java中的布爾運算符中的布爾運算符下面我們來介紹下面我們來介紹Java中的布爾運算符。中的布爾運算符。Java中常用的布爾中常用的布爾運算符有如下幾個:相等(運算符有如下幾個:相等(=),不等(),不等(!=),大于(),大于(),?。?,小于(于(=),小于或等于(),小于或等于(=),和(),和(&),),簡單和(簡單和(&),或(),或(|),簡單或(),簡單或(|),取反(),取反(!)。)。1 值對比相關(guān)的布爾運算符值對比相關(guān)的布爾運算符關(guān)系運算符關(guān)系運算符2 求求boolean類型數(shù)據(jù)關(guān)系的布爾運算符類型

14、數(shù)據(jù)關(guān)系的布爾運算符邏輯運算符邏輯運算符3.2.6 位運算符位運算符位運算符是專門針對內(nèi)存中的二進制數(shù)據(jù)進行運算的位運算符是專門針對內(nèi)存中的二進制數(shù)據(jù)進行運算的一種運算符。一種運算符。Java中的位運算符一共有中的位運算符一共有7個,分別是:按位個,分別是:按位與(與(&)、按位或()、按位或(|)、按位非()、按位非()、按位異或()、按位異或()、)、左移位(左移位()和無符號右移位()和無符號右移位()。在)。在這里的前四個運算又可叫做位邏輯運算符,后面的三個叫做這里的前四個運算又可叫做位邏輯運算符,后面的三個叫做移位運算符。而這其中除了按位非運算是一元運算符,其他移位運算符。而這其中除

15、了按位非運算是一元運算符,其他的都是二元運算符。當(dāng)然因為本書中很少談及位運算(初學(xué)的都是二元運算符。當(dāng)然因為本書中很少談及位運算(初學(xué)者也只做了解即可),只需要知道有這么個分類,并做簡單者也只做了解即可),只需要知道有這么個分類,并做簡單了解。了解。3.3 3.3 基本數(shù)據(jù)類型運算的難點基本數(shù)據(jù)類型運算的難點上面一節(jié)中我們介紹了上面一節(jié)中我們介紹了Java基本類型變量和基本類型變量和Java中常中常用的操作符。現(xiàn)在我們大概覺得它們用起來和數(shù)學(xué)中的操作用的操作符?,F(xiàn)在我們大概覺得它們用起來和數(shù)學(xué)中的操作符基本是一樣的?;緵]有超出我們符基本是一樣的。基本沒有超出我們“小學(xué)數(shù)學(xué)小學(xué)數(shù)學(xué)”接觸過的接

16、觸過的水平。只不過是小學(xué)的時候我們計算水平。只不過是小學(xué)的時候我們計算3+5,而在,而在Java程序里程序里面我們更多的是計算面我們更多的是計算a+b。下面我們本節(jié)中的內(nèi)容將會學(xué)習(xí)。下面我們本節(jié)中的內(nèi)容將會學(xué)習(xí)到到Java運算符中與我們傳統(tǒng)數(shù)學(xué)中學(xué)到的不一樣的地方。運算符中與我們傳統(tǒng)數(shù)學(xué)中學(xué)到的不一樣的地方。3.3.1 3.3.1 強制類型轉(zhuǎn)換強制類型轉(zhuǎn)換小數(shù)哪里去了小數(shù)哪里去了首先,我們知道首先,我們知道Java中處理變量與數(shù)學(xué)中不同的一個地方就是數(shù)中處理變量與數(shù)學(xué)中不同的一個地方就是數(shù)學(xué)中一個符號可以代表任何類型的數(shù)字,而在學(xué)中一個符號可以代表任何類型的數(shù)字,而在Java中,一個變量只能中

17、,一個變量只能有一種類型。而有一種類型。而Java中有中有byte、short、int、long、float和和double六種六種類型都是用來表示數(shù)字的。我們有時候會遇到想要將一個類型的數(shù)字類型都是用來表示數(shù)字的。我們有時候會遇到想要將一個類型的數(shù)字變量值賦值給另一個類型的數(shù)字變量。這樣就會有一個不同類型的值變量值賦值給另一個類型的數(shù)字變量。這樣就會有一個不同類型的值相互轉(zhuǎn)換的問題。相互轉(zhuǎn)換的問題。3.3.2 3.3.2 類型的轉(zhuǎn)換在運算中悄悄進行類型的轉(zhuǎn)換在運算中悄悄進行其實在對兩個不同類型的變量進行運算的時候,其實在對兩個不同類型的變量進行運算的時候,Java會先將精度低的變量轉(zhuǎn)換成高精

18、度的變量(會先將精度低的變量轉(zhuǎn)換成高精度的變量(Java可以將高精可以將高精度變量值轉(zhuǎn)換成低精度值,也可以反過來轉(zhuǎn)換)。然后對兩度變量值轉(zhuǎn)換成低精度值,也可以反過來轉(zhuǎn)換)。然后對兩個通類型的變量進行運算,最后返回的結(jié)果也是高精度的。個通類型的變量進行運算,最后返回的結(jié)果也是高精度的。當(dāng)操作符的操作數(shù)有不同的精度時,當(dāng)操作符的操作數(shù)有不同的精度時,Java會將低精度會將低精度的操作數(shù)轉(zhuǎn)換為高精度的操作數(shù),然后進行運算。運算的結(jié)的操作數(shù)轉(zhuǎn)換為高精度的操作數(shù),然后進行運算。運算的結(jié)果也是高精度的值。果也是高精度的值。對于直接出現(xiàn)在程序中的整數(shù),對于直接出現(xiàn)在程序中的整數(shù),Java會當(dāng)作會當(dāng)作int類

19、型處類型處理;對于浮點數(shù),理;對于浮點數(shù),Java會當(dāng)作會當(dāng)作double處理。處理。3.3.3 3.3.3 強制類型轉(zhuǎn)換最優(yōu)先強制類型轉(zhuǎn)換最優(yōu)先強制類型轉(zhuǎn)換的運算優(yōu)先級是高于算數(shù)運算符的。如果我們強制類型轉(zhuǎn)換的運算優(yōu)先級是高于算數(shù)運算符的。如果我們把把3.3.1中中ForceConvert例程修改為如下的樣子。例程修改為如下的樣子。強制類型轉(zhuǎn)換運算的優(yōu)先級高于算數(shù)運算。強制類型轉(zhuǎn)換運算的優(yōu)先級高于算數(shù)運算。使用強制類型運算的時候,一個好習(xí)慣是將被轉(zhuǎn)換的變量或使用強制類型運算的時候,一個好習(xí)慣是將被轉(zhuǎn)換的變量或者表達式用小括號括起來。這樣可以有效的避免出錯,而且可以者表達式用小括號括起來。這樣

20、可以有效的避免出錯,而且可以讓程序更加易讀。讓程序更加易讀。3.3.4 3.3.4 等號其實不簡單等號其實不簡單在前面,我們介紹到等號就是用來賦值的。這個用法在前面,我們介紹到等號就是用來賦值的。這個用法與我們從小學(xué)以來一直會的用法是一樣的。但是在與我們從小學(xué)以來一直會的用法是一樣的。但是在Java中,中,等號還有更豐富的用法。等號還有更豐富的用法。等號(等號(=)除了會完成賦值操作以外,也跟其它運算符)除了會完成賦值操作以外,也跟其它運算符一樣,會返回一個值。一樣,會返回一個值。在等號左邊的表達式中可以使用等號右邊的變量。在等號左邊的表達式中可以使用等號右邊的變量。3.3.5 3.3.5 小

21、心使用浮點數(shù)進行比較小心使用浮點數(shù)進行比較其實在其實在Java中,因為浮點數(shù)不精確這個特點,我們極中,因為浮點數(shù)不精確這個特點,我們極少使用浮點數(shù)進行相等運算(少使用浮點數(shù)進行相等運算(=)。當(dāng)我們需要判斷兩個?。?。當(dāng)我們需要判斷兩個浮點數(shù)是不是相等的時候,比較通常的做法是讓兩個浮點數(shù)相點數(shù)是不是相等的時候,比較通常的做法是讓兩個浮點數(shù)相減,如果他們的差足夠小,那么我們就認為兩個浮點數(shù)是相減,如果他們的差足夠小,那么我們就認為兩個浮點數(shù)是相等的。等的。最好不要對浮點數(shù)進行相等比較。要用它們的差的絕最好不要對浮點數(shù)進行相等比較。要用它們的差的絕對值與一個我們關(guān)心的精度進行比較,來判斷兩個浮點數(shù)是

22、對值與一個我們關(guān)心的精度進行比較,來判斷兩個浮點數(shù)是否相等。否相等。編程中我們一般使用編程中我們一般使用|和和&。3.3.6 boolean3.3.6 boolean和和charchar上面的章節(jié)中我們主要使用了上面的章節(jié)中我們主要使用了Java基本類型中的數(shù)字基本類型中的數(shù)字相關(guān)的類型。下面我們在本小節(jié)中我們對相關(guān)的類型。下面我們在本小節(jié)中我們對boolean和和char各各給出一個例程。給出一個例程。1 通過例程學(xué)習(xí)通過例程學(xué)習(xí)boolean類悉變量類悉變量2 通過例程學(xué)習(xí)通過例程學(xué)習(xí)char類悉變量類悉變量3.3.7 3.3.7 不要使用還沒定義的變量不要使用還沒定義的變量初學(xué)者最經(jīng)常做

23、的事情就是看到編譯輸出錯誤提示,初學(xué)者最經(jīng)常做的事情就是看到編譯輸出錯誤提示,就垂頭喪氣。在這里我們大可不必,沒人能夠開始寫程序就就垂頭喪氣。在這里我們大可不必,沒人能夠開始寫程序就不出錯的。學(xué)會看錯誤信息是編程技術(shù)提高的一個表現(xiàn)。當(dāng)不出錯的。學(xué)會看錯誤信息是編程技術(shù)提高的一個表現(xiàn)。當(dāng)我們慢慢學(xué)會看懂編譯器輸出的錯誤提示的時候,我們會發(fā)我們慢慢學(xué)會看懂編譯器輸出的錯誤提示的時候,我們會發(fā)現(xiàn)編譯器真的是很現(xiàn)編譯器真的是很“強大強大”。它幾乎每次都能準確的指出程。它幾乎每次都能準確的指出程序中的語法錯誤。我們只要學(xué)會序中的語法錯誤。我們只要學(xué)會“傾聽它的聲音傾聽它的聲音”,那么排,那么排除程序中的

24、錯誤將是一件輕松愉快的事情。等我們發(fā)現(xiàn)編譯除程序中的錯誤將是一件輕松愉快的事情。等我們發(fā)現(xiàn)編譯錯誤就能夠馬上將它搞定的時候,我們就不再是錯誤就能夠馬上將它搞定的時候,我們就不再是Java初學(xué)者初學(xué)者了。了。3.3.8 String3.3.8 Stringcharchar串起的項鏈串起的項鏈本節(jié)中,我們來見一下我們在第一章的老朋友本節(jié)中,我們來見一下我們在第一章的老朋友String。1 學(xué)習(xí)使用學(xué)習(xí)使用String類型類型2 String類型的類型的“加法加法”運算運算3 String類型與基本類型的類型與基本類型的“加法加法”運算運算3.3.9 3.3.9 轉(zhuǎn)義符轉(zhuǎn)義符看不見寫得出看不見寫得出本章到這里就快結(jié)束

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論