Java基礎(chǔ)應(yīng)用編程—— 面向?qū)ο蟾呒?jí)特性

本章內(nèi)容




類的繼承

理解繼承的含義

在Java中定義一個(gè)類時(shí),讓該類通過(guò)關(guān)鍵字extends繼承一個(gè)已有的類,這就是類的繼承(泛化)剑令。

被繼承的類稱為父類(超類舌镶,基類)柱彻,新的類稱為子類(派生類)。

子類繼承父類的所有屬性和方法餐胀,同時(shí)也可以增加自己的屬性和方法哟楷。


ava中只能單繼承,也就是說(shuō)每個(gè)類只能有一個(gè)直接父類否灾;一個(gè)父類可以有多個(gè)子類卖擅。

其實(shí),在繼承關(guān)系中我們還能發(fā)現(xiàn)一個(gè)規(guī)律:子類是父類的一種,也可以說(shuō)“子類就是父類”惩阶。如:人類就是動(dòng)物挎狸,動(dòng)物就是生物。記住這個(gè)定律對(duì)我們理解繼承的概念非常有幫助琳猫。但是伟叛,反過(guò)來(lái)看,父類是子類的說(shuō)法正確嗎脐嫂?



繼承的語(yǔ)法和規(guī)則

示例 Employee.java Worker.java

[修飾符]class子類名extends父類名



? 練習(xí) Officer.java TestOfficer.java?

用java中類的繼承機(jī)制统刮,實(shí)現(xiàn)Officer類,并設(shè)計(jì)一個(gè)測(cè)試程序TestOfficer類账千,來(lái)訪問(wèn)Officer類

繼承的好處



子類實(shí)例化的過(guò)程

子類實(shí)例化時(shí)先實(shí)例化其父類侥蒙,然后實(shí)例化子類痢艺。

要先調(diào)用父類的構(gòu)造器兴猩,父類構(gòu)造器運(yùn)行完畢,才調(diào)用子類的構(gòu)造器射赛。

如果實(shí)例化類D娃善,說(shuō)出構(gòu)造器執(zhí)行的順序论衍。



super和this關(guān)鍵字

super()

this()

作用:調(diào)用本類的構(gòu)造器

只能寫(xiě)在構(gòu)造器的第一行

在同一個(gè)構(gòu)造器中super()和this()不能同時(shí)出現(xiàn)

子類實(shí)例化的過(guò)程

使用默認(rèn)的構(gòu)造器

在子類中的創(chuàng)建構(gòu)造器 示例 Worker.java

在子類中創(chuàng)建構(gòu)造器時(shí),必須調(diào)用父類的構(gòu)造器

子類可以在自己的構(gòu)造器中使用super關(guān)鍵字來(lái)調(diào)用父類的構(gòu)造器

super(參數(shù)1聚磺,參數(shù)2坯台,…);

如果使用super關(guān)鍵字調(diào)用父類構(gòu)造器,必須寫(xiě)在該子類構(gòu)造器的第一行

如調(diào)用的是父類中無(wú)參的構(gòu)造器瘫寝,則可以不寫(xiě)super( )

如果子類中調(diào)用了父類無(wú)參的構(gòu)造器蜒蕾,而父類中沒(méi) 有無(wú)參構(gòu)造器則系統(tǒng)編譯出錯(cuò)

super.

指向父類的引用。

通過(guò)關(guān)鍵字super我們可以指定子類在構(gòu)造時(shí)調(diào)用父類的哪個(gè)構(gòu)造器焕阿,達(dá)到先實(shí)例化父類然后實(shí)例化子類的目的咪啡。

子類的構(gòu)造器默認(rèn)的調(diào)用父類無(wú)參構(gòu)造器,即子類構(gòu)造器中沒(méi)有用super指明調(diào)用父類哪個(gè)構(gòu)造器的話暮屡,實(shí)際上編譯器會(huì)自動(dòng)的在子類構(gòu)造器第 一行加入代碼super( );

this.


指向本類的引用撤摸。

我們知道子類在實(shí)例化時(shí)必須調(diào)用父類的構(gòu)造器,實(shí)際上有的子類構(gòu)造器

也可以先調(diào)用本類的其他構(gòu)造器褒纲,然后再通過(guò)那個(gè)構(gòu)造器調(diào)用父類的構(gòu)造器

