激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频

計算機二級JAVA考點(diǎn)解析

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

計算機二級JAVA考點(diǎn)解析

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

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

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

  這里,classname和superclassname是合法的標識符。關(guān)鍵詞extends用來(lái)表明classname是superclassname派生的子類(lèi)。有一個(gè)類(lèi)叫做Object,它是所有Java類(lèi)的根。如果你想定義Object的直接子類(lèi),你可以省略extends子句,編譯器會(huì )自動(dòng)包含它。下面是一個(gè)簡(jiǎn)單的類(lèi)的定義。classUniversity{}

  5.1對象實(shí)例

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

  5.2實(shí)例變量

  Java通過(guò)在類(lèi)定義的大括號里聲明變量來(lái)把數據封裝在一個(gè)類(lèi)里。這里的變量稱(chēng)為實(shí)例變量。下面的例子定義了一個(gè)叫做University的類(lèi),它有兩個(gè)實(shí)例變量:name和city。classUniversity{Stringname,city;}

  5.3new操作符

  操作符new用來(lái)生成一個(gè)類(lèi)的實(shí)例,下面這個(gè)例子生成了類(lèi)University的一個(gè)實(shí)例,存放在變量u中。

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

  Universityu=newUniversity();Universityu2=u;

  對u2所指向的對象的任何改動(dòng)都會(huì )對u所指向的對象起作用,因為它們是同一個(gè)對象。對u和u2的賦值只是把它們指向這個(gè)對象,既沒(méi)有分配內存,也沒(méi)有復制這個(gè)對象的任何部分。對u的再賦值只是簡(jiǎn)單地去掉了u和原來(lái)對象的聯(lián)系,并不影響對象本身,下面的例子說(shuō)明了這種情況。

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

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

  5.4點(diǎn)(.?copy;操作符點(diǎn)(.?copy;操作符用來(lái)接收一個(gè)對象的實(shí)例變量和成員函數。下面是用點(diǎn)操作符來(lái)接收實(shí)例變量的一般形式。objectreference.variablename

  這里objectreference是一個(gè)對象實(shí)例,variablename是這個(gè)對象里你想接收的實(shí)例變量。下面的程序段說(shuō)明了怎樣用點(diǎn)操作符來(lái)給實(shí)例變量賦值。

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

  運行這個(gè)程序后,就會(huì )得到下面的結果。C:\\>javaUniversity大學(xué):北?copy;大學(xué)城市:北?copy;

  5.5成員函數定義

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

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

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

  5.6成員函數調用

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

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

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

  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;大學(xué)\",\"北?copy;\");u2.init(\"清華大學(xué)\",\"北?copy;\");System.out.println(\"大學(xué):\"+u1.name+\"城市:\"+u1.city);system.out.println(\"大學(xué):\"+u2.name+\"城市:\"+u2.city);}}

  5.8構造函數(Constructor)

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

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

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

  5.9成員函數重載

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

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

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

  C:\\>javaUniversityCreateAlt大學(xué):北?copy;大學(xué)城市:北?copy;一個(gè)構造函數可以調用另一個(gè)構造函數來(lái)創(chuàng )建實(shí)例。例如:

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

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

  第二個(gè)構造函數調用了第一個(gè)構造函數來(lái)完成實(shí)例的初始化。你也可以用重載來(lái)創(chuàng )建一般的成員函數。下面這個(gè)例子里有University類(lèi)的兩個(gè)版本的samecity成員函數。samecity判斷一個(gè)大學(xué)是否在一個(gè)城市里或一個(gè)大學(xué)和另一個(gè)大學(xué)是否在同一個(gè)城市里。一個(gè)成員函數用city作參數,另一個(gè)用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;大學(xué)\",\"

  北?copy;\");Universityu2=newUniversity(\"清華大學(xué)\",\"北?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;大學(xué),北?copy;u2=清華大學(xué),北?copy;city=上海u1.samecity(u2)=trueu1.samecity(city)=false

  5.10繼承

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

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

  關(guān)鍵詞extends用來(lái)表示我們要創(chuàng )建University的子類(lèi)。name和city不需再在UniversityWorld中進(jìn)行聲明,因為它們是從University中繼承的。Java允許在UniversityWorld中聲明變量name和city,但這會(huì )隱藏University中的name和city,是與使用子類(lèi)的目的相矛盾的,應當避免。在UniversityWorld的實(shí)例中name、city和country的地位是一樣的。

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

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

【計算機二級JAVA考點(diǎn)解析】相關(guān)文章:

關(guān)于計算機二級JAVA考點(diǎn)解析07-14

2017年計算機二級JAVA考點(diǎn)解析08-03

2017年計算機二級C語(yǔ)言考點(diǎn)解析08-27

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

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

計算機二級C語(yǔ)言考點(diǎn)盤(pán)點(diǎn)07-28

計算機二級考試MSOffice核心考點(diǎn)08-26

計算機二級MS Office高頻考點(diǎn)01-23

計算機二級office基本考點(diǎn)匯總09-29

激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频