在线现看午夜福利片|女人16久久免费视频|鲁丝片一区鲁丝片二区鲁丝|一区二区三区欧美在线

  1. 
    
    <b id="glvx9"></b>
        1. <blockquote id="glvx9"><meter id="glvx9"></meter></blockquote>
            首頁 - 網(wǎng)校 - 萬題庫 - 直播 - 雄鷹網(wǎng)校 - 團購 - 書城 - ? - 學(xué)習(xí)通 - 導(dǎo)航 -
            首頁網(wǎng)校萬題庫直播雄鷹網(wǎng)校團購書城?論壇實用文檔作文大全寶寶起名
            2015中考
            法律碩士
            2015高考
            MBA考試
            2015考研
            MPA考試
            在職研
            中科院
            考研培訓(xùn)
            專升本
            自學(xué)考試 成人高考
            四 六 級
            GRE考試
            攻碩英語
            零起點日語
            職稱英語
            口譯筆譯
            申碩英語
            零起點韓語
            商務(wù)英語
            日語等級
            GMAT考試
            公共英語
            職稱日語
            新概念英語
            專四專八
            博思考試
            零起點英語
            托福考試
            托業(yè)考試
            零起點法語
            雅思考試
            成人英語三級
            零起點德語
            等級考試
            華為認(rèn)證
            水平考試
            Java認(rèn)證
            職稱計算機 微軟認(rèn)證 思科認(rèn)證 Oracle認(rèn)證 Linux認(rèn)證
            公 務(wù) 員
            導(dǎo)游考試
            物 流 師
            出版資格
            單 證 員
            報 關(guān) 員
            外 銷 員
            價格鑒證
            網(wǎng)絡(luò)編輯
            駕 駛 員
            報檢員
            法律顧問
            管理咨詢
            企業(yè)培訓(xùn)
            社會工作者
            銀行從業(yè)
            教師資格
            營養(yǎng)師
            保險從業(yè)
            普 通 話
            證券從業(yè)
            跟 單 員
            秘書資格
            電子商務(wù)
            期貨考試
            國際商務(wù)
            心理咨詢
            營 銷 師
            司法考試
            國際貨運代理人
            人力資源管理師
            廣告師職業(yè)水平
            衛(wèi)生資格 執(zhí)業(yè)醫(yī)師 執(zhí)業(yè)藥師 執(zhí)業(yè)護士
            會計從業(yè)資格
            基金從業(yè)資格
            統(tǒng)計從業(yè)資格
            經(jīng)濟師
            精算師
            統(tǒng)計師
            會計職稱
            法律顧問
            ACCA考試
            初級會計職稱
            資產(chǎn)評估師
            高級經(jīng)濟師
            注冊會計師
            高級會計師
            美國注冊會計師
            審計師考試
            國際內(nèi)審師
            注冊稅務(wù)師
            理財規(guī)劃師
            一級建造師
            安全工程師
            設(shè)備監(jiān)理師
            公路監(jiān)理師
            公路造價師
            二級建造師
            招標(biāo)師考試
            物業(yè)管理師
            電氣工程師
            建筑師考試
            造價工程師
            注冊測繪師
            質(zhì)量工程師
            巖土工程師
            注冊給排水
            造價員考試
            注冊計量師
            環(huán)保工程師
            化工工程師
            暖通工程師
            咨詢工程師
            結(jié)構(gòu)工程師
            城市規(guī)劃師
            材料員考試
            消防工程師
            監(jiān)理工程師
            房地產(chǎn)估價
            土地估價師
            安全評價師
            房地產(chǎn)經(jīng)紀(jì)人
            投資項目管理師
            環(huán)境影響評價師
            土地登記代理人
            寶寶起名
            繽紛校園
            實用文檔
            入黨申請
            英語學(xué)習(xí)
            思想?yún)R報
            作文大全
            工作總結(jié)
            求職招聘 論文下載 直播課堂
            您現(xiàn)在的位置: 考試吧 > 計算機等級考試 > 計算機二級考試 > JAVA > 復(fù)習(xí)資料 > 正文

            2015計算機等級考試二級Java入門教程第五章(7)

            考試吧整理了“2015計算機等級考試二級Java入門教程”,望給備考2015年計算機等級考試的考生帶來幫助!

              點擊查看:2015計算機等級考試二級Java入門教程章節(jié)匯總

              點擊查看:2015計算機等級考試二級Java入門教程第五章匯總

              5.7 使用對象

              讓我們建立一個例子來實現(xiàn)一些簡單的二維圖形,這將會給我們一個使用更多類的機會。我們定義兩個類;一個是點對象類,另一個是線對象類,然后使用這兩個類確定線的交點。我們將稱此例子為TryGenmetry,因此你要將程序文件存儲在該名字的目錄或文件夾下。該例子中包括了大量的代碼行,我們將逐步地把它們集中在一起,并且試著理解每段代碼的執(zhí)行過程。

              試試看--Point類

              我們首先為點對象定義一個很基本的類:

              class Point

              {

              //Coordinates of the point

              double x;

              double y;

              //Create a point from coordinates

              point (double xVal,double,yVal)

              {

              x=xVal;

              y=yVal;

              }

              //Create a point from another Point object

              Point(final Point oldPoint)

              (

              x=oldPoint.x; //Copy x coordinate

              y=oldPoint.y; //Copy y coordinate

              }

              //Move a point

              void move (double xDelta,double yDelto)

              {

              //Parameter values are increments to the current coordinates

              x+=xDelte;

              y+=yDelte;

              }

              //Calculate the discance to another poine

              double distance(fina) Point aPoint

              {

              return

              (x-aPoint.x)*(x-aPoint.x)+(y + aPoint.y)*(y-apoint,y);

              }

              //Convert a point to a string

              public string tostring ( )

              {

              rsturn Double.tostring()

              }

              }

              應(yīng)該將Point.java保存到目錄TryGeometry中。

              如何操作

              這是一個簡單的類,它僅有兩個實例變量x和Y,作為Point對象的坐標(biāo)。在此,我們有兩個構(gòu)造函數(shù):一個是通過自變量傳遞一對數(shù)值來建立一個點;另一個是根據(jù)一個己存在的點來建立一個新的Point對象。

              在類中包含有三個方法。第一個是move方法,它可以為每個坐標(biāo)值加上一個增量來將Point移動到另一個位置上。另一個是distance()方法,它可以計算從當(dāng)前的Point對象到自變量傳入的Point對象之間的距離。這個方法應(yīng)用勾股定理計算距離,如下圖所示。

              

              最后一個是toString()方法,它可以返回一個描述當(dāng)前點坐標(biāo)的字符串。如果一個類定義了toString)方法,那么這個類的對象就可以作為字符串連接運算符十的一個操作數(shù),因此,你可以在任何類中實現(xiàn)這個方法,并使對象按照這種方式應(yīng)用。在必要的時候,編譯器將自動地插入一個對toString()的調(diào)用。例如,假定thePoint是一個Point類型的對象,我們編寫語句

              system.put.println(The point is at +thePoint);

              taString()方法將被自動地調(diào)用來把thePoint型轉(zhuǎn)換為String型。其結(jié)果將被追加到String文字中。我們己經(jīng)把taString()方法說明為public,在這里要讓這個類能夠通過編譯,這樣處理是必要的。我們將在本章稍后解釋其原因。

              注意,我們是如何使用定義在類Double中的靜態(tài)toStringf( )方法,將x的值轉(zhuǎn)換成String型的。編譯器將為"+"操作左面的操作數(shù)y自動地插入一個對相同方法的調(diào)用,來把它轉(zhuǎn)換成String對象。

              試試看--Line類

              我們可以在Line類中定義使用Point對象:

              Class Line

              {

              point start //Start point of line

              point end //End point of line

              //Create a line from two points

              line(final Point start,final Point end)

              (

              this.start =new Point(Start);

              this.end=new point(end);

              )

              //Create a line form two coordinate pairs

              Line(double xStart.double ystart,double xEnd,double y End)

              {

              start=new point(xStart,ystart); //Create the start point

              通常你應(yīng)該避免在兩個對象之間存在這種隱含地依賴關(guān)系。

              在Line類的toStrins方法中,我們可以在一個Line對象的String表示形式中直接地使用Point對象,這是因為Point類也定義了toString方法。

              我們現(xiàn)在已經(jīng)定義了兩個類。在這些類定義中,包括了定義每個類對象的基本數(shù)據(jù)。我們還定義了一些被認(rèn)為很有用的方法,并且增加了幾個有不同輸入?yún)?shù)的構(gòu)造函數(shù)。注意,在Line類的定義中是如何應(yīng)用Point類的。用兩個Point對象來定義一條線是非常自然的,這要比完全用單獨的x和Y坐標(biāo)來定義Line類更加簡單、更易于理解。為了進一步說明類如何相互作用,如何直接地利用類來解決問題,讓我們設(shè)計一個方法,用它來計算兩個Line對象的相交點。

              由兩條直線建立一個點

              我們可以把這個方法增加到Line類中。下面的示意圖說明了數(shù)學(xué)運算的操作過程。

              

              如果你愿意的話,可以忽略這個數(shù)學(xué)運算的過程,因為它并不是本例中最主要的內(nèi)容。如果你不希望對這個新的構(gòu)造函數(shù)中的代碼進行深究的話,就可以側(cè)隨下面的"試試看".換句話說,如果你對高中所學(xué)過的知識還比較熟悉的話,就不會感覺太困難。

              獲得兩條直線交點的一種方法,是使用上圖額度那些方程式。他們之所以被稱作參數(shù)方程式,是因為他們使用了一個參數(shù)值(s和t)作為決定每條直線上點的變量。參數(shù)s和t早0到1之間變化,用他們給出位于定義的起點和終點之間的直線上點。當(dāng)一個參數(shù)s或t為0時,方程式給出了每條直線起點的坐標(biāo);為1時,給出終點的坐標(biāo)。

              在直線的交叉位置,直線方程式一定會產(chǎn)生相同的(x,y)的坐標(biāo)值,所以,在這點上,兩條直線方程式右面的x值一定會相等,同理y值也一定相等。這就給出了兩個關(guān)于s和t的方程式。使用代數(shù)代換,你可以除去s而只保留所示的t方程式,然后可以用定義的linel方程式替代t,從而得到交點x和y的坐標(biāo)。

              試試看--計算兩條直線的交點

              我們可以利用這些結(jié)果為Line類編寫其他的方法。把下列代碼添加到Line.java的定義中:

              // Return a point as the intersection of two Lines- called form a line object

              Point intersecta(final line line)

              {

              Point localPoint=new Point(0,0);

              double num=

              (this.end.y=this.start.y)*(this.start.x-line1.start.x)

              (this.end.x=this.start.x)*(this.start.y-line1.start.y)

              double denom =

              (this.end.y=this.start.y)*(this.start.x-line1.start.x)*num/denom;

              (this.end.x=this.start.x)*(this.start.y-line1.start.y)*num/denom;

              return localPoint;

              }

              由于在Line類定義中引用了Point類,所以Line類在與它相關(guān)的其他類無效時是不能被編譯的。在你編譯Line類時,編譯器也將編譯其他的類。

              如何操作

              intersects()方法在一個Lure對象中被調(diào)用,并以另一個Line對象作為自變量。在代碼中,局部變量num和denam是示意圖中t表達式的分子和分母。然后我們使用這些值來計算交點x和y的坐標(biāo)。

              假如兩條直線是平行的,t表達式中的分母就為0,所以你一定要在代碼中檢查這個值,現(xiàn)在,我們先忽略它,若發(fā)生這種情況,我們就以Infinity(無窮大)結(jié)合。

              注意我們是如何獲得定義直線的Point對象的坐標(biāo)值的。當(dāng)你想引用一個成員的成員時,只要重復(fù)使用點標(biāo)記引用對象成員即可。例如,對于對象line1,表達式line1.start引用直線的開始端Point對象。因此,linel.start.x引用它的x坐標(biāo),而linel.start.y則存取它的y坐標(biāo)。

              現(xiàn)在,我們有一個Line類,可以計算兩個Line對象的交點。我們需要一個程序來測試這段代碼。

              試試看--TryGeometry類

              我們可以在main( )方法中用下列語句演示一下已經(jīng)定義的兩個類:

              public class TryGeometry

              {

              public static void main(string[ ] args)

              (

              //Create two points and display them

              Point start=new Point(0.0,1.0);

              Piont end=new Point(5.0,6.0);

              System.out.Println(Points created are + start +and +and);

              //Create two lines and display them

              Line line1=new Line(start,end);

              Line line2=new Line(0.0,3.0,3.0,0.0);

              system.out.println(Lines oreated are + linel + and + line2);

              //Display the intersection

              system.out.println("Intersection is + line2.intersects(line1);

              //Now move the end point of linel and show the new intersection

              endmove(1.0-5.0);

              system.out.println(Intersection is + linel.intersects(line2));

              }

             。

              程序產(chǎn)生的輸出為:

              Points created are 0.0.1.0 and 5.0,6.0

              Lines created are(0.0.1.0):(5.0,6.0)and (0.0.3.0):(3.0.0.0)

              Intersection is 1.0.2.0

              Intersection is 1.0.2.0

              如何操作

              我們首先建立兩個Point對象,這兩個對象將在后面建立對象line 1的時候使用,然后使用Println()方法顯示這兩個點。我們在Point類中定義的touring()方法被自動地用來產(chǎn)生每個Point對象的String表示形式。

              依據(jù)兩個點建立line 1之后,我們使用Line類中的另一個構(gòu)造函數(shù),根據(jù)兩對坐標(biāo)建立Line2然后顯示這兩條直線。這里line類的tostring()成員被調(diào)用來建立每個Line.對象的String表示形式,這個方法中又依次使用Point類中的toString()方法。

              下一條語句用line2調(diào)用intersects()方法,并且返回兩條直線line 1和line2交點的Poitlt對象,然后將該Paint對象作為println()方法的自變量顯示輸出。正像你看到的,我們得到這個Point對象時,并沒有強迫保存它,這里我們僅用它來建立被顯示的字符串。

              我們使用類Point中的move()方法來修改。end對象的坐標(biāo),利用這個對象建立line 1,然后再獲得兩條直線的交點,這次要用linel調(diào)用intersects(}方法。輸出的結(jié)果表明line 1不依賴于對象end,因此,移動這個點不會對交點產(chǎn)生影響。

              如果你把Line類的構(gòu)造函數(shù)改成以前的版本,定義直線時不建立新的Point對象,你可以再次運行這個例子來看看結(jié)果。結(jié)果輸出為:

              Ponts created are 0.0.1.0 and 5.0,6.0

              Lines created are(0.0.1.0):(5.0.6.0)and(0.0.3.0):(3.0.0.0)

              Intersection is1.0.2.0

              Intersection is2.0.1.0

              現(xiàn)在,改變end對象就變換了這條直線,所以在移動end點之后,我們就得到了兩條直線的一個不同交點。這是因為Line型對象line 1中包括對定義在main()中的Point對象的引用,而不獨立于Point對象。

              相關(guān)推薦:

              2015計算機等級考試二級Java入門教程章節(jié)匯總

              2014計算機二級Java程序設(shè)計真題及答案(網(wǎng)友版)

              考試吧特別策劃:2015年計算機等級考試報考指南

            文章搜索
            計算機等級考試欄目導(dǎo)航
            版權(quán)聲明:如果計算機等級考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系800@exam8.com,我們將會及時處理。如轉(zhuǎn)載本計算機等級考試網(wǎng)內(nèi)容,請注明出處。
            Copyright © 2004- 考試吧計算機等級考試網(wǎng) All Rights Reserved 
            中國科學(xué)院研究生院權(quán)威支持(北京)
            在線模擬試題
            考證通關(guān)殺器
            考試最新資訊
            學(xué)
            一次通關(guān)技巧