六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

JAVA圖文說(shuō)明教程 第3講 Java語(yǔ)言中的面向?qū)ο筇卣?/h1>

[摘要]3.1 面向?qū)ο蠹夹g(shù)基礎(chǔ)   3.1.1 面向?qū)ο蟮幕靖拍?  面向?qū)ο蟮幕舅枷?  面向?qū)ο笫且环N新興的程序設(shè)計(jì)方法,或者是一種新的程序設(shè)計(jì)規(guī)范(paradigm),其基本思想是使用對(duì)象、類(lèi)、繼承、封裝、消息等基本概念來(lái)進(jìn)行程序設(shè)計(jì)。從現(xiàn)實(shí)世界中客觀存在的事物(即對(duì)象)出發(fā)來(lái)構(gòu)造軟件系統(tǒng),并...
3.1 面向?qū)ο蠹夹g(shù)基礎(chǔ)

  3.1.1 面向?qū)ο蟮幕靖拍?

  面向?qū)ο蟮幕舅枷?
  面向?qū)ο笫且环N新興的程序設(shè)計(jì)方法,或者是一種新的程序設(shè)計(jì)規(guī)范(paradigm),其基本思想是使用對(duì)象、類(lèi)、繼承、封裝、消息等基本概念來(lái)進(jìn)行程序設(shè)計(jì)。從現(xiàn)實(shí)世界中客觀存在的事物(即對(duì)象)出發(fā)來(lái)構(gòu)造軟件系統(tǒng),并且在系統(tǒng)構(gòu)造中盡可能運(yùn)用人類(lèi)的自然思維方式。開(kāi)發(fā)一個(gè)軟件是為了解決某些問(wèn)題,這些問(wèn)題所涉及的業(yè)務(wù)范圍稱(chēng)作該軟件的問(wèn)題域。其應(yīng)用領(lǐng)域不僅僅是軟件,還有計(jì)算機(jī)體系結(jié)構(gòu)和人工智能等。

   1. 對(duì)象的基本概念

  對(duì)象是系統(tǒng)中用來(lái)描述客觀事物的一個(gè)實(shí)體,它是構(gòu)成系統(tǒng)的一個(gè)基本單位。一個(gè)對(duì)象由一組屬性和對(duì)這組屬性進(jìn)行操作的一組服務(wù)組成。從更抽象的角度來(lái)說(shuō),對(duì)象是問(wèn)題域或?qū)崿F(xiàn)域中某些事物的一個(gè)抽象,它反映該事物在系統(tǒng)中需要保存的信息和發(fā)揮的作用;它是一組屬性和有權(quán)對(duì)這些屬性進(jìn)行操作的一組服務(wù)的封裝體。客觀世界是由對(duì)象和對(duì)象之間的聯(lián)系組成的。

  主動(dòng)對(duì)象是一組屬性和一組服務(wù)的封裝體,其中至少有一個(gè)服務(wù)不需要接收消息就能主動(dòng)執(zhí)行(稱(chēng)作主動(dòng)服務(wù))。
  
  2. 類(lèi)的基本概念

  把眾多的事物歸納、劃分成一些類(lèi)是人類(lèi)在認(rèn)識(shí)客觀世界時(shí)經(jīng)常采用的思維方法。分類(lèi)的原則是抽象。類(lèi)是具有相同屬性和服務(wù)的一組對(duì)象的集合,它為屬于該類(lèi)的所有對(duì)象提供了統(tǒng)一的抽象描述,其內(nèi)部包括屬性和服務(wù)兩個(gè)主要部分。在面向?qū)ο蟮木幊陶Z(yǔ)言中,類(lèi)是一個(gè)獨(dú)立的程序單位,它應(yīng)該有一個(gè)類(lèi)名并包括屬性說(shuō)明和服務(wù)說(shuō)明兩個(gè)主要部分。類(lèi)與對(duì)象的關(guān)系就如模具和鑄件的關(guān)系,類(lèi)的實(shí)例化結(jié)果就是對(duì)象,而對(duì)一類(lèi)對(duì)象的抽象就是類(lèi)。
  

  3. 消息

  消息就是向?qū)ο蟀l(fā)出的服務(wù)請(qǐng)求,它應(yīng)該包含下述信息:提供服務(wù)的對(duì)象標(biāo)識(shí)、服務(wù)標(biāo)識(shí)、輸入信息和回答信息。服務(wù)通常被稱(chēng)為方法或函數(shù)。

  3.1.2 面向?qū)ο蟮幕咎卣?

  1.封裝性

  封裝性就是把對(duì)象的屬性和服務(wù)結(jié)合成一個(gè)獨(dú)立的相同單位,并盡可能隱蔽對(duì)象的內(nèi)部細(xì)節(jié),包含兩個(gè)含義:
  ◇ 把對(duì)象的全部屬性和全部服務(wù)結(jié)合在一起,形成一個(gè)不可分割的獨(dú)立單位(即對(duì)象)。
  ◇ 信息隱蔽,即盡可能隱蔽對(duì)象的內(nèi)部細(xì)節(jié),對(duì)外形成一個(gè)邊界〔或者說(shuō)形成一道屏障〕,只保留有限的對(duì)外接口使之與外部發(fā)生聯(lián)系。
  封裝的原則在軟件上的反映是:要求使對(duì)象以外的部分不能隨意存取對(duì)象的內(nèi)部數(shù)據(jù)(屬性),從而有效的避免了外部錯(cuò)誤對(duì)它的"交叉感染",使軟件錯(cuò)誤能夠局部化,大大減少查錯(cuò)和排錯(cuò)的難度。
  

  2.繼承性

  特殊類(lèi)的對(duì)象擁有其一般類(lèi)的全部屬性與服務(wù),稱(chēng)作特殊類(lèi)對(duì)一般類(lèi)的繼承。例如,輪船、客輪;人、大人。一個(gè)類(lèi)可以是多個(gè)一般類(lèi)的特殊類(lèi),它從多個(gè)一般類(lèi)中繼承了屬性與服務(wù),這稱(chēng)為多繼承。例如,客輪是輪船和客運(yùn)工具的特殊類(lèi)。在java語(yǔ)言中,通常我們稱(chēng)一般類(lèi)為父類(lèi)(superclass,超類(lèi)),特殊類(lèi)為子類(lèi)(subclass)。

  3.多態(tài)性

  對(duì)象的多態(tài)性是指在一般類(lèi)中定義的屬性或服務(wù)被特殊類(lèi)繼承之后,可以具有不同的數(shù)據(jù)類(lèi)型或表現(xiàn)出不同的行為。這使得同一個(gè)屬性或服務(wù)在一般類(lèi)及其各個(gè)特殊類(lèi)中具有不同的語(yǔ)義。例如:"幾何圖形"的"繪圖"方法,"橢圓"和"多邊形"都是"幾何圖"的子類(lèi),其"繪圖"方法功能不同。

  3.1.3 面向?qū)ο蟪绦蛟O(shè)計(jì)方法

   OOA-Object Oriented Analysis     面向?qū)ο蟮姆治?
  
  OOD-Object Oriented Design      面向?qū)ο蟮脑O(shè)計(jì)
  
  OOI-Object Oriented Implementation  面向?qū)ο蟮膶?shí)現(xiàn)

  3.2 Java語(yǔ)言的面向?qū)ο筇匦?

  3.2.1 類(lèi)

  類(lèi)是java中的一種重要的復(fù)合數(shù)據(jù)類(lèi)型,是組成java程序的基本要素。它封裝了一類(lèi)對(duì)象的狀態(tài)和方法,是這一類(lèi)對(duì)象的原形。一個(gè)類(lèi)的實(shí)現(xiàn)包括兩個(gè)部分:類(lèi)聲明和類(lèi)體。

  1.類(lèi)聲明:

  [public][abstract final] class className [extends superclassName] [implements interfaceNameList]
  {……}

  其中,修飾符public,abstract,final 說(shuō)明了類(lèi)的屬性,className為類(lèi)名,superclassName為類(lèi)的父類(lèi)的名字,interfaceNameList為類(lèi)所實(shí)現(xiàn)的接口列表。

  2.類(lèi)體

  類(lèi)體定義如下:
  class className
  {[public protected private ] [static]
  [final] [transient] [volatile] type
  variableName;                 //成員變量
  [public protected private ] [static]
  [final abstract] [native] [synchronized]
  returnType methodName([paramList]) [throws exceptionList]
   {statements}                 //成員方法
  }

  3.成員變量

  成員變量的聲明方式如下:
  [public protected private ] [static]
  [final] [transient] [volatile] type
  variableName;                 //成員變量
  其中,
  static: 靜態(tài)變量(類(lèi)變量);相對(duì)于實(shí)例變量
  final: 常量
  transient: 暫時(shí)性變量,用于對(duì)象存檔
  volatile: 貢獻(xiàn)變量,用于并發(fā)線程的共享

  4.成員方法

  方法的實(shí)現(xiàn)包括兩部分內(nèi)容:方法聲明和方法體。
  [public protected private ] [static]
  [final  abstract] [native] [synchronized]
  returnType methodName([paramList])
  [throws exceptionList]            //方法聲明
   {statements}                //方法體

  方法聲明中的限定詞的含義:
  static: 類(lèi)方法,可通過(guò)類(lèi)名直接調(diào)用
  abstract: 抽象方法,沒(méi)有方法體
  final: 方法不能被重寫(xiě)
  native: 集成其它語(yǔ)言的代碼
  synchronized: 控制多個(gè)并發(fā)線程的訪問(wèn)

  ◇ 方法聲明
  方法聲明包括方法名、返回類(lèi)型和外部參數(shù)。其中參數(shù)的類(lèi)型可以是簡(jiǎn)單數(shù)據(jù)類(lèi)型,也可以是復(fù)合數(shù)據(jù)類(lèi)型(又稱(chēng)引用數(shù)據(jù)類(lèi)型)。

  對(duì)于簡(jiǎn)單數(shù)據(jù)類(lèi)型來(lái)說(shuō),java實(shí)現(xiàn)的是值傳遞,方法接收參數(shù)的值,但不能改變這些參數(shù)的值。如果要改變參數(shù)的值,則用引用數(shù)據(jù)類(lèi)型,因?yàn)橐脭?shù)據(jù)類(lèi)型傳遞給方法的是數(shù)據(jù)在內(nèi)存中的地址,方法中對(duì)數(shù)據(jù)的操作可以改變數(shù)據(jù)的值。

  例3-1說(shuō)明了簡(jiǎn)單數(shù)據(jù)類(lèi)型與引用數(shù)據(jù)的區(qū)別。

  【例3-1】
  import java.io.*;
  public class PassTest{
  float ptValue;
  public static void main(String args[]) {
  int val;
  PassTest pt=new PassTest();
  val=11;
  System.out.println("Original Int Value is:"+val);
  pt.changeInt(val);                   //值參數(shù)
  System.out.println("Int Value after Change is:" +val); /*值參數(shù)
                    值的修改,沒(méi)有影響值參數(shù)的值*/
  pt.ptValue=101f;
  System.out.println("Original ptValue is:"+pt.ptValue);
  pt.changeObjValue(pt); //引用類(lèi)型的參數(shù)
  System.out.println("ptValue after Change is:"+pt.ptValue);/* 引用參數(shù)值的修改,改變了引用參數(shù)的值*/
  }
  public void changeInt(int value){
  value=55;            //在方法內(nèi)部對(duì)值參數(shù)進(jìn)行了修改
  }
  public void changeObjValue(PassTest ref){
  ref.ptValue=99f;        //在方法內(nèi)部對(duì)引用參數(shù)進(jìn)行了修改
    }
  }

   運(yùn)行結(jié)果 c:\>java PassTest
  Original Int Value is : 11
  Int Value after Change is: 11
  Original ptValue is: 101.0
  ptValue after Change is : 99.0



  ◇ 方法體
  方法體是對(duì)方法的實(shí)現(xiàn),它包括局部變量的聲明以及所有合法的Java指令。方法體中聲明的局部變量的作用域在該方法內(nèi)部。若局部變量與類(lèi)的成員變量同名,則類(lèi)的成員變量被隱藏。

  例3-2 說(shuō)明了局部變量z和類(lèi)成員變量z的作用域是不同的。

  【例3-2】
  import java.io.*;
  class Variable{
  int x=0,y=0,z=0;              //類(lèi)的成員變量
  void init(int x,int y) {
  this.x=x; this.y=y;
  int z=5;                 //局部變量
  System.out.println("** in init**");
  System.out.println("x="+x+" y="+y+" z="+z);
    }
  }
  public class VariableTest{
  public static void main(String args[]){
  Variable v=new Variable();
  System.out.println("**before init**");
  System.out.println("x="+v.x+" y="+ v.y+" z="+v.z);
  v.init(20,30);
  System.out.println("**after init**");
  System.out.println("x="+v.x+ " y="+ v.y+" z="+v.z);
    }
  }

   運(yùn)行結(jié)果

  c:\>java VariableTest
  **before init**
  x=0 y=0 z=0
  ** in init **
  x=20 y=30 z=5
  **after init**
  x=20 y=30 z=0




  上例中我們用到了this,這是因?yàn)閕nit()方法的參數(shù)名與類(lèi)的成員變量x,y的名字相同,而參數(shù)名會(huì)隱藏成員變量,所以在方法中,為了區(qū)別參數(shù)和類(lèi)的成員變量,我們必須使用this。this-----用在一個(gè)方法中引用當(dāng)前對(duì)象,它的值是調(diào)用該方法的對(duì)象。返回值須與返回類(lèi)型一致,或者完全相同,或是其子類(lèi)。當(dāng)返回類(lèi)型是接口時(shí),返回值必須實(shí)現(xiàn)該接口。

  5.方法重載
  
  方法重載是指多個(gè)方法享有相同的名字,但是這些方法的參數(shù)必須不同,或者是參數(shù)的個(gè)數(shù)不同,或者是參數(shù)類(lèi)型不同。返回類(lèi)型不能用來(lái)區(qū)分重載的方法。

  參數(shù)類(lèi)型的區(qū)分度一定要足夠,例如不能是同一簡(jiǎn)單類(lèi)型的參數(shù),如int與long。

  【例3-3】
  import java.io.*;
  class MethodOverloading{
  void receive(int i) {
  System.out.println("Receive one int data");
  System.out.println("i="+i);
  }
  void receive(int x, int y) {
  System.out.println("Receive two int datas");
  System.out.println("x="+x+" y="+y);
    } 
  }
  public class MethodOverloadingTest{
  public static void main(String args[]) {
  MethodOverloading mo=new MethodOverloading();
  mo.receive(1);
  mo.receive(2,3);

    } 
  }

  運(yùn)行結(jié)果(編譯器會(huì)根據(jù)參數(shù)的個(gè)數(shù)和類(lèi)型來(lái)決定當(dāng)前所使用的方法)

  c:\>java MethodOverloadingTest
  Receive one int data
  i=1
  Receive two int datas
  x=2 y=3




