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

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

來源:考試吧 2015-01-19 9:33:51 考試吧:中國教育培訓第一門戶 模擬考場
考試吧整理了“2015計算機等級考試二級Java入門教程”,望給備考2015年計算機等級考試的考生帶來幫助!

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

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

  5.10 控制對類成員的訪問

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

  使用訪問屬性

  讓我們先從同一個包中的類開始考慮。在一個給定的包中,任何類都可以直接地訪問其他的類名,例如,為了聲明變量或者指定方法參數的類型你可以使用類名,但是,這些變量和方法如果是其他類的成員,就不一定可以訪問。這些成員的可訪問性由訪問屬性控制。在為一個類成員指定訪問屬性時,包括迄今為止我們在例子中已經使用過的,你可以有四種選擇。要么什么都不指定;要么指定一種,每種訪問屬性都有完全不同的效果。你可用來為類中變量或方法指定可訪問性的選項有:

  

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

  聽起來比實際情況更復雜。請看下一張示意圖,它顯示了同一個包中類之間允許的訪問情況。

  

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

  Java2入門經典在線教程完整版

  我們以前看到過,一個類定義必須有一個public的訪問屬性才能從包外訪問它下一張示意圖顯示了位于不同包中的類,請求訪問一個公有類成員的情況。

  

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

  指定訪問屬性

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

  試試看--訪問Point類

  在你的Point類中做如下改變。如果你要把它保存在一個新的目錄中,就要確保Line.Java也被復制到那里。假如它們在名為Geornetx的目錄中,則會對以后很有用。

  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;

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

  如何操作

  現在,實例變量x和Y不能從類以外的地方訪問或修改,因為它們的訪問屬性private.對它們進行設置或者修改的惟一途徑是通過類中的方法,可以是構造函數,也可以是move方法。如果需要從類以外的地方獲得x和y的值,那么就可以用一個很簡單的函數來完成這項復雜的操作。例如:

  //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;

  }

  注意,我們己經在類中增加了getX{}, getY{),setX{}和setY{)方法,可以使用它們訪問private的數據成員。

  Line類也需要被修改成公有方法以及公有類。我們還需要更改它的intersects()方法,讓它可以利用Point類中的setXXX()和getXXX()方法訪問Point型對象的私有數據成員。在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

  }

  試試看--測試Geometry包

  我們可以建立一連串的點,并且依次連接每對相鄰的點以形成一條直線,然后計算直線的總長度。

  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);

  }

  }

  你應該在TryPackage目錄中將它保存為TryPackage.java文件。在運行Windows的PC機中,如果你的Geometry路徑為C:1Package\Geometry,則可以用下面的命令編譯這個文件:

  java -classpath C:\Packages TryPackages.java

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

  java -classpath C:\Packages TryPackages

  當程序執(zhí)行時,你會看到下述輸出結果:

  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…

  }

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

  相關推薦:

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

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

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

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