官术网_书友最值得收藏!

3.3 示例程序設(shè)計(jì)的Java語法要點(diǎn)

3.3.1 類和對象

1.類的定義

將具有相同屬性及相同行為的一組對象稱為類,它是Java程序的基本組成單元。類、屬性和方法的定義格式和作用如下。

[修飾符]class類名[extends父類名][implements接口1,接口2]{

類屬性聲明:[修飾符]屬性類型 屬性名

類方法聲明:[修飾符]返回值類型 方法名(形式參數(shù)表)[throw異常]{}

}

1)修飾符定義了類、屬性和方法的訪問特性及其他特性。修飾符包括public、private、protected、static、final、abstract等。

2)繼承是由現(xiàn)有的類創(chuàng)建新類的機(jī)制。子類(新的類)通過關(guān)鍵字extends繼承父類(被繼承的類)。Java的類只能有一個直接父類,使用接口可以實(shí)現(xiàn)多重繼承。一個類可以通過關(guān)鍵字implements實(shí)現(xiàn)一個或多個接口。

3)類屬性也稱為字段或成員變量,它的作用域是整個類。

4)類方法定義了該類的對象所能完成的某一項(xiàng)具體功能。類的構(gòu)造方法是一種特殊的方法,它的定義方式與普通方法的區(qū)別包括以下3點(diǎn):

①構(gòu)造方法的名稱和類名相同;

②構(gòu)造方法沒有返回值;

③構(gòu)造方法在創(chuàng)建對象時被自動調(diào)用。

以下是創(chuàng)建機(jī)器人仿真程序gl_robot中部件part0部分的示例代碼:

978-7-111-59258-7-Chapter03-9.jpg

978-7-111-59258-7-Chapter03-10.jpg

2.創(chuàng)建對象

Java程序用類創(chuàng)建對象,通過對象之間的信息傳遞完成各種功能。創(chuàng)建對象就是在內(nèi)存中開辟一段空間,存放對象的屬性和方法。創(chuàng)建對象分為聲明對象和實(shí)例化對象兩個步驟,它們的格式如下:

類名 對象名; //對象的聲明

對象名=new 類名(參數(shù)列表); //對象的實(shí)例化

也可以將兩個步驟合為一個步驟,如下:

類名 對象名=new類名(參數(shù)列表); //對象的聲明和實(shí)例化

以下是機(jī)器人仿真樣機(jī)gl_robot中部件part0~part2的聲明和實(shí)例化的示例代碼:

public class viewRenderer implements Renderer{

//加載part0

private_part0 part0=new_part0();

//加載part1

private_part1 part1=new_part1();

//加載part2

private_part2 part2=new_part2();

//

……

}

3.對象的使用

通過訪問對象的屬性和方法可以使用對象,需要使用引用運(yùn)算符“.”完成,其格式如下:

對象名.屬性名 //使用對象中的屬性

對象名.方法名 //使用對象中的方法

以下是機(jī)器人仿真程序gl_robot中使用對象_surface的屬性和方法的示例代碼:

//加載surface類

_surface surface=new_surface();

//調(diào)用surface類的rect_vertex()方法

surface.rect_vertex(p0,p1,p2,p3,normal_p0);

//引用surface類的變量

vtx_n=surface.vtx_n;

3.3.2 枚舉類型

Java 5以后的版本開始支持枚舉類型。當(dāng)需要一個有限集合,而且有限集合中的數(shù)據(jù)為特定值時,可以使用枚舉類型。枚舉類型的定義使用關(guān)鍵字enum,其語法格式如下:

978-7-111-59258-7-Chapter03-11.jpg

以下是枚舉類型OP_MODE的示例代碼:

public enumOP_MODE{

AUTOMATIC, //自動模式

JOG, //手動模式

EDIT, //編輯模式

NULL //空閑

}

3.3.3 數(shù)組

數(shù)組是類型相同的有序數(shù)據(jù)集合,提供數(shù)據(jù)的順序操作和處理機(jī)制。

1.數(shù)組的聲明和初始化

下面以一維數(shù)組為例介紹數(shù)組的聲明和初始化過程。

一維數(shù)組的聲明和初始化方法為:

數(shù)組類型[]數(shù)組名;

數(shù)組名=new數(shù)組類型[元素?cái)?shù)目];

數(shù)組類型[]數(shù)組名=new數(shù)組類型[元素?cái)?shù)目];

以下是一個元素?cái)?shù)目為N的整型變量數(shù)組a的聲明和初始化示例:

int[]a=new int[N];

2.數(shù)組的引用

Java語言的數(shù)組元素引用方法與C語言相同,下面是一個一維數(shù)組的引用示例:

b=a[i];

3.多維數(shù)組

使用多維數(shù)組可以處理更復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。以下是一個二維數(shù)組的聲明和初始化示例:

int[][]a=new int[N][M];//N和M是整型變量或常數(shù)

3.3.4 String類

1.String類字符串的初始化

使用String類可以定義字符串對象。下面介紹聲明和初始化字符串的示例。

聲明字符串對象s1:

String s1;

用關(guān)鍵字new創(chuàng)建空白字符串對象s2:

String s2=new String();

用賦值方式聲明和初始化一個字符串對象s3:

String s3="OK!";

2.String類字符串與基本數(shù)據(jù)類型之間的轉(zhuǎn)換

