java語(yǔ)言程序設(shè)計(jì)_第1頁(yè)
java語(yǔ)言程序設(shè)計(jì)_第2頁(yè)
java語(yǔ)言程序設(shè)計(jì)_第3頁(yè)
java語(yǔ)言程序設(shè)計(jì)_第4頁(yè)
java語(yǔ)言程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩93頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

X

Java

JIMMktmytUrm

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

i

第三章Java語(yǔ)言面句對(duì)象的特征

JAVA

1.茹向?qū)ο蟮暮懈拍?/p>

2.類(lèi)的定義

3.對(duì)象

4.類(lèi)的健疑和多態(tài)

5.接口和包

6.多用工具類(lèi)

2

基本概念

■編程語(yǔ)言

■人和計(jì)事機(jī)進(jìn)行袤流的工具和手段

■編程語(yǔ)言的發(fā)展

■機(jī)器語(yǔ)言:0101001

■匯褊語(yǔ)言:mov,push,add,call

■第三代語(yǔ)言:裔行語(yǔ)言川C語(yǔ)言,代表,過(guò)程化

褊程語(yǔ)言(ProceduralProgrammingLanguage)

■第四代語(yǔ)言:面向?qū)ο蟮鸟鄢陶Z(yǔ)言

3

基本概念

JAVA

■面向?qū)ο?ObjectOriented-OO)

■面向?qū)ο缶幊?ObjectOrientedProgramming-OOP)

■面向?qū)ο笫且环N軟件開(kāi)友的方法,“面向?qū)ο蟮慕裾?/p>

S微花"(OOA&OOD)

■第一個(gè)面向?qū)ο蟮恼Z(yǔ)言:Simula-67

■第一個(gè)鼠功的面向?qū)ο笃空Z(yǔ)言:Smalltalk

■C++,JAVA,C#,PERL等

1.用客觀世界中描述事物的方法來(lái)描述程本中要解決的

問(wèn)奧

2.程星便是鼠堆的對(duì)象,彼此逋述漪息的傳遞,請(qǐng)求其

他對(duì)象進(jìn)行工作

4

基本概念

JAVA

■五個(gè)基存梳念

1.對(duì)象

2.類(lèi)

3.武裝桃

4.健示轆

5.多態(tài)桃

5

基本概念&

________________JAVA

1.對(duì)象(object)

■對(duì)象是對(duì)客現(xiàn)世界中實(shí)體的腆射。

■everythingisanobject

■現(xiàn)實(shí)世界的對(duì)象:桌3、札自行率、電視、

文件、表格、按鈕、窗口

■對(duì)象的兩個(gè)特”上

■收態(tài):猾對(duì)象本身的信息(內(nèi)部信息/內(nèi)部變量)

■行名:實(shí)現(xiàn)對(duì)信息的訪問(wèn)/對(duì)象的糅作

■對(duì)彖的標(biāo)志:用山區(qū)合系同對(duì)象的標(biāo)擁符

■例,山地車(chē)的波態(tài)(兩個(gè)率給、一也齒給,速盛、按熟),

行,(利車(chē)、加速、減速和換排)

6

基本概念&

_______________JAVA

1.對(duì)象(object)

■技態(tài)少變量(variables)

■行,少方法(method)

■對(duì)象就是變量和相關(guān)方法的軟件集合

■一個(gè)對(duì)象可。由其他對(duì)象組合而鼠,窗口(按鈕,

案隼條,次埼相,技態(tài)核號(hào))

■程洋就是對(duì)象的集合,對(duì)象之間相亙袤呈初遍

信完鼠G務(wù)

■搭積木

7

基本概念&

_______________JAVA

2.類(lèi)(class)

■類(lèi)是對(duì)現(xiàn)實(shí)世界中實(shí)體的富盛抽象。

■現(xiàn)實(shí)世界中,方位很多同類(lèi)的對(duì)象,很多意3、

不、自行率,率,計(jì)兵機(jī)。

■一種原型,一種抽象,一種共桃,一個(gè)模板

■每一個(gè)對(duì)象都屬于一個(gè)類(lèi)。