主站蜘蛛池模板: 日韩黄色影视 | 欧美性猛交xxxx乱大交极品 | 日本高清免费一本视频无需下载 | 亚洲看片网站 | 日日摸日日干 | 亚洲1页| 婷婷色九月综合激情丁香 | 日韩高清免费在线观看 | 青青视频免费看 | 日韩在线观看视频免费 | 亚洲高清在线看 | 一级毛片在线免费视频 | 日本高清视频色 | 婷婷在线成人免费观看搜索 | 四虎永久在线精品视频免费观看 | 五月婷婷爱 | 亚洲一区在线免费观看 | 亚洲第一色区 | 最新国语露脸精品国产 | 亚洲 欧美 综合 | 日日搞夜夜操 | 综合久久久久6亚洲综合 | 亚洲狠狠婷婷综合久久久久图片 | 日韩亚洲欧美一区二区三区 | 欧美视频久久 | 亚洲午夜综合网 | 日韩欧美国产一区二区三区 | 日韩毛片在线看 | 欧美亚洲一区二区三区四 | 日韩精品欧美国产精品亚 | 亚洲精品影院 | 日本a在线观看 | 婷婷99精品国产97久久综合 | 欧美一区二区三区精品影视 | 在线观看欧美日韩 | 性网站视频 | 中文字幕欧美日韩 | 五月天丁香婷婷综合 | 日本大蕉香蕉大视频在线观看 | 日本视频一区在线观看免费 | 日本免费高清视频二区 |