將基本數(shù)據(jù)類型轉(zhuǎn)化成String類字符串有以下兩種方法:

1)Java提供String.valueOf()靜態(tài)方法,它的功能是返回變量的字符串形式,例如:

intnum=12345;

String str1=String.valueOf(num);//str1的內(nèi)容是“12345”

2)使用“字符串+操作數(shù)”形式時,操作數(shù)會被自動轉(zhuǎn)換為字符串類型,例如:

int axisNum=8;

String str2="最大軸數(shù)"+axisNum; //str2的內(nèi)容是“最大軸數(shù)8”

基本數(shù)據(jù)類型都有一個對應(yīng)的包裝類(Wrapper Class),例如,int類型對應(yīng)Integer類,float類型對應(yīng)Float類。調(diào)用這些包裝類的相應(yīng)方法即可實(shí)現(xiàn)String類字符串向基本數(shù)據(jù)類型的轉(zhuǎn)化,例如:

String s1="10";

int i=Integer.parseInt(s1);

String s2="3.14"

float f=Float.parseFloat(s2);

3.3.5 異常處理

異常是程序運(yùn)行過程中發(fā)生的、會打斷程序正常執(zhí)行的事件,例如被0除溢出、數(shù)組越界、文件丟失等都屬于異常情況。3.3.4小節(jié)最后一段程序中的方法parseInt()和parseFloat()在執(zhí)行String字符串轉(zhuǎn)化時,如果字符串不合法也會拋出異常。

Java語言提供了try-catch-finally語句,用于實(shí)現(xiàn)異常的捕獲和處理,其格式如下:

try{

可能拋出異常的語句塊

}catch(異常類異常對象){

發(fā)生異常時的處理語句

}finally{//finally語句塊是可以省略的且一定會運(yùn)行到的程序代碼

}

使用try-catch-finally語句后,String類字符串轉(zhuǎn)化成基本數(shù)據(jù)類型的完整代碼如下:

try{

String s1="10";

int i=Integer.parseInt(s1);

String s2="3.14"

float f=Float.parseFloat(s2);

}catch(NumberFormatException exp){

//發(fā)現(xiàn)非法字符,報(bào)警

……

}

Java語言還支持在程序中使用關(guān)鍵字throw拋出異常及自定義異常種類,請查閱相關(guān)Java語法參考書了解這些語法規(guī)則的詳細(xì)內(nèi)容。

3.3.6 包的應(yīng)用

包(Package)又稱為類庫,是Java語言的重要部分。包是類和接口的容器,用于分隔類名空間,一般將一組功能相近或者相關(guān)的類和接口放在一個包中,不同包中的類名可以相同。

創(chuàng)建包是指在當(dāng)前目錄下創(chuàng)建與包名結(jié)構(gòu)一致的目錄結(jié)構(gòu),并將指定的類文件放入該目錄。包的聲明使用關(guān)鍵字package。package語句必須是Java代碼文件的第一條可執(zhí)行語句,而且一個文件中最多只能有一條package語句。以下是機(jī)器人仿真程序gl_robot中包的聲明語句,它指明該文件定義的類屬于包c(diǎn)om.example.gl_robot:packagecom.example.gl_robot; //gl_robot程序包的定義

包的引用分為兩種方式。

第一種方式是將包名作為類名的一部分,采用“包名.類名”的格式訪問其他包中的類。例如要訪問java.util包中的Timer類,則該類可以寫成java.util.Timer。

第二種方式是使用import命令將某個包內(nèi)的類導(dǎo)入,程序代碼不用寫被引用的包名。例如在代碼的開始部分加上“import java.util.*;”,則在程序的其他地方可以直接訪問Timer類。以下是import語句的示例代碼,其中通配符“*”代表包中的所有類:

import java.net.*; //引用java.net包的全部類

import android.widget.Button; //引用Android系統(tǒng)的Button控件

JDK中包括多種實(shí)用的包,如表3.5所列。java.lang包是編譯器自動加載的,因此使用該包中的類時,可以省略“import java.lang.*”語句。

表3.5 Java的常用包及其功能

978-7-111-59258-7-Chapter03-12.jpg

3.3.7 數(shù)學(xué)運(yùn)算

java.lang包中提供了一個Math類,Math類包含用于執(zhí)行數(shù)學(xué)運(yùn)算的方法,如初等指數(shù)、對數(shù)、平方根和三角函數(shù)等。表3.6和表3.7分別列舉出了Math類中靜態(tài)常量和常用的方法。

表3.6 Math類的靜態(tài)常量

978-7-111-59258-7-Chapter03-13.jpg

表3.7 Math類的常用方法

978-7-111-59258-7-Chapter03-14.jpg

主站蜘蛛池模板: 会同县| 柯坪县| 苏尼特右旗| 松阳县| 吉林省| 陇川县| 深泽县| 宁国市| 自治县| 凉城县| 新余市| 尉氏县| 青铜峡市| 辛集市| 孟连| 保定市| 上栗县| 武鸣县| 曲松县| 南川市| 台江县| 慈溪市| 灯塔市| 津南区| 安仁县| 桐庐县| 本溪市| 布尔津县| 天台县| 北辰区| 大渡口区| 固安县| 临西县| 奇台县| 德阳市| 鄂伦春自治旗| 广南县| 龙江县| 南漳县| 工布江达县| 哈尔滨市|