無(wú)論是調(diào)用父類的構(gòu)造器還是子類的構(gòu)造器准夷,最終都是找到最頂級(jí)的父類自

上而下的實(shí)例化。只要中間環(huán)節(jié)有一個(gè)構(gòu)造器沒(méi)找到外厂,這個(gè)子類就無(wú)法完成實(shí)例化

給定以下代碼:



答案:A

Java包的概念

包的概念及應(yīng)用

在Java中,包主要有以下用途 :

包允許將類組合成較小的單元

有助于避免命名沖突

包允許在更廣的范圍內(nèi)保護(hù)類代承、數(shù)據(jù)和方法

包可以是類汁蝶、接口和子包的集合

將類放入包中

package包名 ;

注意:

在java中位于包中的類,在文件系統(tǒng)中的存放位置,必須有與包名層次相對(duì)應(yīng)的目錄結(jié)構(gòu)

package語(yǔ)句作為java源文件的第一條語(yǔ)句

每個(gè)源文件只能聲明一個(gè)包

如果沒(méi)有package語(yǔ)句掖棉,則默認(rèn)為無(wú)名包

Java類庫(kù)中常用的包


java.lang

Java語(yǔ)言包墓律,任何程序中,該包都被自動(dòng)導(dǎo)入幔亥。

java.awt

圖形用戶界面包

java.awt.event

圖形用戶界面事件處理包耻讽。

java.swing

跨平臺(tái)輕量級(jí)組件包。

java.sql

數(shù)據(jù)庫(kù)訪問(wèn)包帕棉。

java.io

這個(gè)包由對(duì)您的輸入/輸出操作有用的類組成针肥。

java.util

該包提供了許多創(chuàng)建如:lists, calendar, date等所需要的類和接口。

java.net

該包提供了許多進(jìn)行TCP/IP網(wǎng)絡(luò)編程的類和接口香伴。

import導(dǎo)入包中的類

包名.路徑名

package? ?test;

class? Cat? ?extends? ?p08.Animal{…}

使用import關(guān)鍵字引入其它包中的類

package? test;

import? ? p08.Animal;

class? Cat? ? extends? ? Animal{…}

位于同一包中的類可以直接訪問(wèn)

導(dǎo)入包中所有的類

import? ? ?包名.*;

導(dǎo)入子包中所有的類

import? ?包名.子包名.*;

導(dǎo)入包中的某個(gè)類

import? ?包名.子包名.類名;

權(quán)限訪問(wèn)操作符

使用訪問(wèn)權(quán)限修飾符對(duì)類的成員進(jìn)行控制慰枕,在java中稱為“封裝”。

不過(guò)不要把封裝理解為private即纲,不要誤認(rèn)為不能訪問(wèn)成員才是封裝具帮。實(shí)際上對(duì)成員訪問(wèn)權(quán)限的任何控制(包括public)都可以稱為封裝機(jī)制。

構(gòu)造器和類的權(quán)限通常為public低斋;private權(quán)限最小蜂厅,限制類外訪問(wèn),一般把屬性設(shè)為private膊畴,讓其他類不能直接訪問(wèn)屬性掘猿,達(dá)到保護(hù)屬性的目的;friendly是默認(rèn)權(quán)限巴比,即不使用權(quán)限修飾符時(shí)术奖,即為friendly,該權(quán)限聲明的成員在類內(nèi)以及在同一個(gè)包中的其他類可以訪問(wèn)轻绞;而protected所修飾的成員在類內(nèi)采记、同一個(gè)包中、所在類的子類中都可以訪問(wèn)政勃。

public > protected > friendly > private

封裝

信息隱藏,隱藏對(duì)象的實(shí)現(xiàn)細(xì)節(jié)唧龄,不讓用戶看到

將東西包裝在一起,然后以新的完整形式呈現(xiàn)出來(lái)

例如奸远,兩種或多種化學(xué)藥品組成一個(gè)膠囊

將方法和屬性一起包裝到一個(gè)單元中既棺,單元以類的形式實(shí)現(xiàn)

“隱藏屬性、方法或?qū)崿F(xiàn)細(xì)節(jié)的過(guò)程稱為封裝懒叛⊥杳幔”

隱藏類的實(shí)現(xiàn)細(xì)節(jié)