■實(shí)例(instance),某類(lèi)對(duì)象的一個(gè)特定實(shí)體,類(lèi)

是對(duì)象的一個(gè)抽象。

■Java語(yǔ)言中,類(lèi)是一種自定文的微據(jù)類(lèi)型,也

稱(chēng)名類(lèi)類(lèi)型。

8

基本概念&

__________________________________JAVA

3.封裝^

■封裝桃播粉描述某種實(shí)體的微據(jù)也基于送的微據(jù)

的據(jù)作集合到一M,。便彬鼠一個(gè)封裝體,即類(lèi)。

■羽膝使對(duì)象存身的微據(jù)得到保護(hù)/德藏,其他對(duì)

塞依命盤(pán)的迷W孩對(duì)象的揚(yáng)向方法(接口

/interface)即可。

■封裝的優(yōu)點(diǎn)

■模塊化--每個(gè)對(duì)象的源次件可。是和或獨(dú)貪的,可。

被系同的程序碉用。每個(gè)對(duì)彖像一塊積木,可。搭建

系同的形吠

■信息德藏一直帝定又一個(gè)公共接口/方法實(shí)現(xiàn)對(duì)對(duì)象

的彷冏,可。調(diào)整對(duì)象的松嗡信息和方法,而系會(huì)對(duì)

其他碉用它的對(duì)象產(chǎn)皮影響

■提富可專(zhuān)用嘏

9

基本概念

JAVA

4.穗族桃

■,什么會(huì)有徒系7

■建克一個(gè)類(lèi)后,夜現(xiàn)另一個(gè)新的類(lèi)[相同的特槌,

兩個(gè)迄落:童新定義一個(gè)新的類(lèi);在已1類(lèi)的基砒

上,修改(槽/減)

■父類(lèi)和3類(lèi),3類(lèi)健豕(物有)父類(lèi)所有的微據(jù)

和方法,同時(shí)3類(lèi)可。有新的微據(jù)和方法

■箱型輅構(gòu)(層次化修構(gòu))

■根(基類(lèi))

10

基本概念

JAVA

4.穗族桃

U

基本概念

JAVA

4.穗族桃

■多童健家

12

基本概念

JAVA

5.多態(tài)桃

■多態(tài)桃播一個(gè)程本中同名的系同方法於府的情

況kO

■表現(xiàn)在用一個(gè)類(lèi)中少方法的唾武

■點(diǎn)同一個(gè)類(lèi)中,相同的方法名對(duì)應(yīng)房系同的方法實(shí)

現(xiàn)。

■表現(xiàn)在健豕中少方法的唾與

■在3類(lèi)中對(duì)健示的父類(lèi)的方法壹新定文

■方法名相同,便對(duì)應(yīng)的方法實(shí)現(xiàn)系同

13

基本概念

JAVA

5.多態(tài)桃

■多態(tài)桃農(nóng)健示中的表現(xiàn)

14

第三章面向?qū)ο筇卣?/p>

1.基律梳念

2.類(lèi)的定義

3.對(duì)象

4.類(lèi)的健疑和多態(tài)

5.接口和包

6.多用工具類(lèi)

類(lèi)的定義意

________________JAVA

■程格是對(duì)象的集合,而對(duì)象是類(lèi)的實(shí)例化

■源程本就是一個(gè)個(gè)的Java類(lèi)

■Java洋身梃供的類(lèi)(核MAP工)

■Java文福中描述

■程本員可。對(duì)其進(jìn)行倜用

■j2sdkl.4.1_01\jre\lib\rt.jar

■程詹員自己定義的類(lèi)

16

類(lèi)的定義意

________________JAVA

■類(lèi)的文義格式

[類(lèi)的修飾符]class類(lèi)名[extends父類(lèi)名]implements[接口名]

{

類(lèi)型裁員變量1;

類(lèi)型鼠員變量2;

類(lèi)型裁員方法1(參熟1,[參熟2,...]){

方法體;

}

類(lèi)型戚員方法2(參照1,[參敏2,…]){

方法體;

}

}17

