• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2. 計算機二級JAVA考點解析

        時間:2024-10-12 15:47:38 計算機等級 我要投稿

        計算機二級JAVA考點解析

          Java看起來設計得很像C++,但是為了使語言小和容易熟悉,設計者們把C++語言中許多可用的特征去掉了,這些特征是一般程序員很少使用的。下面是關于計算機二級JAVA考點解析,希望大家認真閱讀!

          類是Java語言面向對象編程的基本元素,它定義了一個對象的結構和行為。在Java程序里,你要表達的概念封裝在某個類里。一個類定義了一個對象的結構和它的功能接口,功能接口稱為成員函數。當Java程序運行時,系統用類的定義創建類的實例,類的實例是真正的對象。類定義的一般形式如下:

          classclassnameextendssuperclassname{typeinstance-variable1;typeinstance-variable2;.................................typeinstance-variableN;typemethodname1(parameter-list){method-body;}typemethodname2(parameter-list){method-body;}....................................................typemethodnameN(parameter-list){method-body;}}

          這里,classname和superclassname是合法的標識符。關鍵詞extends用來表明classname是superclassname派生的子類。有一個類叫做Object,它是所有Java類的根。如果你想定義Object的直接子類,你可以省略extends子句,編譯器會自動包含它。下面是一個簡單的類的定義。classUniversity{}

          5.1對象實例

          類名可以作為變量的類型來使用,如果一個變量的類型是某個類,那么它將指向這個類的實例,稱為對象實例。所有對象實例和它們的類型(某個類?copy;的子類的實例都是相容的。就象可以把byte型的值賦給int型的變量一樣,你可以把Object的子類的任何實例賦給一個Object型的變量。一個實例是類模板的單獨的拷貝,帶有自己的稱為實例變量的數據集。每個實例也可以作為一個對象。當你定義一個變量的類型是某個類時,它的缺省值是null,null是Object的一個實例。對象null沒有值,它和整數0不同。下面這個例子中,聲明變量u的類型是類University。Universityu;這里,變量u的值是null。

          5.2實例變量

          Java通過在類定義的大括號里聲明變量來把數據封裝在一個類里。這里的變量稱為實例變量。下面的例子定義了一個叫做University的類,它有兩個實例變量:name和city。classUniversity{Stringname,city;}

          5.3new操作符

          操作符new用來生成一個類的實例,下面這個例子生成了類University的一個實例,存放在變量u中。

          Universityu=newUniversity();在此例中,變量u指向這個對象,但并不真正包含這個對象。你可以用多個變量指向同一個對象。下面的例子中,創建了一個University的對象,但創建了兩個指向它的變量。

          Universityu=newUniversity();Universityu2=u;

          對u2所指向的對象的任何改動都會對u所指向的對象起作用,因為它們是同一個對象。對u和u2的賦值只是把它們指向這個對象,既沒有分配內存,也沒有復制這個對象的任何部分。對u的再賦值只是簡單地去掉了u和原來對象的聯系,并不影響對象本身,下面的例子說明了這種情況。

          Universityu=newUniversity();Universityu2=u;u=null;

          盡管u被賦值為null,u2仍指向原來由操作符new創建的對象。在前面的例子里,我們生成了一個對象并且指向了它兩次。這就允許兩個變量改變同一個對象。創建一個新的對象時,可直接對它的實例變量賦值。每個對象都有它所屬類的實例變量的拷貝,每個對象的實例變量都是和其他對象的實例變量分離的,所以改變一個對象的實例變量不會影響其他對象的實例變量。下面的例子創建了兩個University的對象,并對它們分別賦值:classTwoUniversity{publicstaticvoidmain(Stringargs[]){Universityu1=newUniversity();Universityu2=newUniversity();u1.name=\"北?copy;大學\";u1.city=\"北?copy;\";u2.name=\"清華大學\";u2.city=\"北?copy;\";System.out.println(\"大學:\"+u1.name+\"城市:\"+u1.city);System.out.println(\"大學:\"+u2.name+\"城市:\"+u2.city);}}這個例子創建了兩個University的對象,并且對它們的name、city分別賦了不同的值,這說明這兩個對象是真正分離的。下面是該程序運行后的輸出結果。C:\\>javaTwoUniversity大學:北?copy;大學城市:北?copy;大學:清華大學城市:北?copy;

          5.4點(.?copy;操作符點(.?copy;操作符用來接收一個對象的實例變量和成員函數。下面是用點操作符來接收實例變量的一般形式。objectreference.variablename

          這里objectreference是一個對象實例,variablename是這個對象里你想接收的實例變量。下面的程序段說明了怎樣用點操作符來給實例變量賦值。

          u.name=\"北?copy;大學\";u.city=\"北?copy;\";下面說明怎樣用點操作符來得到實例變量的值。System.out.println(\"大學:\"+u.name+\"城市:\"+u.city);通過向類University里加入一個成員函數main,我們創建了一個完整的例子,它使用了new操作符來創建一個University,用點操作符來賦值,然后打印結果。classUniversity{Stringname,city;publicstaticvoidmain(Stringargs[]){Universityu=newUniversity();u.name=\"北?copy;大學\";u.city=\"北?copy;\";System.out.println(\"大學:\"+u.name+\"城市:\"+u.city);}}

          運行這個程序后,就會得到下面的結果。C:\\>javaUniversity大學:北?copy;大學城市:北?copy;

          5.5成員函數定義

          成員函數,是類的功能接口,是類定義里的一個子程序,在類的定義里和實例變量處于同一級別。你必須通過一個類的實例來調用成員函數。成員函數可以不用點操作符而直接使用實例變量。成員函數帶有輸入參數,具有

          某種類型的返回值。成員函數定義的一般形式如下:typemethodname(formal-parameter-list){method-body;}這里type指的是成員函數的返回值的類型,如果沒有返回值,就用無值(void?copy;類型。methodname可以是任何合法的標識符,但不能與當前的類名相同。formal-parameter-list是用逗號分隔的類型、標識符對的序列。如果沒有參數,括號里就是空的。還是用我們的University的例子,下面的成員函數用來初始化兩個實例變量。成員函數是在類的大括號?reg;內定義的,和實例變量所處的范圍相同。classUniversity{Stringname,city;voidinit(Stringa,Stringb){name=a;city=b;}}

          注意,我們這里直接給name和city賦值,而沒有象以前那樣用u1.name。這是因為每個成員函數都在類的個別實例內執行。我們創建的類的實例具有它自己的實例變量,所以成員函數可直接使用它們。

          5.6成員函數調用

          可以用點(.?copy;操作符來調用一個類的實例的成員函數。成員函數調用的一般形式如下:objectreference.methodname(parameter-list);這里,objectreference是指向某個對象的變量,methodname是objectreference所屬類的一個成員函數,parameter-list是用逗號分隔的變量或表達式的序列,它們要與該成員函數的定義的參數個數及類型匹配。在這個例子里,我們可以對任何University對象調用成員函數init來給name和city賦值。下面的程序段說明了怎樣完成這個工作。Universityu=newUniversity();u.init(\"北?copy;大學\",\"北?copy;\");這個例子創建了University的一個實例,存放在u中。通過點操作符來調用這個實例的init成員函數,把\"北?copy;大學\"和\"北?copy;\"分別傳遞給參數a和b。在init成員函數內部,name和city直接指向u所指向的對象的實例變量。把name賦值為\"北?copy;大學\",city賦值為\"北?copy;\",然后返回。在這個例子里,init被定義為無值(void?copy;返回類型。在進行這個成員函數調用后,u指向這個name值和city值改變了的University對象。

          5.7thisJava有一個特殊的實例值叫this,它用來在一個成員函數內部指向當前的對象。在前面的例子里,我們調用u.init,一?copy;進入init成員函數內部,this就會指向u所指向的對象。在Java里,在同一個范圍定義兩個相同名字的局部變

          量是不可以的。有趣的是,局部變量、成員函數的參數可以和實例變量的名字相同。前面我們沒有用name和city作為成員函數init的參數名字,因為這樣它們在成員函數的范圍里就把實例變量name和city隱藏了,即name指向參數name,隱藏了實例變量name。this讓我們可以直接指向對象本身。下面是另一個版本的init,用name和city作為參數名字,用this來接收當前對象的實例變量。

          voidinit(Stringname,Stringcity){this.name=name;this.city=city;}下面是帶有新的init初始成員函數的TwoUniversity例子。classUniversity{Stringname,city;voidinit(Stringname,Stringcity){this.name=name;this.city=city;}}classTwoUniversityInit{publicstaticvoidmain(Stringargs[]){Universityu1=newUniversity();Universityu2=newUniversity();u1.init(\"北?copy;大學\",\"北?copy;\");u2.init(\"清華大學\",\"北?copy;\");System.out.println(\"大學:\"+u1.name+\"城市:\"+u1.city);system.out.println(\"大學:\"+u2.name+\"城市:\"+u2.city);}}

          5.8構造函數(Constructor)

          每創建一個類的實例都去初始化它的所有變量是乏味的。如果一個對象在被創建時就完成了所有的初始工作,將是簡單的和簡潔的。因此,Java在類里提?copy了一個特殊的成員函數,叫做構造函數(Constructor?copy;。一個構造函數是對象被創建時初始對象的成員函數。它具有和它所在的類完全一樣的名字。一?copy;定義好一個構造函數,創建對象時就會自動調用它。構造函數沒有返回類型,即使是void類型也沒有。這是因為一個類的構造函數的返回值的類型就是這個類本身。構造函數的任務是初始一個對象的內部狀態,所以用new操作符創建一個實例后,立刻就會得到一個清楚、可用的對象。下面這個例子里,用構造函數取代了成員函數init。

          classUniversity{Stringname,city;University(Stringname,Stringcity)

          {this.name=name;this.city=city;}}classUniversityCreate{publicstaticvoidmain(Stringargs[]){Universityu=newUniversity(\"北?copy;大學\",\"北?copy;\");System.out.println(\"大學:\"+u.name+\"城市:\"+u.city);}}new語句中類名后的參數是傳給構造函數的。

          5.9成員函數重載

          對于幾個意義相近的成員函數,有時使用相同的名字便于理解。因此,Java語言實現了成員函數重載,即可以創建幾個名字相同、參數不同的成員函數。成員函數重載提?copy;了Java的多態行為。下面的例子用到了重載。classUniversity{Stringname,city;University(Stringname,Stringcity){this.name=name;this.city=city;}University(){name=\"北?copy;大學\";city=\"北?copy;\";}}

          classUniversityCreateAlt{publicstaticvoidmain(Stringargs[]){Universityu=newUniversity();System.out.println(\"大學:\"+u.name+\"城市:\"+u.city);}}

          這個例子創建了一個University對象,調用了第二個構造函數。下面是它的運行結果。

          C:\\>javaUniversityCreateAlt大學:北?copy;大學城市:北?copy;一個構造函數可以調用另一個構造函數來創建實例。例如:

          classUniversity{Stringname,city;University(Stringname,Stringcity)

          {this.name=name;this.city=city;}University(){this(\"北?copy;大學\",\"北?copy;\");}}

          第二個構造函數調用了第一個構造函數來完成實例的初始化。你也可以用重載來創建一般的成員函數。下面這個例子里有University類的兩個版本的samecity成員函數。samecity判斷一個大學是否在一個城市里或一個大學和另一個大學是否在同一個城市里。一個成員函數用city作參數,另一個用University對象作參數。

          classUniversity{Stringname,city;University(Stringname,Stringcity)

          {this.name=name;this.city=city;}booleansamecity(Stringcity){if

          (city.equals(this.city))returntrue;elsereturnfalse;}boolean

          samecity(Universityu){returnsamecity(u.city);}}

          classUniversityCity{publicstaticvoidmain(Stringargs[]){String

          city=\"上海\";Universityu1=newUniversity(\"北?copy;大學\",\"

          北?copy;\");Universityu2=newUniversity(\"清華大學\",\"北?copy;\");

          System.out.println(\"u1=\"+u1.name+\",\"+u1.city);

          System.out.println(\"u2=\"+u2.name+\",\"+u2.city);

          System.out.println(\"city=\"+city);

          System.out.println(\"u1.samecity(u2)=\"+u1.samecity(u2));

          System.out.println(\"u1.samecity(city)=\"+u1.samecity(city));}}

          下面是該程序的運行結果。

          C:\\>javaUniversityCityu1=北?copy;大學,北?copy;u2=清華大學,北?copy;city=上海u1.samecity(u2)=trueu1.samecity(city)=false

          5.10繼承

          第二個基本的面向對象機制是繼承。繼承是關于有層次關系的類?reg;間的概念。一個類的后代可以繼承它的祖先的所有變量和成員函數,就象創建自己的一樣。一個類的直接父親叫做它的超類(superclass?copy;。一?copy;你創建了一個象University這樣的類,創建它的子類是很簡單的。一個類的子類是它的繼承了實例變量和成員函數的特殊的版本。在這個例子里,我們把University類派生為含有叫做country的第三個元素的子類。

          classUniversityWorldextendsUniversity{Stringcountry;UniversityWorld(Stringname,Stringcity,Stringcountry){this.name=name;this.city=city;this.country=country;}UniversityWorld(){this(\"北?copy;大學\",\"北?copy;\",\"中國\");}}

          關鍵詞extends用來表示我們要創建University的子類。name和city不需再在UniversityWorld中進行聲明,因為它們是從University中繼承的。Java允許在UniversityWorld中聲明變量name和city,但這會隱藏University中的name和city,是與使用子類的目的相矛盾的,應當避免。在UniversityWorld的實例中name、city和country的地位是一樣的。

          5.11super在UniversityWorld的例子里,有一段代碼和它的超類University的重復,這段代碼是初始化name和city的,this.name=name;this.city=city;就象在University例子中用this指向第一個構造函數一樣,在Java里有另一個變量叫做super,它直接指向超類的構造函數。下面這個例子用super來初始化變量name和city,然后打印出這個對象的內容。

          classUniversityWorldextendsUniversity{Stringcountry;UniversityWorld(Stringname,Stringcity,Stringcountry){super(name,city);//調用了構造函數University(name,city)this.country=country;}publicstaticvoidmain(Stringargs[]){UniversityWorldu=newUniversityWorld(\"北?copy;大學\",\"北?copy;\",\"中國\");System.out.println(\"大學:\"+u.name+\"城市:\"+u.city+\"國家:\"+u.country);}}

        【計算機二級JAVA考點解析】相關文章:

        關于計算機二級JAVA考點解析07-14

        2017年計算機二級JAVA考點解析08-03

        2017年計算機二級C語言考點解析08-27

        計算機二級java上機試題題庫07-13

        計算機二級Java考試及答案201706-11

        計算機二級C語言考點盤點07-28

        計算機二級考試MSOffice核心考點08-26

        計算機二級MS Office高頻考點01-23

        計算機二級office基本考點匯總09-29

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 色综合视频一区二区三区 | 中文字幕人成乱码熟女免费69 | 亚州第一中文字幕 | 亚洲国产精品综合在线 | 综合欧美日韩一区二区 | 一本色道久久88综合精品 |