讓使用者只能通過(guò)事先定制好的方法來(lái)訪問(wèn)數(shù)據(jù),可以方便地加入控制邏輯薛窥,限制對(duì)屬性的不合理操作

便于修改胖烛,增強(qiáng)代碼的可維護(hù)性

可進(jìn)行數(shù)據(jù)檢查

示例? ? ? Employor.java? ? TestEmployer.java

訪問(wèn)權(quán)限修飾符


用來(lái)控制類的成員和類的使用范圍

類成員的訪問(wèn)權(quán)限修飾符:private眼姐、default、protected佩番、public

類的訪問(wèn)權(quán)限修飾符:public众旗、default


示例:Access.javaTestAccess.java

? 練習(xí)

給定以下代碼:




方法的覆蓋

方法的覆蓋(override)

重寫(xiě)(rewrite)

對(duì)從父類中繼承來(lái)的方法進(jìn)行改造

在子類繼承父類時(shí)發(fā)生

方法覆蓋的規(guī)則

在子類中的覆蓋方法與父類中被覆蓋的方法應(yīng)具有

相同的方法名相同的參數(shù)列表(參數(shù)數(shù)量、參數(shù)類型趟畏、參數(shù)順序都要相同)相同的返回值類型子類覆蓋方法的訪問(wèn)權(quán)限要不小于父類中被覆蓋方法的訪問(wèn)權(quán)限示例Worker.java

?? 練習(xí)

給定下列代碼:

當(dāng)在第6行加入什么方法時(shí)會(huì)引起編譯錯(cuò)誤贡歧?

答案:B

?? 練習(xí)

給定類

class? A{? int? method1(inta,? double? b){return? 0; }

在其子類中


引用數(shù)據(jù)類型的轉(zhuǎn)換

上溯造型

示例:TestStudent.java

向上轉(zhuǎn)型(Upcasting)— 子類轉(zhuǎn)換為父類,自動(dòng)轉(zhuǎn)換赋秀;

前提 — 具有繼承或?qū)崿F(xiàn)關(guān)系

向上轉(zhuǎn)換損失了子類新擴(kuò)展的屬性和方法利朵,僅可以使用從父類中繼承的屬性和方法



下溯造型 示例:TestStudent.java

向下轉(zhuǎn)型(Downcasting):強(qiáng)制轉(zhuǎn)換


instanceof 運(yùn)算符

其實(shí)經(jīng)過(guò)上溯和下溯造型之后,我們很難知道某個(gè)引用到底指向哪種類型的對(duì)象了沃琅。

可以通過(guò)instanceof來(lái)判斷該經(jīng)過(guò)上溯轉(zhuǎn)型后是哪一個(gè)子類的哗咆。

instanceof運(yùn)算符的一般格式:


instanceof 運(yùn)算符

判斷一個(gè)類是否實(shí)現(xiàn)了某個(gè)接口

對(duì)象? ?instanceof? ?接口

判斷一個(gè)實(shí)例對(duì)象是否屬于一個(gè)類

對(duì)象? instanceof? ?類

它的返回值是boolean型的

示例? ? TestStudent.java

多態(tài)

多態(tài)

簡(jiǎn)單來(lái)說(shuō),多態(tài)是具有表現(xiàn)多種形態(tài)的能力的特征

同一個(gè)實(shí)現(xiàn)接口益眉,使用不同的實(shí)例而執(zhí)行不同操作

多態(tài)(動(dòng)態(tài)綁定晌柬、Polymorphism )

不同的對(duì)象對(duì)同一行為作出的不同響應(yīng)

多態(tài)存在的三個(gè)必要條件

要有繼承,或?qū)崿F(xiàn)

要有重寫(xiě)

父類引用指向子類對(duì)象

一旦滿足以上3個(gè)條件郭脂,當(dāng)調(diào)用父類中被重寫(xiě)的方法后年碘,

運(yùn)行時(shí)創(chuàng)建的是哪個(gè)子類的對(duì)象,就調(diào)用該子類中重寫(xiě)的那個(gè)方法

在執(zhí)行期間(而非編譯期間)判斷所引用對(duì)象的實(shí)際類型展鸡,根據(jù)其實(shí)際類型調(diào)用相應(yīng)的方法

多態(tài)的優(yōu)點(diǎn)

簡(jiǎn)化代碼

