版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 四川省德陽(yáng)市中江縣2025-2026學(xué)年七年級(jí)上學(xué)期期末考試數(shù)學(xué)試題(含答案)
- 【初中語(yǔ)文】《秋天的懷念》課件++統(tǒng)編版語(yǔ)文七年級(jí)上冊(cè)
- 分式專(zhuān)項(xiàng)(課件)中考數(shù)學(xué)一輪復(fù)習(xí)講練測(cè)
- 2025-2026學(xué)年魯教版(五四制)數(shù)學(xué)七年級(jí)上冊(cè)期末模擬試題(含答案)
- 河南省許昌市鄢陵縣彭店二中2025-2026學(xué)年七年級(jí)上冊(cè)語(yǔ)文期末試卷(含答案 )
- 飛行技術(shù)專(zhuān)業(yè)
- 11月全球投資十大主線(xiàn)
- 人口分布第一課時(shí)課件2025-2026學(xué)年高中地理人教版必修二
- 基于MATLAB的四旋翼無(wú)人機(jī)PID控制研究
- 飛機(jī)的科普知識(shí)
- 2026中國(guó)國(guó)際航空招聘面試題及答案
- (2025年)工會(huì)考試附有答案
- 2026年國(guó)家電投集團(tuán)貴州金元股份有限公司招聘?jìng)淇碱}庫(kù)完整參考答案詳解
- 復(fù)工復(fù)產(chǎn)安全知識(shí)試題及答案
- 中燃魯西經(jīng)管集團(tuán)招聘筆試題庫(kù)2026
- 資產(chǎn)接收協(xié)議書(shū)模板
- 數(shù)據(jù)中心合作運(yùn)營(yíng)方案
- 印鐵涂料基礎(chǔ)知識(shí)
- 工資欠款還款協(xié)議書(shū)
- 石籠網(wǎng)廠施工技術(shù)交底
- 新建粉煤灰填埋場(chǎng)施工方案
評(píng)論
0/150
提交評(píng)論