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

2015計(jì)算機(jī)等級(jí)考試二級(jí)Java入門(mén)教程第五章(10)

考試吧整理了“2015計(jì)算機(jī)等級(jí)考試二級(jí)Java入門(mén)教程”,望給備考2015年計(jì)算機(jī)等級(jí)考試的考生帶來(lái)幫助!

  點(diǎn)擊查看:2015計(jì)算機(jī)等級(jí)考試二級(jí)Java入門(mén)教程章節(jié)匯總

  點(diǎn)擊查看:2015計(jì)算機(jī)等級(jí)考試二級(jí)Java入門(mén)教程第五章匯總

  5.10 控制對(duì)類(lèi)成員的訪(fǎng)問(wèn)

  我們還沒(méi)有討論類(lèi)成員如何才能在類(lèi)外進(jìn)行訪(fǎng)問(wèn)。你知道在一個(gè)靜態(tài)的類(lèi)方法內(nèi)可以引用任何靜態(tài)的類(lèi)成員,一個(gè)非靜態(tài)的方法可以引用類(lèi)的任何成員。在一個(gè)類(lèi)中,可以被其他類(lèi)訪(fǎng)問(wèn)的變量和方法的限制要顯得復(fù)雜些。它取決于你為類(lèi)成員指定的訪(fǎng)問(wèn)屬性(accessattributes)以及類(lèi)是否在同一個(gè)包中。這也就是我們必須首先了解包的原因。

  使用訪(fǎng)問(wèn)屬性

  讓我們先從同一個(gè)包中的類(lèi)開(kāi)始考慮。在一個(gè)給定的包中,任何類(lèi)都可以直接地訪(fǎng)問(wèn)其他的類(lèi)名,例如,為了聲明變量或者指定方法參數(shù)的類(lèi)型你可以使用類(lèi)名,但是,這些變量和方法如果是其他類(lèi)的成員,就不一定可以訪(fǎng)問(wèn)。這些成員的可訪(fǎng)問(wèn)性由訪(fǎng)問(wèn)屬性控制。在為一個(gè)類(lèi)成員指定訪(fǎng)問(wèn)屬性時(shí),包括迄今為止我們?cè)诶又幸呀?jīng)使用過(guò)的,你可以有四種選擇。要么什么都不指定;要么指定一種,每種訪(fǎng)問(wèn)屬性都有完全不同的效果。你可用來(lái)為類(lèi)中變量或方法指定可訪(fǎng)問(wèn)性的選項(xiàng)有:

  

  這張列表顯示了你為類(lèi)成員設(shè)置的訪(fǎng)問(wèn)屬性是如何決定你可以從Java環(huán)境中的哪個(gè)部分訪(fǎng)問(wèn)它們。在下一章中我們將討論子類(lèi),所以現(xiàn)在不用考慮它。后面我們將返回來(lái)介紹怎樣以及何時(shí)使用protected屬性。注意,public. private和protected都是關(guān)鍵字。把一個(gè)成員指定為pubic,則它就完全可訪(fǎng)問(wèn)。而另外一個(gè)極端,一個(gè)private成員將僅局限于同類(lèi)中的成員可以進(jìn)行訪(fǎng)問(wèn)。

  聽(tīng)起來(lái)比實(shí)際情況更復(fù)雜。請(qǐng)看下一張示意圖,它顯示了同一個(gè)包中類(lèi)之間允許的訪(fǎng)問(wèn)情況。

  

  在一個(gè)包內(nèi),比如packagel,只是類(lèi)classl的private成員,不能由同一個(gè)包中另一個(gè)類(lèi)的方法直接地訪(fǎng)問(wèn)。把類(lèi)的成員聲明為priVaLe,就限制了它只可在同一個(gè)類(lèi)的方法中使用。

  Java2入門(mén)經(jīng)典在線(xiàn)教程完整版

  我們以前看到過(guò),一個(gè)類(lèi)定義必須有一個(gè)public的訪(fǎng)問(wèn)屬性才能從包外訪(fǎng)問(wèn)它下一張示意圖顯示了位于不同包中的類(lèi),請(qǐng)求訪(fǎng)問(wèn)一個(gè)公有類(lèi)成員的情況。

  

  這里的訪(fǎng)問(wèn)受到了更多的限制。只有Class 1中被說(shuō)明為public的那些成員才能被另一個(gè)包中的普通類(lèi)Class2訪(fǎng)問(wèn)。要記住,類(lèi)Class 1還必須被定義為public屬性。在另一個(gè)包中的Classl子類(lèi),若Class 1的成員沒(méi)有訪(fǎng)問(wèn)屬性,則不能被得到,并且對(duì)于private成員,在任何環(huán)境下都不能從外部訪(fǎng)問(wèn)。

  指定訪(fǎng)問(wèn)屬性

  從我們剛剛看到的示意圖中大概推測(cè)一下,要為一個(gè)類(lèi)成員指定訪(fǎng)問(wèn)屬性,你只在聲明的開(kāi)始處增加一個(gè)關(guān)鍵字即可。這里是你在以前看到的Point類(lèi),然而,現(xiàn)在我們?yōu)樗拿總(gè)成員定義了訪(fǎng)問(wèn)屬性:

  試試看--訪(fǎng)問(wèn)Point類(lèi)

  在你的Point類(lèi)中做如下改變。如果你要把它保存在一個(gè)新的目錄中,就要確保Line.Java也被復(fù)制到那里。假如它們?cè)诿麨镚eornetx的目錄中,則會(huì)對(duì)以后很有用。

  pubic class Point

  (

  //Create a point from Coordonates

  public Point (double xVal,double yVal)

  {

  x=xVal;

  y=yVal;

  //Create a Point at exisLing Foint object

  public Point(final aPoint)

  {

  x=aPoint.x;

  y=aPoint.y;

  //Move a point

  public void move (double xDelta,double yDolta)

  {

  //

  Parameter values are increments to the current coordinates

  x +=xDelta;

  y +=yDelta;

  }

  //Calculate the diatance to another point

  public double distance(final pointaPoint)

  {

  return Math.sqrt(

  (x-aPoint.x)*(x-aPoint.x)*(y-aPoint.y)*(y-aPoint.y));

  }

  //convert a point to a string

  public string tostring

  {

  return Double.tostring(x)+ +y; //As x.y

  }

  //Coordinates of the point

  private double x;

  private double y;

  在類(lèi)中的成員已經(jīng)被重新排列,private成員位于最后。你應(yīng)該按照它們的訪(fǎng)問(wèn)屬性把類(lèi)成員排列成一個(gè)統(tǒng)一的順序,這樣會(huì)使代碼更加容易跟蹤。最常見(jiàn)的順序是訪(fǎng)問(wèn)頻率高的成員在前面,訪(fǎng)問(wèn)頻率低的成員在后面,但是統(tǒng)一的排列順序要比你選擇的特定順序更重要。

  如何操作

  現(xiàn)在,實(shí)例變量x和Y不能從類(lèi)以外的地方訪(fǎng)問(wèn)或修改,因?yàn)樗鼈兊脑L(fǎng)問(wèn)屬性private.對(duì)它們進(jìn)行設(shè)置或者修改的惟一途徑是通過(guò)類(lèi)中的方法,可以是構(gòu)造函數(shù),也可以是move方法。如果需要從類(lèi)以外的地方獲得x和y的值,那么就可以用一個(gè)很簡(jiǎn)單的函數(shù)來(lái)完成這項(xiàng)復(fù)雜的操作。例如:

  //Retrieve the x coordinate

  public double getX( )

  (return X:)

  //Retrieve the y coordinate

  public double gety()

  (return y)

  //Set the x coordinate

  public void setx(double inputX)

  ( x=inputx;)

  //Set the y cordinate

  public void secy(double inputy)

  (y=inputy;)

  //Coordinates of the point

  private double x;

  private double y;

  }

  注意,我們己經(jīng)在類(lèi)中增加了getX{}, getY{),setX{}和setY{)方法,可以使用它們?cè)L問(wèn)private的數(shù)據(jù)成員。

  Line類(lèi)也需要被修改成公有方法以及公有類(lèi)。我們還需要更改它的intersects()方法,讓它可以利用Point類(lèi)中的setXXX()和getXXX()方法訪(fǎng)問(wèn)Point型對(duì)象的私有數(shù)據(jù)成員。在Line.Java代碼中,更改的地方被突出顯示,其代碼為:

  package Geometry;

  public class Line

  {

  //Create a line form two point

  public line(final Point start,final Point end)

  (

  this.start=new Point(start);

  this.end=new Point(end);

  }

  //Create a line from two coordinate paris

  public line(double xStart,double ystart,double xEnd,double,double yEnd)

  {

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

  end =new Point(xEnd,yEnd); //Create the end point

  )

  //Caloulate the length of a line

  piblic double length()

  (

  return start.distance(end); //Use the method form the Point class

  }

  試試看--測(cè)試Geometry包

  我們可以建立一連串的點(diǎn),并且依次連接每對(duì)相鄰的點(diǎn)以形成一條直線(xiàn),然后計(jì)算直線(xiàn)的總長(zhǎng)度。

  import Geometry.*; //Import the Piont the and Line classes

  public class TryPackage

  {

  double[ ] [ ]coords=((1.0,0.0),(6.0,0.0),(6.0,10.0),

  (10.0,10.0),(10.0,-14.0),(8.0.-14.0)

  //create an array of points and fill it with Point objects

  Point[ ]points=new Point [coords.length];

  for(int i=0;i

  points[i]=new Point(coords[i][0].coords[i][l];

  //Create an array of lines and fill it using Point pairs

  Line[ ] lines=new Line(poins.length-1);

  double totalLength=0.0; //store otal line lengh here

  for(int i=0;i

  {

  lines[i]=new Line9points[i],porints[i+1]); //Create a Line

  totalLength + lines[i].length(); //Add its length

  System.out.println(\nDine + (i+1)+ lines[i]

  Length is + lines[i].length());

  )

  //output the toatal length

  system.out.println(/n/nTotal line length=+ totalLength);

  }

  }

  你應(yīng)該在TryPackage目錄中將它保存為T(mén)ryPackage.java文件。在運(yùn)行Windows的PC機(jī)中,如果你的Geometry路徑為C:1Package\Geometry,則可以用下面的命令編譯這個(gè)文件:

  java -classpath C:\Packages TryPackages.java

  這條命令假定當(dāng)前目錄包含TryPackage.java文件。然后,你可以用下面的命令執(zhí)行這個(gè)程序:

  java -classpath C:\Packages TryPackages

  當(dāng)程序執(zhí)行時(shí),你會(huì)看到下述輸出結(jié)果:

  Line 1 (1.0,0.0) ; (6.0,0.0) length is 5.0

  Line 2 (6.0,0.0) : (6.0,10.0) length is 10.0

  //Move members of Outside calss…

  }

  這里的類(lèi)Inside嵌套在類(lèi)Outside中。類(lèi)Inside聲明為Outside類(lèi)的一個(gè)公有成員,所以它可從Outside的外面訪(fǎng)問(wèn)。顯而易見(jiàn),一個(gè)嵌套類(lèi)應(yīng)該與包含它的類(lèi)有一些特殊的聯(lián)系。任意地將一個(gè)類(lèi)嵌入到另一個(gè)類(lèi)中是不明智的。這里的類(lèi)被稱(chēng)作頂層類(lèi)(top-level class).頂層類(lèi)是一個(gè)包含嵌套類(lèi)而它自己并沒(méi)有被嵌套到其他類(lèi)中的類(lèi)。

  相關(guān)推薦:

  2015計(jì)算機(jī)等級(jí)考試二級(jí)Java入門(mén)教程章節(jié)匯總

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

  考試吧特別策劃:2015年計(jì)算機(jī)等級(jí)考試報(bào)考指南

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