改善代碼的組織性和可讀性

易于擴(kuò)展

?? 示例? ? Parker.java Vehicle.java? Bus.java? Truck.java? Car.java

在停車場(chǎng)收費(fèi)系統(tǒng)中屿衅,

收費(fèi)者會(huì)根據(jù)車型的不同收取不同的停車費(fèi),其中莹弊,

客車:15元/小時(shí)

貨車:12元/小時(shí)

轎車:8元/小時(shí)

編寫(xiě)java程序完成此功能

static關(guān)鍵字

靜態(tài)變量

所有對(duì)象共享

也稱為類變量

用static修飾的成員變量涤久,它們?cè)陬惐惠d入時(shí)創(chuàng)建,只要類存在忍弛,static變量就存在(參考java虛擬機(jī)視頻)

兩種方式訪問(wèn):

直接訪問(wèn):類名.屬性响迂;

實(shí)例化后訪問(wèn):對(duì)象名.屬性

靜態(tài)方法

不需要實(shí)例化,可以直接訪問(wèn)

也稱為類方法

兩種方式訪問(wèn):

直接訪問(wèn):類名.方法名()

實(shí)例化后訪問(wèn):對(duì)象名.方法名()

static方法的作用

簡(jiǎn)化方法的使用细疚;

便于訪問(wèn)靜態(tài)屬性蔗彤;

注意事項(xiàng)

靜態(tài)方法里只能直接訪問(wèn)靜態(tài)成員,而不能直接訪問(wèn)類中的非

靜態(tài)成員靜態(tài)方法中不能使用this疯兼、super關(guān)鍵字

靜態(tài)方法不能被非靜態(tài)方法覆蓋然遏,靜態(tài)方法不能修飾構(gòu)造器

靜態(tài)代碼塊

一個(gè)類中由static關(guān)鍵字修飾的,不包含在任何方法體中的代碼塊

當(dāng)類被載入時(shí)吧彪,靜態(tài)代碼塊被執(zhí)行待侵,且只被執(zhí)行一次

靜態(tài)塊經(jīng)常用來(lái)進(jìn)行類屬性的初始化

以下代碼的執(zhí)行結(jié)果是_____?

A. 編譯失敗? ?

B. 編譯成功姨裸,輸出“0”

C. 編譯成功秧倾,輸出“1”

D. 編譯成功香拉,輸出“2”

答案:A

?? 練習(xí)


單例模式

單例模式(singleton):保證一個(gè)類僅有一個(gè)實(shí)例,并提供一個(gè)訪問(wèn)它的全局訪問(wèn)點(diǎn)

單例模式要點(diǎn):

某個(gè)類只能有一個(gè)實(shí)例

它必須自行創(chuàng)建這個(gè)示例

必須自行向整個(gè)系統(tǒng)提供這個(gè)實(shí)例

單例模式實(shí)現(xiàn):

擁有一個(gè)私有構(gòu)造器

提供一個(gè)自身靜態(tài)私有的成員變量

提供一個(gè)公有的靜態(tài)公有的方法


final關(guān)鍵字

final關(guān)鍵字

final可以修飾的元素:

類:不能被繼承

變量(屬性和局部變量):不能被重新賦值

在聲明時(shí)賦值中狂,或在構(gòu)造器中賦值系統(tǒng)不會(huì)對(duì)final屬性默認(rèn)的賦初始值

方法:不能在子類中被覆蓋,即不能修改扑毡。

示例? ? ? Final.java? TestFinal.java

在程序中經(jīng)常使用的一些常量胃榕,如圓周率,沒(méi)必要在程序中頻繁的修改它那么我們可以:

首先把它設(shè)置為靜態(tài)static瞄摊,多個(gè)實(shí)例共享該常量勋又,沒(méi)有必要每個(gè)對(duì)象保存一份;

其次换帜,設(shè)置為final類型楔壤,賦值以后不能再改變;

最后注意遵守常量命名規(guī)范惯驼,所有字母大寫(xiě)蹲嚣、單詞之間用下劃線。

練習(xí)

抽象類與final類的區(qū)別祟牲?

final方法是否可以被子類繼承隙畜?

抽象類

抽象類和抽象方法的概念

抽象類是抽象方法和非抽象方法的集合