類(lèi)的描述>

________________JAVA

■類(lèi)的定義格式

[類(lèi)的修飾符]class類(lèi)名[extends父類(lèi)名][implements接口名]{

■類(lèi)的修飾符

■public:公共類(lèi),可。被其他類(lèi)所使用。Java語(yǔ)言規(guī)定,

程序中:類(lèi)必須是公共類(lèi)。

■無(wú)修飾/默欣說(shuō)明:被類(lèi)兄犍被同一個(gè)包中的其他類(lèi)所

使用,系犍被其它包中的類(lèi)所訪問(wèn)。

■abstract:抽象類(lèi),核類(lèi)沒(méi)嗡具體對(duì)象,系犍被實(shí)例化。

通有抽象類(lèi)是它的所13類(lèi)的公共屬槌的集合。

■final:核類(lèi)系犍嗡3類(lèi)。此類(lèi)的特支是用來(lái)黨我某種標(biāo)

瘠功惚。

■final和abstract旅犍用來(lái)同時(shí)修飾一個(gè)類(lèi)。

18

類(lèi)的描述

JAVA

■類(lèi)的修佛苻

finalclassChessAlgorithm{

classBetterChessAlgorithmextendsChessAlgorithm{

Can'tsubclassfinalclasses:classChessAlgorithm

classBetterChessAlgorithmextendsChessAlgorithm{

A

1error

19

類(lèi)的描述

JAVA

■類(lèi)的定義輅式

[類(lèi)的修飾符]class類(lèi)名[extends父類(lèi)名][implements接口名]{

}

■extends:健系的關(guān)系

■implements:實(shí)現(xiàn)接口(interface)的方法,用。

實(shí)現(xiàn)多重徒示

publicclassTestextendsFrame

implementsActionListener,ItemListener{

20

類(lèi)的描述

JAVA

■一個(gè)簡(jiǎn)單的^(Exam3_l.java)

classStudent{

Stringname,stuNumber;

doublescorel,score2,score3;

voidsetl(Stringsi,Strings2){

name=si;stuNumber=s2;

System.out.println(name+''''+stuNumber);

)

doublesetScore(doubledl,doubled2,doubled3){

doubled;

score1=dl;

score2=d2;

score3=d3;

d=dl+d2+d3;

returnd;

)

)

21

類(lèi)成員-變量和方法乏

________________JAVA

■對(duì)象具市狀態(tài)和行,

■戚員變量定義

[揚(yáng)冏權(quán)限修飾符]類(lèi)型變量名;

[訪問(wèn)權(quán)限修飾符]類(lèi)型變量名[二初值];

[訪問(wèn)權(quán)限修飾符]類(lèi)型變量名[二初值][,變量名[=

初值]…];

■我員方法定義

[訪問(wèn)權(quán)限修飾符]方法返回類(lèi)型方法名([<參鼎表")[throws

異帝名列表]{

方法體;

}

■類(lèi)型:基域類(lèi)型,復(fù)合類(lèi)型(熬殂、類(lèi)傘接口)

22

類(lèi)成員變量的訪問(wèn)及

________________JAVA

■揚(yáng)冏控制修飾符

■公共訪向控制符一public

■公共變量,可被所噴類(lèi)侍間

■默弘訪問(wèn)按刷符

■被同一包中其他類(lèi)訪問(wèn)

■松嗡訪問(wèn)控制符一private

■僅可被接奏◎身訪問(wèn),G何其它類(lèi)(包括孩類(lèi)的3類(lèi)J都系可

訪問(wèn)。

■保護(hù)訪間控制符一protected

■祓類(lèi)匈身、同一個(gè)包中的其他類(lèi)、其他包中接類(lèi)的各奏揚(yáng)間

■松[保護(hù)訪問(wèn)控制符一privateprotected

■該類(lèi)自身、所13類(lèi)訪間

23

類(lèi)成員變量的訪問(wèn)及

_______________________JAVA

■張?jiān)L問(wèn)按制修飾將

■靜態(tài)變量static

■屬于類(lèi)的變量,系屬于某個(gè)對(duì)象。

■景性變量final(即符號(hào)有量)

■他在程序的執(zhí)行過(guò)隹中系會(huì)改變

■說(shuō)明格式;卜修飾符)]final〈類(lèi)型>〈變量名>二《初值》

■易失變量volatile

■可犍同時(shí)被多個(gè)俵程所控制介修改。

24

類(lèi)成員的訪問(wèn)

TAX7^

----------------packageabc;

■public(公共變量/公共與dassA{

允許全權(quán)何冏,無(wú)住何限?publicintx;

publicvoidprint(){...}

classA{

publicintx;

publicvoidprint(){...}packagexyz;

importabc.A;

classB{classB{

voidtest(){voidtest(){

Aa=newA();Aa=newA();

a.x=100;a.x=100;

a.print();a.printQ;

直接訪問(wèn)公有變量X

和公共方法print。

類(lèi)成員的訪問(wèn)

JAVA

■private(松市變量/松帝方法)

■僅犍在其所定義的類(lèi)中被訪同(先構(gòu)苴對(duì)彖,苒訪間)

classA{D:\>javacA.java

privateintx;xhasprivateaccessinA

privatevoidprint(){...}a.x=100;

)A

classB{print()hasprivateaccessinA

voidtest(){a.print();

A

Aa=newA();

2errors

a.x=100;

a.print();

26

D:\>javacB.java

類(lèi)成員的numberhasprivateaccessinsub.A

System.out.printin("result="+A.number);

■protecteeA

■容許類(lèi)存1errors

對(duì)象,苒茄冏)protectedstaticintnumber=l;

classA{

protectedintx;

protectedvoidprint(){...}importsub.A;

publicclassB{

classB{publicstaticvoid

voidtest(){main(Stringars[])

Aa=newA();{System.out.println(uresult=u

a.x=100;+A.number);

a.print();

類(lèi)成員的訪問(wèn)

JAVA

■無(wú)修飾(左胳變量/左騰packageabe;

■容許類(lèi)洋身。及同一個(gè)包c(diǎn)lassA{

classA{intx;

intx;voidprint(){...}

voidprint(){...})

)packageabc;

classB{classB{

voidtest(){voidtest(){

Aa=newA();Aa=newA();

a.x=100;a.x=100;

a.print();a.printQ;

)

)

28

類(lèi)成員變量的訪問(wèn)

JAVA

■小轉(zhuǎn)

名稱(chēng)揚(yáng)問(wèn)權(quán)修飾符類(lèi)洋身各類(lèi)包所有類(lèi)

公於public1

1

欽認(rèn)一一一

保護(hù)protected1

松1private1

29

類(lèi)成員變量

JAVA

■Static(靜態(tài)變量/靜態(tài)方法)

■類(lèi)的變量/方法,獨(dú)貪手類(lèi)的對(duì)象,可△直接

根據(jù)類(lèi)名倜用

classS{

staticintA=12,B=34;

staticvoidprint(){...}

classTest{

publicstaticvoidmain(Stringargs[]){

System.out.printlnC'A=u+S.A+''B="+S.B);

S.print();

30

類(lèi)成員變量

JAVA

■final變量/方法

■final變量:定又一個(gè)多鼎,即變量值系犍改變

finaldoublePI=3.1415926;

■final類(lèi):系惋嗡3類(lèi)

■final方法:方法系犍被專(zhuān)寫(xiě)(overriding)

classChessAlgorithm{

finalvoidnextMove(ChessPiecepieceMoved,

BoardLocationnewLocation){

31

類(lèi)成員方法乏

________________JAVA

■方法:對(duì)象布■,的描述

■黨鼠某種功怩的程本塊

■定義:

[揚(yáng)冏權(quán)限修飾符]方法返回類(lèi)型方法名(參數(shù)表)[throws異有名]{

方法體;

}

■方法參鼎的傳遞

■方法的變載(overloading)/變與(overriding)

■狗透方法

32

類(lèi)成員方法的訪問(wèn)乏

JAVA

■訪問(wèn)控制修飾將

■公共揚(yáng)冏控制符一public

■被所】類(lèi)訪問(wèn)

■默欣揚(yáng)同控制符

■被同一包中其他類(lèi)揚(yáng)向

■松帝揚(yáng)間控制符一private

■被被類(lèi)自身訪冏

■保護(hù)彳方冏控制符一protected

■該類(lèi)自身、同一個(gè)包中的其他類(lèi)、其他包中的3類(lèi)

何同

■松帝保護(hù)彳方向控制符一privateprotected

■被類(lèi)自身、所13類(lèi)揚(yáng)冏

33

類(lèi)成員方法的訪問(wèn)

■琳訪間控制修將

■靜態(tài)方法static

■屬于類(lèi)的方法

■獴珞方法final

■系犍薇3類(lèi)壹新定義的方法

■抽象方法abstract

■兄疇方法說(shuō)明,汶】具體實(shí)現(xiàn)

■冷池方法native

■。其他語(yǔ)言實(shí)現(xiàn)方法功惚

■同步方法synchronized

■用于多俵程程序中的例碉命同步

成員方法

JAVA

■例

classArea{classTest{

doublewidth,height;publicstaticvoidmain(String

voidsetV(doublew,args[]){

doubleh){doubled_product;

width=w;AreamyArea;

height=h;myArea=newArea();

)myArea.setV(4,5);

d_product=myArea.product();

doubleproduct(){System.out.printlnCmyArea的面

積是:"+d_product);

returnwidth*height;

JJ

成員方法&

_______________________JAVA

■方法參熬的傳遞

■方法參數(shù),基存類(lèi)型時(shí),參微傳遢的是變量依,

系怩改變碉用方法中的參微他。

■方法參數(shù),復(fù)合類(lèi)型(例數(shù)殂令對(duì)象),參照

傳遞的是數(shù)殂或?qū)ο蟮某卣魉?,?duì)參數(shù)的改變

會(huì)影響原來(lái)的他。

■例Exam3_3.java,參微,數(shù)組。

■例Exam3_4.java,參微,對(duì)象。

36

成員方法

JAVA

■方法的重載(overloading)

■方法名相同,但方法的參微系同

方法描述方法名參熟類(lèi)型方法返命值

施對(duì)他abs(a)intint

施對(duì)他abs(a)longlong

施對(duì)他abs(a)floatfloat

施對(duì)他abs(a)doubledouble

publicstaticintabs(inta)

publicstaticlongabs(longa)

publicstaticfloatabs(floata)

publicstaticdoubleabs(doublea)37

成員方法

JAVA

■變戰(zhàn)方法的逡落

通帝京編年時(shí)進(jìn)竹。系疣根據(jù)系同的參

劇類(lèi)型、個(gè)劇或順本,尋我獴佐匹配方

法。匹配原則電下;

(1)完全匹配,景佐方案,

(2)系犍完小區(qū)配時(shí),盡量逡落類(lèi)型箝換

代價(jià)景小的一種方案進(jìn)行匹配。

例Exam3_5。

38

成員方法

JAVA

■方法的專(zhuān)寫(xiě)(overriding)

■3類(lèi)唾寫(xiě)父類(lèi)的方法

classFather{classSonextendsFather{

■■■■■■■■■■■■

voiddisplay(){voiddisplayQ{

Fatherf=newFather();Sons=newSon();

f.display();s.display();

39

構(gòu)造方法堂

________________JAVA

■構(gòu)造方法是一種特殊的方法,功怩是對(duì)創(chuàng)建的對(duì)

象進(jìn)行初胎化。

■創(chuàng)建對(duì)象/實(shí)例化對(duì)象一new

方法1:Applea二newApple。;(創(chuàng)建對(duì)象)

方法2:Applea;(對(duì)象的說(shuō)朗)

a=newApple();(實(shí)例化對(duì)象)

1.對(duì)象的實(shí)例化逾過(guò)構(gòu)造方法(constructor)來(lái)實(shí)現(xiàn)

2.構(gòu)造方法的名莊鳥(niǎo)類(lèi)名相同

3.構(gòu)造方法沒(méi)有返?他

4.系疫匈劭碉用構(gòu)造方法

5.構(gòu)造方法可。嗡多個(gè),構(gòu)鼠方法的童戰(zhàn)(overload)

40

構(gòu)造方法

JAVA

■例:對(duì)象的實(shí)例化和初胎化

classQangle{classTest{

inta,h;publicstaticvoidmain(Stringargs[]){

Qangle(){IQangleql=newQangle();

a=10;h=20;輸出結(jié)果:Qangleq2=newQangle(20,50);

)1020Qangleq3=newQangle(ql);

Qangle(intx,inty){2Q5QSystem.out.println(ql.width()"

a=x;h=y;in+ql.heightQ);

1UzuSystem.out.println(q2.width()"

)

Qangle(Qangler){+q2.height());

System.out.println(q3.width()"

a=r.widthQ;

+q3.heightQ);

h=r.height();

)

intwidth(){returna;}

intheightQ{returnh;}

)

構(gòu)造方法

JAVA

■默伏構(gòu)造方法

■定又類(lèi)時(shí),電累系定義G何的構(gòu)造方法,系統(tǒng)

會(huì)自劭,殘類(lèi)生鼠一個(gè)熟女的構(gòu)造方法。核方

法名同類(lèi)名,無(wú)G何彬參,系實(shí)現(xiàn)G何搖作。

例classApple{

intcolor;

運(yùn)行時(shí)系統(tǒng)自動(dòng)賦予

}一個(gè)空構(gòu)造函數(shù)

Applea二newApple。;如Apple(){}

42

抽象類(lèi)(abstractclass)>

■使用修飾將abstract修飾的類(lèi),是一個(gè)未

黨戚的類(lèi)。抽象類(lèi)沒(méi)有具體對(duì)象。

■H有抽象類(lèi)可。包含抽象方法(abstract

methods)

■抽象方法:仇仇聲明了方法,但未實(shí)現(xiàn)

■帝揚(yáng)冏修飾祠

■有返回他類(lèi)型

■有方法名

■有參數(shù)列表

■無(wú)方法體

43

abstractclassPoint{

intx=1,y=1;JAVA

voidmove(intdx,intdy){

x+=dx;

y+=dy;抽象方法:有訪問(wèn)修飾詞、

返回值類(lèi)型、方法名和

參數(shù)列表,無(wú)方法體

abstractvoidalt();

■■■■■■

classSimplePointextendsPoint{

voidalt(){...}

44

抽象類(lèi)(abstractclass)

JAVA

■抽象類(lèi)系犍被實(shí)例化,例Pointp二new

Point()錯(cuò)篌;

■3類(lèi)健示抽象類(lèi)時(shí),處頻唾寫(xiě)抽象方法,

否則仍,抽象類(lèi)

45

abstractclassGraphics{classCircleextendsGraphics{

abstractvoidparameter();doubler;Stringc;

Circle(doubleu,Stringv){

abstractvoidarea();

r=u;c=v;

運(yùn)行結(jié)果\/nirlflarameter(){

1.02.0應(yīng)用場(chǎng)合:不同子類(lèi)可以用5tem.out.println(r+''''+c);}

2.0不同的方式實(shí)現(xiàn)同一共同H){

3.0Redtem.out.println(Math.PI*r*r);}

28.274333;接口,該共同接口建立了

classRecta

一個(gè)基本形式rec=newRectangle(1.0,2.0);

doublen,w;Circlecir=newCircle?。"Red。;

Rectangle(doubleu,doublev){Graphics[]g={rec,cir};

h=u;w=v;for(inti=0;i<g.length;i++){

g[i].parameter();

voidparameter(){g[i].area();

System.out.println(h+''''+w}

voidarea(){System.out.println(h*w);}

46

第三章面向?qū)ο筇卣?/p>

1.基域槐念

2.類(lèi)的笑文

3.對(duì)象

4.類(lèi)的健疑和多態(tài)

5.接口和包

6.卒用工具類(lèi)

對(duì)象的定義意

________________JAVA

■又稱(chēng)對(duì)象攻鼠或創(chuàng)建

■定義珞式

■《類(lèi)名x對(duì)象名表>;

■《對(duì)象名〉二new<類(lèi)名〉([<實(shí)參表>]);

■兩行可合并周一竹

■4類(lèi)名x對(duì)象名>=new〈類(lèi)名>([<實(shí)參表習(xí));

■例,

myclassobjectlzobject2;

objectl=newmyclass();

object2=newmyclass(3.14z8.2);

48

對(duì)象成員的引用

■引用對(duì)象的變量

■格式:對(duì)象名.變量名

■引用對(duì)象的方法

■格式:對(duì)象名.方法名

■例

■Vectorv二newVector();

■v.addElement(''helloworld");

對(duì)象的使用

_______________________JAVA

■對(duì)象作,方法的參照

[訪問(wèn)權(quán)限修飾苻]方法返命類(lèi)型方法名(參照)[throws異存名]{

方法體;

}

■方法參照的格式:類(lèi)型變量名,……

■類(lèi)型:基本數(shù)據(jù)類(lèi)型/復(fù)合類(lèi)型(對(duì)象)

■對(duì)象參照的傳遞

■引用倜用,傳遢也祉。

50

對(duì)象的使用

JAVA

■例對(duì)象用作方法的參照

classSpot{classTest{

privateintx,y;publicstaticvoidmain(Stringargs[]){

Spot(intu,intv){Spots=newSpot(2,3);

setX(u);setY(v);}System.out.println(''s^的坐標(biāo):“

voidsetX(intxl){x=xl;}+s.getX()+'';/+s.getY());

voidsetY(intyl){y=yl;}Transts=newTransQ;

intgetX(){returnx;}ts.move(s,4,5);

intgetY(){returny;}System.out.printings點(diǎn)的坐標(biāo):“+

+s.getX()+''/+s.getY());

)

)

classTrans{

voidmove(Spotp,inth,intk){

p.setX(p.getX()+h);

p.setY(p.getY()+k);

)

)

對(duì)象的使用

_______________________JAVA

■對(duì)象的彳方問(wèn)

■對(duì)象作,方法的返㈤他

[揚(yáng)冏權(quán)限修飾符]方法返?類(lèi)型方法名(參熟)[throws異存名]{

方法體;

}

■返回類(lèi)型

■嗡返?他:及域微據(jù)類(lèi)型/復(fù)合類(lèi)型(對(duì)象)

■無(wú)返?他:void

52

對(duì)象的使用

■對(duì)象作,方法的返㈤他

■例:求兩堂坐標(biāo)之間的中直坐標(biāo)

■思路:(xl,yl)和(x2,y2)9(x,y)

■x=(xl+x2)/2zy=(yl+y2)/2

■Spotsi二newSpot(2z3);

■Spots2二newSpot(4z5);

■Spots二sl.midSpot(s2);

對(duì)象的使用

JAVA

■例對(duì)象用作方法的返?優(yōu)

classSpot{class7est{

privatedoublex,y;publicstaticvoidmain(Stringargs[]){

Spot(doubleu,doublev){Spotsi=newSpot(3.0,5.0);

setX(u);setY(v);}Spots2=newSpot(6.0,8.0);

voidsetX(doublexl){x=xl;}System.out.println(''sl點(diǎn)的坐標(biāo):”

voidsetY(doubleyl){y=yl;}+sl.getX()+''//+sl.getY());

doublegetX(){returnx;}System.out.println(''s2j點(diǎn)的坐標(biāo):”

doublegetY(){returny;}+s2.getX()+''/+s2.getY());

SpotmidSpot(Spots){Spots=sl.midSpot(s2);

doublemidX=(x+s.getX())/2;System.out.printlnC中點(diǎn)的坐標(biāo):“

doublemidY=(y+s.getY())/2;+s.getX()+''/+s.getY());

SpotsMid=newSpot(midX,midY);)

returnsMid;

對(duì)象的使用

JAVA

■對(duì)象鼎殂

classlest{執(zhí)行結(jié)果為:

publicstaticvoidmain(Stringargs[]){0

inta[]=newint[5];0

for(inti=0;i<a.length;i++)0

System.out.println(a[i]);0

Strings[]=newString[5];0

for(inti=0;i<s.length;i++)null

System.out.println(s[i]);null

null

null

null

55

對(duì)象的使用

■對(duì)象鼎殂

classStudent{

Studentst[]=new

privateStringname;

Student[10];

privateStringid;

for(inti=0;i<st.length;

Student(Stringsi,Strings2)

{name=si;id=s2;}i++){

st[i]=newStudent。.);

StringgetName(){returnname;)

voidsetName(Strings)for(inti=0;i<st.length;

{name=s;}

i++){

voiddisplay(){st[i].display();

System.out.println(name+

''〃+id);}

56

對(duì)象的使用

■對(duì)象作,另一個(gè)對(duì)象的閩員變量

classStudent{

privateStringname;

privateStringid;

Student(Stringsi,Strings2){

name=si;id=s2;

)

StringgetName(){returnname;}

voidsetName(Strings){name=s;}

■例,Exam3_10.java

對(duì)象的使用

■關(guān)桂祠this

■this能咨嘛對(duì)象

■加根程停可篌桃(Wis可有可無(wú))

對(duì)象的使用

JAVA

■例1:bemol.java(碉用變量)

classDemol{

doublex,y;

Demol(doublei,doublej){

this.x=i;this,y=j;

doubleave(){

return(x+y)/2;

publicstaticvoidmain(Stringargs口){

Demold=newDemol(3,4);

System.out.println(d.ave());

59

對(duì)象的使用

JAVA

■例2:bemo2.java(碉用方法)

classDemo2{

intx,y,z;

Demo2(inta,intb){x=a;y=b;this.sort(a,b);}

■■■■■■

voidsort(inta,intb){

intt;

if(x<y){t=x;x=y;y=t}

60

第三章面向?qū)ο筇卣?/p>

1.基域槐念

2.類(lèi)的笑文

3.對(duì)象

4.類(lèi)的健家和多態(tài)

5.接口和包

6.卒用工具類(lèi)

類(lèi)的繼承>

________________JAVA

■父類(lèi)與3類(lèi)的關(guān)系(extends)

■基域勾穿

1.3類(lèi)可倜用父類(lèi)的方法令變量,3類(lèi)可槽加父類(lèi)

中沒(méi)嗡的方法和變量

2.3類(lèi)可童新定文父類(lèi)的靜態(tài)/實(shí)例變量

3.3類(lèi)可變新定義父類(lèi)的靜態(tài)/實(shí)例方法

4.健家中的構(gòu)造方法

5.類(lèi)咸員揚(yáng)問(wèn)修飾符號(hào)健示的關(guān)系

62

子類(lèi)繼承父類(lèi)的方法和變量,

類(lèi)的繼承則這些方法和變量就屬于子類(lèi),

子類(lèi)對(duì)象就可以調(diào)用這些方法

■③類(lèi)可碉用父類(lèi)的方和變量

■3類(lèi)可槽加父類(lèi)中沒(méi)有的方法和變量

classVehicle{Busb=newBus();

Stringbrand;

b.setBC'audi)〃**

voidsetB(Strings){brand=s;}

b.setG(lOO);

voidshowB(){System.out.println(brand);}

b.showB();〃**

)

b.showGQ;

classBusextendsVehicle{

intgas;

voidsetG(intg){gas=g;}

voidshowG(){System.out.println(gas);}

)

63

classA{

inti=256,j=64;Bb=newB();

256x5.0321

staticintk=32;b.show();

64322.718

finalfloate=2.718f;b.showA();

■父類(lèi)中同名的變量無(wú)數(shù)(德藏)

■通述“super.變量名”和義類(lèi)名.變量名(static變量)引

classBextendsA{this.變量名

publiccharj='x';this.方法名

溫馨提示

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

評(píng)論

0/150

提交評(píng)論