[訪問(wèn)權(quán)限修飾符]? ? abstract? ? class? ? 類名{? ? ? ? ? ? ? ? ? ? ? ? ? ? ……}

特殊情況

全部是抽象方法

全部為非抽象方法


抽象類和抽象方法的概念

抽象方法

只有方法聲明,沒(méi)有方法實(shí)現(xiàn)的方法

[訪問(wèn)權(quán)限修飾符]? ?abstract? ?返回值類型? ? 抽象方法名 (參數(shù)列表) ;

abstract? ? class? ?A{

abstract? ?int? method1(int? a,int? b);}

抽象類的規(guī)則

注意:

抽象類不能被實(shí)例化说贝;其包含的抽象方法必須在其子類中被實(shí)現(xiàn)议惰,否則該子類只能聲明為abstract;抽象方法不能為static乡恕;

在下列情況下言询,一個(gè)類必須聲明為抽象類:

當(dāng)一個(gè)類的一個(gè)或多個(gè)方法是抽象方法時(shí);

當(dāng)類是一個(gè)抽象類的子類傲宜,并且沒(méi)有實(shí)現(xiàn)父類的所有抽象方法运杭,即只實(shí)現(xiàn)部分;

當(dāng)一個(gè)類實(shí)現(xiàn)一個(gè)接口蛋哭,并且不能為全部抽象方法都提供實(shí)現(xiàn)時(shí)县习;

?? 練習(xí)

給定以下代碼:


接 口(interface)

接口的概念? ? 示例? AudioDevice.java? ? VideoDevice.java

接口中只包含常量和抽象方法,而沒(méi)有變量和方法的實(shí)現(xiàn)

接口對(duì)類來(lái)說(shuō)是一套規(guī)范谆趾,是一套行為協(xié)議躁愿;

接口不是一個(gè)類,不能實(shí)例化


接口的成員:

常量(字段)

抽象方法


注意:

接口不是一個(gè)類沪蓬,沒(méi)有構(gòu)造器彤钟,不能被實(shí)例化

接口使用interface關(guān)鍵字來(lái)定義,而不是class

接口默認(rèn):

常量:public? ?static? ?final

抽象方法:public? ? abstract

?? 練習(xí)

給定以下代碼:



?? 練習(xí)

下列選項(xiàng)中跷叉,哪些可以定義在一個(gè)接口中逸雹?


接口的概念

示例? ? VADevice.java

接口可以實(shí)現(xiàn)多繼承:

用接口可以實(shí)現(xiàn)混合類型(主類型营搅,副類型),java 中可以通過(guò)接口分出主次類型

主類型使用繼承梆砸,副類型转质,使用接口實(shí)現(xiàn)

接口可以使方法的定義和實(shí)現(xiàn)相分離,降低模塊間或系統(tǒng)間的耦合性

針對(duì)接口編程可以屏蔽不同實(shí)現(xiàn)間的差異帖世,看到的只是實(shí)現(xiàn)好的功能休蟹。

接口和類的關(guān)系

類實(shí)現(xiàn)接口 — implements

為了使用一個(gè)接口,你要編寫(xiě)實(shí)現(xiàn)接口的類

如果一個(gè)類要實(shí)現(xiàn)一個(gè)接口日矫,那么這個(gè)類就必須實(shí)現(xiàn)接口中所有抽象方法赂弓。否則這個(gè)類只能聲明為抽象類

多個(gè)無(wú)關(guān)的類可以實(shí)現(xiàn)一個(gè)接口,一個(gè)類可以實(shí)現(xiàn)多個(gè)無(wú)關(guān)的接口

一個(gè)類可以在繼承一個(gè)父類的同時(shí)哪轿,實(shí)現(xiàn)一個(gè)或多個(gè)接口

示例 Television.java

接口和類的關(guān)系

?? 示例? ? Student.java? ? Consumer.java? ? Person.java

有一個(gè)Student類該類繼承了Person類盈魁,并實(shí)現(xiàn)了Consumer接口該類具有String類型的屬性school并有一個(gè)study方法,在該方法中窃诉,系統(tǒng)可打印出學(xué)生在那所學(xué)校學(xué)習(xí)并創(chuàng)建一個(gè)測(cè)試方法杨耙,測(cè)試Student類

接口與抽象類的對(duì)比

接口不能含有任何非抽象方法,而抽象類可以飘痛。

類可以實(shí)現(xiàn)多個(gè)接口按脚,但只能有一個(gè)父類。

接口和接口之間可以多繼承


抽象類可以理解為抽象方法和非抽象方法的混合體敦冬,而接口中的方法完全是抽象方法辅搬,是一套純粹的規(guī)范。一般來(lái)說(shuō)脖旱,有關(guān)系的類才能繼承同一個(gè)抽象類堪遂,而無(wú)關(guān)的類不可能有同一個(gè)抽象父類,但是無(wú)關(guān)的類可以實(shí)現(xiàn)同一個(gè)接口萌庆。

內(nèi)部類

內(nèi)部類特性

內(nèi)部類就是定義在另一個(gè)類內(nèi)部的類溶褪。

內(nèi)部類對(duì)于同一包中的其它類來(lái)說(shuō),內(nèi)部類能夠隱藏起來(lái)践险。

注意

內(nèi)部類可以訪問(wèn)其外部類中所有的屬性和方法

無(wú)需創(chuàng)建外部類的對(duì)象猿妈,即可從內(nèi)部類訪問(wèn)外部類的變量和方法。

必須創(chuàng)建內(nèi)部類的對(duì)象巍虫,否則無(wú)法從外部類訪問(wèn)內(nèi)部類的變量和方法彭则。

如果內(nèi)部類中有和外部類同名的變量或方法,則內(nèi)部類的變量和方法將獲得比外部類的變量和方法更高的優(yōu)先級(jí)占遥。

不能定義static變量

內(nèi)部類特性

示例Outer.java


一個(gè)類只會(huì)被這個(gè)類所調(diào)用俯抖,其他類不會(huì)使用他,你可以把它定義成一內(nèi)部類瓦胎,這樣可以隱藏實(shí)現(xiàn)細(xì)節(jié)芬萍,避免錯(cuò)誤的調(diào)用尤揣。

內(nèi)部類特性

普通類的訪問(wèn)權(quán)限修飾符

default

public

內(nèi)部類的訪問(wèn)權(quán)限修飾符

default

public

protected

private

示例? Outer3.java? ? OuterTest.java

在Outer內(nèi)訪問(wèn)Inner,只需如下:

Inner? ?in=new? ?Inner() ;

在Outer外訪問(wèn)Inner,必須如下:

Outer o =new Outer();//實(shí)例化外部類Outer.Inner oi = o.new? Inner();//實(shí)例化內(nèi)部類

靜態(tài)內(nèi)部類

用static標(biāo)識(shí)的內(nèi)部類為靜態(tài)內(nèi)部類。

靜態(tài)內(nèi)部類作為外部類的靜態(tài)成員柬祠,不能訪問(wèn)外部類非靜態(tài)成員北戏。

非靜態(tài)內(nèi)部類只能定義非靜態(tài)成員,而靜態(tài)內(nèi)部類可以定義靜態(tài)成員和非靜態(tài)成員漫蛔。

使用Outer.Inner inn=new Outer.Inner()方式實(shí)例化靜態(tài)內(nèi)部類最欠。

非靜態(tài)內(nèi)部類不可以使用上面的方式實(shí)例化。

示例:OuterStatic.java

局部?jī)?nèi)部類

在一個(gè)類的方法體中或程序塊內(nèi)定義的內(nèi)部類



示例


在方法定義的內(nèi)部類中只能訪問(wèn)方法中的final類型的局部變量

本章重點(diǎn)總結(jié)

類的繼承Java中的包和訪問(wèn)修飾符方法的覆蓋引用數(shù)據(jù)類型的轉(zhuǎn)換多態(tài)static關(guān)鍵字抽象類和接口final關(guān)鍵字

課后作業(yè)

創(chuàng)建一個(gè)球員類惩猫,并且該類最多只允許創(chuàng)建十一個(gè)對(duì)象。提示利用 static 和 封裝性來(lái)完成蚜点。? [必做題]

類圖如下:

效果如下:

設(shè)計(jì)2個(gè)類轧房,要求如下:(知識(shí)點(diǎn):類的繼承 方法的覆蓋) [必做題]

2.1? 定義一個(gè)汽車類Vehicle,

2.1.1 屬性包括:汽車品牌brand(String類型)绍绘、顏色color(String類型)和速度speed(double類型)奶镶。

2.1.2 至少提供一個(gè)有參的構(gòu)造方法(要求品牌和顏色可以初始化為任意值,但速度的初始值必須為0)陪拘。

2.1.3 為屬性提供訪問(wèn)器方法厂镇。注意:汽車品牌一旦初始化之后不能修改。

2.1.4 定義一個(gè)一般方法run()左刽,用打印語(yǔ)句描述汽車奔跑的功能

2.1.5 在main方法中創(chuàng)建一個(gè)品牌為“benz”捺信、顏色為“black”的汽車。

2.2 定義一個(gè)Vehicle類的子類轎車類Car欠痴,要求如下:

2.2.1 轎車有自己的屬性載人數(shù)loader(int 類型)迄靠。

2.2.2 提供該類初始化屬性的構(gòu)造方法。

2.2.3 重新定義run()喇辽,用打印語(yǔ)句描述轎車奔跑的功能掌挚。

2.2.4 在main方法中創(chuàng)建一個(gè)品牌為“Honda”、顏色為“red”菩咨,載人數(shù)為2人的轎車吠式。

設(shè)計(jì)三個(gè)類,分別如下:(知識(shí)點(diǎn):抽象類及抽象方法) [必做題]

3.1 設(shè)計(jì)Shape表示圖形類抽米,有面積屬性area特占、周長(zhǎng)屬性per,顏色屬性color云茸,有兩個(gè)構(gòu)造方法(一個(gè)是默認(rèn)的摩钙、一個(gè)是為顏色賦值的),還有3個(gè)抽象方法查辩,分別是:getArea計(jì)算面積胖笛、getPer計(jì)算周長(zhǎng)网持、showAll輸出所有信息,還有一個(gè)求顏色的方法getColor长踊。

3.2 設(shè)計(jì) 2個(gè)子類:

3.2.1? Rectangle表示矩形類功舀,增加兩個(gè)屬性,Width表示長(zhǎng)度身弊、height表示寬度辟汰,重寫(xiě)getPer、getArea和showAll三個(gè)方法阱佛,另外又增加一個(gè)構(gòu)造方法(一個(gè)是默認(rèn)的帖汞、一個(gè)是為高度、寬度凑术、顏色賦值的)翩蘸。

3.2.2? Circle表示圓類,增加1個(gè)屬性淮逊,radius表示半徑催首,重寫(xiě)getPer、getArea和showAll三個(gè)方法泄鹏,另外又增加兩個(gè)構(gòu)造方法(為半徑郎任、顏色賦值的)。

3.3? 在main方法中备籽,聲明創(chuàng)建每個(gè)子類的對(duì)象舶治,并調(diào)用2個(gè)子類的showAll方法。

Cola公司的雇員分為以下若干類:(知識(shí)點(diǎn):多態(tài)) [必做題]

4.1? ColaEmployee :這是所有員工總的父類车猬,屬性:?jiǎn)T工的姓名,員工的生日月份歼疮。方法:getSalary(int month) 根據(jù)參數(shù)月份來(lái)確定工資,如果該月員工過(guò)生日诈唬,則公司會(huì)額外獎(jiǎng)勵(lì)100 元韩脏。

4.2? SalariedEmployee : ColaEmployee 的子類,拿固定工資的員工铸磅。屬性:月薪

4.3? HourlyEmployee :ColaEmployee 的子類赡矢,按小時(shí)拿工資的員工,每月工作超出160 小時(shí)的部分按照1.5 倍工資發(fā)放阅仔。屬性:每小時(shí)的工資吹散、每月工作的小時(shí)數(shù)

4.4? SalesEmployee :ColaEmployee 的子類,銷售人員八酒,工資由月銷售額和提成率決定空民。屬性:月銷售額、提成率

4.5? 定義一個(gè)類Company,在該類中寫(xiě)一個(gè)方法界轩,調(diào)用該方法可以打印出某月某個(gè)員工的工資數(shù)額画饥,寫(xiě)一個(gè)測(cè)試類TestCompany,在main方法,把若干各種類型的員工放在一個(gè)ColaEmployee 數(shù)組里浊猾,并單元出數(shù)組中每個(gè)員工當(dāng)月的工資抖甘。

利用接口實(shí)現(xiàn)動(dòng)態(tài)的創(chuàng)建對(duì)象[選做題]

5.1? 創(chuàng)建4個(gè)類:

蘋(píng)果

香蕉

葡萄

園丁

5.2? 在三種水果的構(gòu)造方法中打印一句話.

以蘋(píng)果類為例

class apple

{

public apple()

{

System.out.println(“創(chuàng)建了一個(gè)蘋(píng)果類的對(duì)象”);

}

}

類圖如下:

5.3 要求從控制臺(tái)輸入一個(gè)字符串,根據(jù)字符串的值來(lái)判斷創(chuàng)建三種水果中哪個(gè)類的對(duì)象

如圖:

編寫(xiě)三個(gè)系別的學(xué)生類:英語(yǔ)系葫慎,計(jì)算機(jī)系衔彻,文學(xué)系(要求通過(guò)繼承學(xué)生類) [選做題]

6.1各系有以下成績(jī):

英語(yǔ)系:? 演講,期末考試偷办,期中考試艰额;

計(jì)算機(jī)系:操作能力,英語(yǔ)寫(xiě)作椒涯,期中考試柄沮,期末考試;

文學(xué)系:? 演講逐工,作品,期末考試漂辐,期中考試;

6.2各系總分評(píng)測(cè)標(biāo)準(zhǔn):

英語(yǔ)系:? ? 演講 50%

期末考試 25%

期中考試 25%

計(jì)算機(jī)系:? 操作能力? 40%

英語(yǔ)寫(xiě)作? 20%

期末考試? 20%

期中考試? 20%

文學(xué)系:? 演講? 35%

作品? 35%

期末考試? 15%

期中考試? 15%

6.3定義一個(gè)可容納5個(gè)學(xué)生的學(xué)生類數(shù)組泪喊,使用隨機(jī)數(shù)給該數(shù)組裝入各系學(xué)生的對(duì)象,然后按如下格式輸出數(shù)組中的信息:

學(xué)號(hào):XXXXXXXX 姓名:XXX 性別:X 年齡:XX 綜合成績(jī):XX

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末髓涯,一起剝皮案震驚了整個(gè)濱河市袒啼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌纬纪,老刑警劉巖蚓再,帶你破解...
    沈念sama閱讀 211,348評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異包各,居然都是意外死亡摘仅,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門问畅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)娃属,“玉大人,你說(shuō)我怎么就攤上這事护姆》耍” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,936評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵卵皂,是天一觀的道長(zhǎng)秩铆。 經(jīng)常有香客問(wèn)我,道長(zhǎng)灯变,這世上最難降的妖魔是什么殴玛? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,427評(píng)論 1 283
  • 正文 為了忘掉前任捅膘,我火速辦了婚禮,結(jié)果婚禮上族阅,老公的妹妹穿的比我還像新娘篓跛。我一直安慰自己,他們只是感情好坦刀,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,467評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布愧沟。 她就那樣靜靜地躺著,像睡著了一般鲤遥。 火紅的嫁衣襯著肌膚如雪沐寺。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,785評(píng)論 1 290
  • 那天盖奈,我揣著相機(jī)與錄音混坞,去河邊找鬼。 笑死钢坦,一個(gè)胖子當(dāng)著我的面吹牛究孕,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播爹凹,決...
    沈念sama閱讀 38,931評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼厨诸,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了禾酱?” 一聲冷哼從身側(cè)響起微酬,我...
    開(kāi)封第一講書(shū)人閱讀 37,696評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎颤陶,沒(méi)想到半個(gè)月后颗管,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,141評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡滓走,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,483評(píng)論 2 327
  • 正文 我和宋清朗相戀三年垦江,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片搅方。...
    茶點(diǎn)故事閱讀 38,625評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡疫粥,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出腰懂,到底是詐尸還是另有隱情梗逮,我是刑警寧澤,帶...
    沈念sama閱讀 34,291評(píng)論 4 329
  • 正文 年R本政府宣布绣溜,位于F島的核電站慷彤,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜底哗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,892評(píng)論 3 312
  • 文/蒙蒙 一岁诉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧跋选,春花似錦涕癣、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至炼列,卻和暖如春只搁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背俭尖。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工氢惋, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人稽犁。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓焰望,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親已亥。 傳聞我的和親對(duì)象是個(gè)殘疾皇子熊赖,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,492評(píng)論 2 348