第4章類與對(duì)象_第1頁(yè)
第4章類與對(duì)象_第2頁(yè)
第4章類與對(duì)象_第3頁(yè)
第4章類與對(duì)象_第4頁(yè)
第4章類與對(duì)象_第5頁(yè)
已閱讀5頁(yè),還剩83頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第1頁(yè)頁(yè)2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第2頁(yè)頁(yè)v全面掌握面向?qū)ο蟮娜嬲莆彰嫦驅(qū)ο蟮幕咎卣?;基本特征?本章學(xué)習(xí)要點(diǎn)本章學(xué)習(xí)要點(diǎn)掌握掌握如何定義如何定義一個(gè)類以及一個(gè)類以及如何生成如何生成對(duì)象;對(duì)象;深入掌握深入掌握方法的定義方法的定義及技巧;及技巧;深入掌握類的深入掌握類的訪問(wèn)權(quán)限訪問(wèn)權(quán)限與與封裝機(jī)制;封裝機(jī)制;深入掌握深入掌握包的定義包的定義與與包的使用包的使用方法。方法。2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第3頁(yè)頁(yè)理解面向?qū)ο蟮幕咎卣骼斫饷嫦驅(qū)ο蟮幕咎卣鹘探虒W(xué)學(xué)重重點(diǎn)點(diǎn)理解如何定義一個(gè)類理解如何定義

2、一個(gè)類熟悉對(duì)象的生成方法熟悉對(duì)象的生成方法掌握類的各種訪問(wèn)權(quán)限掌握類的各種訪問(wèn)權(quán)限理解包的定義理解包的定義2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第4頁(yè)頁(yè)熟悉類的定義過(guò)程熟悉類的定義過(guò)程教教學(xué)學(xué)難難點(diǎn)點(diǎn)熟悉對(duì)象的生成過(guò)程熟悉對(duì)象的生成過(guò)程熟悉類的封裝機(jī)制熟悉類的封裝機(jī)制熟悉包的使用方法熟悉包的使用方法2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第5頁(yè)頁(yè)Java是一種純粹的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,一個(gè)是一種純粹的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,一個(gè)Java程序乃至程序乃至Java程序內(nèi)的程序內(nèi)的基本單元都是對(duì)象基本單元都是對(duì)象。因此,。因此,用用Java進(jìn)行程序設(shè)計(jì)必須將自己的思想轉(zhuǎn)入到

3、一個(gè)面向進(jìn)行程序設(shè)計(jì)必須將自己的思想轉(zhuǎn)入到一個(gè)面向?qū)ο蟮氖澜纾詫?duì)象的世界,以對(duì)象世界對(duì)象世界的思維方式來(lái)思考問(wèn)題。的思維方式來(lái)思考問(wèn)題。4.1 Java編程思想編程思想編寫一個(gè)編寫一個(gè)Java程序就是在程序就是在定義類定義類和和創(chuàng)建對(duì)象創(chuàng)建對(duì)象,也就,也就是說(shuō)定義類和建立對(duì)象是是說(shuō)定義類和建立對(duì)象是Java編程的主要任務(wù)。編程的主要任務(wù)。2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第6頁(yè)頁(yè)4.2 類類 的的 建建 立立 Java的類的類用戶自定義用戶自定義類類系統(tǒng)定義的系統(tǒng)定義的類類Java的類庫(kù)就是系統(tǒng)定義的類,它是系統(tǒng)提供的已的類庫(kù)就是系統(tǒng)定義的類,它是系統(tǒng)提供的已實(shí)現(xiàn)的實(shí)現(xiàn)的標(biāo)準(zhǔn)

4、類的集合標(biāo)準(zhǔn)類的集合,提供了,提供了Java程序與運(yùn)行它的系統(tǒng)程序與運(yùn)行它的系統(tǒng)軟件(軟件(Java虛擬機(jī))之間的虛擬機(jī))之間的接口接口。2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第7頁(yè)頁(yè) 學(xué)習(xí)學(xué)習(xí)Java語(yǔ)言在某種程度上就是在語(yǔ)言在某種程度上就是在:v學(xué)習(xí)如何定義所需要的類,即學(xué)習(xí)學(xué)習(xí)如何定義所需要的類,即學(xué)習(xí)Java程序的程序的書(shū)寫規(guī)書(shū)寫規(guī)范范,熟悉和掌握,熟悉和掌握語(yǔ)法規(guī)則語(yǔ)法規(guī)則;v熟悉熟悉Java平臺(tái)定義了哪些平臺(tái)定義了哪些經(jīng)常要用到經(jīng)常要用到、而且、而且滿足我們滿足我們需要需要的類。的類。4.3 Java語(yǔ)言的學(xué)習(xí)語(yǔ)言的學(xué)習(xí)2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第

5、第8頁(yè)頁(yè)4.4 類的概念與定義類的概念與定義 用面向?qū)ο蟮挠^點(diǎn)來(lái)看,世界上的用面向?qū)ο蟮挠^點(diǎn)來(lái)看,世界上的一切事物都是對(duì)象一切事物都是對(duì)象。而物以而物以“類類”聚,所以這些對(duì)象可以劃分成各種聚,所以這些對(duì)象可以劃分成各種“類類”。類類行為行為狀態(tài)狀態(tài)按照面向?qū)ο蟮挠^點(diǎn)按照面向?qū)ο蟮挠^點(diǎn)類的定義類的定義HASISDOES類聲明類聲明成員變量成員變量成員方法成員方法2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第9頁(yè)頁(yè)4.4.1 IS說(shuō)明該類說(shuō)明該類“是是”什么樣的一個(gè)類,即說(shuō)明什么樣的一個(gè)類,即說(shuō)明類的名類的名字及其性質(zhì)字及其性質(zhì),如一個(gè)類的父類、修飾符等,這一部分,如一個(gè)類的父類、修飾符等

6、,這一部分稱為稱為類聲明類聲明。2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第10頁(yè)頁(yè)4.4.2 HAS說(shuō)明這個(gè)類說(shuō)明這個(gè)類“有有”些什么些什么特征及屬性特征及屬性,這些特,這些特征和屬性用域變量來(lái)表示,這一部分統(tǒng)稱為征和屬性用域變量來(lái)表示,這一部分統(tǒng)稱為成員成員變量變量。2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第11頁(yè)頁(yè)4.4.3 DOES 說(shuō)明這個(gè)類可以說(shuō)明這個(gè)類可以“做做”什么,即這個(gè)類有哪些什么,即這個(gè)類有哪些行為行為,這些行為用,這些行為用實(shí)例方法實(shí)例方法和和類方法類方法描述,這些方描述,這些方法統(tǒng)稱為法統(tǒng)稱為成員方法成員方法。2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)

7、珞珈學(xué)院第第12頁(yè)頁(yè)4.4.4 類各部分的關(guān)系類各部分的關(guān)系ISHAS類的狀態(tài)類的狀態(tài)DOES類的行為類的行為由由成員方法(成員方法(Member Method)來(lái)實(shí)現(xiàn)來(lái)實(shí)現(xiàn)2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第13頁(yè)頁(yè)4.4.5 類的基本形式類的基本形式在在Java中,中,class是聲明一個(gè)類的關(guān)鍵字,類名是要是聲明一個(gè)類的關(guān)鍵字,類名是要聲明的類的名字,它必須是一個(gè)聲明的類的名字,它必須是一個(gè)合法的合法的Java標(biāo)識(shí)符標(biāo)識(shí)符,習(xí),習(xí)慣上用慣上用大寫字母開(kāi)頭大寫字母開(kāi)頭。class 類名類名 / IS 成員變量成員變量;/ HAS 成員方法成員方法;/ DOES2022-3-

8、5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第14頁(yè)頁(yè)類聲明類聲明類體類體變量定義變量定義構(gòu)造器構(gòu)造器方法的方法的定義定義垃圾回收垃圾回收2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第15頁(yè)頁(yè)4.4.6 類聲明類聲明 類聲明定義了類聲明定義了類的名字類的名字以及其他的以及其他的屬性屬性,說(shuō)明該類,說(shuō)明該類是(是(IS)什么樣的一個(gè)類。)什么樣的一個(gè)類。類的修飾符類的修飾符類聲明類聲明類的父類類的父類類 所 實(shí) 現(xiàn)類 所 實(shí) 現(xiàn)的接口的接口2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第16頁(yè)頁(yè)4.4.7 類的聲明方法類的聲明方法類修飾符類修飾符class類名稱類名稱extends父類名稱父類

9、名稱implements接口名稱列表接口名稱列表 變量變量定義及初始化;定義及初始化; 方法方法定義及方法體;定義及方法體; 類體,定義了該類中所有的變量類體,定義了該類中所有的變量(成員變量)和該類所支持的方(成員變量)和該類所支持的方法(成員方法)。法(成員方法)。2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第17頁(yè)頁(yè)4.4.7.1 類修飾符類修飾符類修飾符類修飾符publicabstractfinal2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第18頁(yè)頁(yè) 4.4.7.2 public 修飾符修飾符默認(rèn)時(shí),該類只能被默認(rèn)時(shí),該類只能被同一個(gè)程序包同一個(gè)程序包中其他的類中其他的類

10、使用。使用。 public:該關(guān)鍵字聲明的類可以在其他的該關(guān)鍵字聲明的類可以在其他的任何任何類類中使用。中使用。2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第19頁(yè)頁(yè) abstract:抽象類,沒(méi)有具體對(duì)象的概念類,沒(méi)有具抽象類,沒(méi)有具體對(duì)象的概念類,沒(méi)有具體實(shí)現(xiàn)功能,只用于體實(shí)現(xiàn)功能,只用于擴(kuò)展子類擴(kuò)展子類。4.4.7.3 abstract 修飾符修飾符鳥(niǎo)鳥(niǎo)鴿子鴿子燕子燕子抽象類抽象類具體類具體類2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第20頁(yè)頁(yè) final:最終類,表示該類已經(jīng)非常具體,最終類,表示該類已經(jīng)非常具體,沒(méi)有沒(méi)有子類子類可擴(kuò)展。可擴(kuò)展。4.4.7.4 final

11、 修飾符修飾符2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第21頁(yè)頁(yè) 在在Java中,除中,除Object之外,每個(gè)類都有一個(gè)父類。之外,每個(gè)類都有一個(gè)父類。4.4.7.5 說(shuō)明一個(gè)類的父類說(shuō)明一個(gè)類的父類 Object是是Java語(yǔ)言中語(yǔ)言中惟一沒(méi)有父類惟一沒(méi)有父類的類,如果某個(gè)類沒(méi)有聲明的類,如果某個(gè)類沒(méi)有聲明父類,父類,Java就認(rèn)為它是就認(rèn)為它是Object的直接子類。因此,所有其他類的直接子類。因此,所有其他類都是都是Object的的直接子類或間接子類直接子類或間接子類。 說(shuō)明一個(gè)類的父類的形式為:說(shuō)明一個(gè)類的父類的形式為:class 類名類名 extends 父類名父類名 /

12、 類體類體 其中其中extends子句認(rèn)為是子句認(rèn)為是直接繼承直接繼承其后的父類,因此在類的分級(jí)其后的父類,因此在類的分級(jí)結(jié)構(gòu)中插入這個(gè)類。結(jié)構(gòu)中插入這個(gè)類。 2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第22頁(yè)頁(yè) 接口定義了接口定義了行為的協(xié)議行為的協(xié)議,這些行為可以在處于各個(gè)層次的任,這些行為可以在處于各個(gè)層次的任何類中被實(shí)現(xiàn)。何類中被實(shí)現(xiàn)。4.4.7.6 說(shuō)明一個(gè)類所實(shí)現(xiàn)的接口說(shuō)明一個(gè)類所實(shí)現(xiàn)的接口 一 個(gè) 類 要 實(shí) 現(xiàn) 的一 個(gè) 類 要 實(shí) 現(xiàn) 的 一 個(gè) 或 多 個(gè)一 個(gè) 或 多 個(gè) 接 口 , 可 以 使 用 關(guān) 鍵 字接 口 , 可 以 使 用 關(guān) 鍵 字implemen

13、ts,并且在其后面給出由該類實(shí)現(xiàn)的接口的名字表,并且在其后面給出由該類實(shí)現(xiàn)的接口的名字表,接口的名字表是以接口的名字表是以逗號(hào)分隔逗號(hào)分隔的多個(gè)接口。的多個(gè)接口。 接口的形式為:接口的形式為: implements Interfaces1,Interfaces2, ,Interfacesk; 接口可以聲明接口可以聲明多個(gè)方法和變量多個(gè)方法和變量,但是沒(méi)有這些方法的具體實(shí),但是沒(méi)有這些方法的具體實(shí)現(xiàn)?,F(xiàn)。2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第23頁(yè)頁(yè)變量修飾符變量修飾符 變量數(shù)據(jù)類型變量數(shù)據(jù)類型 變量名變量名1,變量名變量名2=變量初值變量初值;v 變量修飾符:變量修飾符:4.5

14、成員變量的聲明成員變量的聲明v 類成員變量的定義及修飾符:類成員變量的定義及修飾符:public |protected |private |package static final public 、protected 、private :為為可訪問(wèn)性可訪問(wèn)性修飾符修飾符 static:說(shuō)明該成員變量是類變量說(shuō)明該成員變量是類變量 final: 說(shuō)明為常量使用說(shuō)明為常量使用成員變量的類型成員變量的類型可以是可以是Java中中任意的任意的數(shù)據(jù)類型,包括簡(jiǎn)單類型,數(shù)據(jù)類型,包括簡(jiǎn)單類型,類,接口,數(shù)組。類,接口,數(shù)組。在一個(gè)類中的成員變量應(yīng)該是在一個(gè)類中的成員變量應(yīng)該是唯一的唯一的。2022-3-5

15、武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第24頁(yè)頁(yè)public訪問(wèn)控制符訪問(wèn)控制符protectedprivatedefault4.5.1 訪問(wèn)控制符的分類訪問(wèn)控制符的分類2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第25頁(yè)頁(yè)4.5.2 public public: 任何其它類、對(duì)象任何其它類、對(duì)象只要可以看到這個(gè)類的話,那么它就只要可以看到這個(gè)類的話,那么它就可以存取變量的數(shù)據(jù),或使用方法。可以存取變量的數(shù)據(jù),或使用方法。/: co4:Dinner.javaimport co4.dessert.*;public class Dinner public Dinner() System.out.

16、println(Dinner constructor) public static void main(String args) Cookie x = new Cookie(); x.bite(); / Cant access 2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第26頁(yè)頁(yè)/: co4:dessert:Cookie.javapackage co4.dessert;public class Cookie /此處的此處的public不能少不能少 public Cookie() System.out.println(Cookie constructor); /public bite如果

17、聲明為如果聲明為protected則可被子類使用則可被子類使用 protected void bite() System.out.println(bite); 2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第27頁(yè)頁(yè)4.5.3 protectedprotected:同一類,同一包可以使用。不同包的類要使用,必:同一類,同一包可以使用。不同包的類要使用,必須是該類的子類。須是該類的子類。/: co4:ChocolateChip.javaimport co4.dessert.*;public class ChocolateChip extends Cookie public Chocolate

18、Chip() System.out.println( ChocolateChip constructor); public static void main(String args) ChocolateChip x = new ChocolateChip(); x.bite(); / Cant access bite 2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第28頁(yè)頁(yè)4.5.4 privateprivate:不允許任何其他類存取和調(diào)用。:不允許任何其他類存取和調(diào)用。/: co4:IceCream.java/ Demonstrates private keyword.class Sun

19、dae private int x; public int getX()return x; private Sundae() static Sundae makeASundae() return new Sundae(); public static class IceCream public static void main(String args) Sundae x = new Sundae(); /!不合法不合法 Sundae x = Sundae.makeASundae(); /合法合法 System.out.print(x.getX(); /合法合法 2022-3-5武漢大學(xué)珞珈學(xué)院

20、武漢大學(xué)珞珈學(xué)院第第29頁(yè)頁(yè)4.5.5 defaultdefault: (前邊前邊沒(méi)有修飾字沒(méi)有修飾字的情況的情況)在在同一包中同一包中出現(xiàn)的出現(xiàn)的類才可以直接使用它的數(shù)據(jù)和方法。類才可以直接使用它的數(shù)據(jù)和方法。/: co4:Cake.javaclass Cake public static void main(String args) Pie x = new Pie(); /類類PiePie也在包也在包c(diǎn)o4co4中中 x.f(); 2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第30頁(yè)頁(yè)4.5.6 訪問(wèn)控制符的權(quán)限訪問(wèn)控制符的權(quán)限對(duì)對(duì) 公共類公共類 的成員變量和成員方法而言,可通過(guò)的成

21、員變量和成員方法而言,可通過(guò)施以一定的訪問(wèn)權(quán)限來(lái)限定其成員的應(yīng)用范圍,具體施以一定的訪問(wèn)權(quán)限來(lái)限定其成員的應(yīng)用范圍,具體范圍如下:范圍如下:同一個(gè)類同一個(gè)類中中 同一個(gè)包同一個(gè)包中中 不同包中不同包中的子類的子類 不同包中不同包中的非子類的非子類privatedefaultprotectedpublic2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第31頁(yè)頁(yè)4.5.7 訪問(wèn)控制符的使用范圍訪問(wèn)控制符的使用范圍公共類和非公共類的屬性和方法的訪問(wèn)控制表及公共類和非公共類的屬性和方法的訪問(wèn)控制表及圖示見(jiàn)下圖:圖示見(jiàn)下圖:A:所有類所有類B:包中的類包中的類D:本類本類C:所有子類所有子類 類類屬

22、性與方法屬性與方法public 默認(rèn)默認(rèn)publicABprotectedB+CB默認(rèn)默認(rèn)BBprivateDD2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第32頁(yè)頁(yè)4.6 staticv 屬于屬于類的類的變量和方法的關(guān)鍵字變量和方法的關(guān)鍵字static.v static 在變量或方法之前,表明它們是屬于類的,稱在變量或方法之前,表明它們是屬于類的,稱為為類方法(靜態(tài)方法)類方法(靜態(tài)方法)或或類變量(靜態(tài)變量)類變量(靜態(tài)變量)。v 若若無(wú)無(wú)static修飾,則是修飾,則是實(shí)例方法實(shí)例方法和和實(shí)例變量實(shí)例變量。v 類變量在各實(shí)例間類變量在各實(shí)例間共享共享。class ABCD char

23、 data; static int share_data;class Demo ABCD a,b,c,d;2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第33頁(yè)頁(yè)class ABCD char data; static int share_data;class Demo ABCD a,b,c,d;object dchar data4.6.1 static實(shí)例實(shí)例object achar dataobject cchar dataObject bchar datastatic intshare_data2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第34頁(yè)頁(yè)public class St

24、aticVarpublic static int number 5;public class OtherClasspublic void method() int x = StaticVar.number; 類變量的生存期不依賴于對(duì)象的實(shí)例,其它類可類變量的生存期不依賴于對(duì)象的實(shí)例,其它類可以不通過(guò)對(duì)象實(shí)例訪問(wèn)它們。甚至可以在它的類的任以不通過(guò)對(duì)象實(shí)例訪問(wèn)它們。甚至可以在它的類的任何對(duì)象創(chuàng)建之前訪問(wèn)。何對(duì)象創(chuàng)建之前訪問(wèn)。4.6.2 類變量類變量static2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第35頁(yè)頁(yè)class AnIntegerNamedX static int x; /使用了

25、關(guān)鍵字使用了關(guān)鍵字static public int x() return x; public void setX(int newX) x = newX; public class Compare_test public static void main(String args) AnIntegerNamedX myX = new AnIntegerNamedX(); AnIntegerNamedX anotherX = new AnIntegerNamedX(); myX.setX(1); anotherX.setX(2); System.out.println(myX.x = + myX.

26、x(); System.out.println(anotherX.x = + anotherX.x();2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第36頁(yè)頁(yè)v方法是類的方法是類的動(dòng)態(tài)屬性動(dòng)態(tài)屬性。4.7 方法的聲明與實(shí)現(xiàn)方法的聲明與實(shí)現(xiàn)v對(duì)象的行為是由它的對(duì)象的行為是由它的方法方法來(lái)實(shí)現(xiàn)的。來(lái)實(shí)現(xiàn)的。v一個(gè)對(duì)象可通過(guò)一個(gè)對(duì)象可通過(guò)調(diào)用調(diào)用另一個(gè)對(duì)象的方法來(lái)訪問(wèn)該對(duì)另一個(gè)對(duì)象的方法來(lái)訪問(wèn)該對(duì)象。象。v與類一樣,方法也有兩個(gè)主要部分:與類一樣,方法也有兩個(gè)主要部分:方法首部聲明方法首部聲明和和方法體方法體。v方法聲明的方法聲明的基本形式基本形式為:為:返回類型返回類型 方法名方法名( )

27、/方法體方法體2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第37頁(yè)頁(yè)public Object push(Object item) items.addElement(item);return item;訪問(wèn)等級(jí)訪問(wèn)等級(jí)返回類型返回類型方法名方法名參數(shù)表參數(shù)表方法首部聲明方法首部聲明方法體方法體4.7.1 方法的介紹方法的介紹2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第38頁(yè)頁(yè)方法修飾符方法修飾符 返回類型返回類型 方法名稱方法名稱(參數(shù)參數(shù)1,參數(shù)參數(shù)2,) throws exceptionList statements; /方法體:方法的內(nèi)容方法體:方法的內(nèi)容4.7.2 方法聲

28、明方法聲明v方法聲明的完整形式:方法聲明的完整形式:v返回類型返回類型可以是可以是任意的任意的Java數(shù)據(jù)類型,當(dāng)一個(gè)方法數(shù)據(jù)類型,當(dāng)一個(gè)方法不需要返回不需要返回值時(shí),返回類型為值時(shí),返回類型為void。v參數(shù)的類型參數(shù)的類型可以是可以是簡(jiǎn)單簡(jiǎn)單數(shù)據(jù)類型,也可以是數(shù)據(jù)類型,也可以是引用引用數(shù)據(jù)類型(數(shù)數(shù)據(jù)類型(數(shù)組、類或接口),參數(shù)傳遞方式是組、類或接口),參數(shù)傳遞方式是值傳遞值傳遞。v方法體是對(duì)方法的實(shí)現(xiàn)。它包括局部變量的聲明以及所有合法方法體是對(duì)方法的實(shí)現(xiàn)。它包括局部變量的聲明以及所有合法的的Java指令。局部變量的作用域只在該方法指令。局部變量的作用域只在該方法內(nèi)部?jī)?nèi)部。2022-3-5

29、武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第39頁(yè)頁(yè)4.7.3 方法修飾符方法修飾符public |protected |private方法修飾符方法修飾符staticfinal |abstractnativesynchronized2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第40頁(yè)頁(yè)4.7.4 方法的返回類型方法的返回類型v一個(gè)方法一個(gè)方法必須聲明必須聲明其返回類型,如果無(wú)返回值,則必須聲其返回類型,如果無(wú)返回值,則必須聲明其返回類型為明其返回類型為void。v當(dāng)當(dāng)return語(yǔ)句帶有返回值時(shí),它與方法定義的返回類型的語(yǔ)句帶有返回值時(shí),它與方法定義的返回類型的關(guān)系必須符合如下幾種情況之一:關(guān)

30、系必須符合如下幾種情況之一:v當(dāng)方法聲明的返回類型是當(dāng)方法聲明的返回類型是基本數(shù)據(jù)類型基本數(shù)據(jù)類型時(shí),返回值的時(shí),返回值的數(shù)據(jù)類型必須與返回類型數(shù)據(jù)類型必須與返回類型一致一致。v當(dāng)方法聲明的返回類型是當(dāng)方法聲明的返回類型是一個(gè)類一個(gè)類時(shí),返回對(duì)象的數(shù)據(jù)時(shí),返回對(duì)象的數(shù)據(jù)類型必須是與方法聲明的返回類類型必須是與方法聲明的返回類相同的類或其子類相同的類或其子類。v當(dāng)方法聲明的返回類型是當(dāng)方法聲明的返回類型是一個(gè)接口類型一個(gè)接口類型時(shí),返回的對(duì)時(shí),返回的對(duì)象所屬的類必須象所屬的類必須實(shí)現(xiàn)這個(gè)接口實(shí)現(xiàn)這個(gè)接口。2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第41頁(yè)頁(yè)class Length / /

31、 成員變量成員變量 double value = 0; String scale = none; Length(double _value, String _scale) value = _value; scale = _scale; double convertToFeet() if (scale.equals(feet) return value; /true; else return value * 3.2; Length convertToFeet() if (scale.equals(feet) return this; else return new Length(value *

32、3.2, feet); 2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第42頁(yè)頁(yè) Length convertToMeter() if (scale.equals(meter) return this;else return new Length(value / 3.2, meter); void showLength() System.out.println(value + + scale); public static void main(String args) Length l = new Length(1,feet);l = l.convertToMeter();l.showLe

33、ngth(); 2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第43頁(yè)頁(yè)4.7.5 方法名方法名v方法名可以是任何方法名可以是任何合法的合法的Java標(biāo)識(shí)符標(biāo)識(shí)符 。v方法可以重載方法可以重載Java支持方法名重載,即多個(gè)方法可以支持方法名重載,即多個(gè)方法可以共享一個(gè)名字共享一個(gè)名字。v重載的方法不一定返回相同的數(shù)據(jù)類型,但參數(shù)必須有所區(qū)重載的方法不一定返回相同的數(shù)據(jù)類型,但參數(shù)必須有所區(qū)別:別: v 參數(shù)的類型不同。例如,參數(shù)的類型不同。例如,doubleIt(int x)和和doubleIt(String x)方法的兩個(gè)版本的參數(shù)的類型不一樣。方法的兩個(gè)版本的參數(shù)的類型不一樣。 v 參

34、數(shù)的順序不同。這里是指一個(gè)方法有多個(gè)不同類型參數(shù)參數(shù)的順序不同。這里是指一個(gè)方法有多個(gè)不同類型參數(shù)的情況,改變參數(shù)的順序也算是一種區(qū)分方法。的情況,改變參數(shù)的順序也算是一種區(qū)分方法。 v 參數(shù)的個(gè)數(shù)不同。參數(shù)的個(gè)數(shù)不同。2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第44頁(yè)頁(yè)class OverLoad public static String doubleIt(String data) /返回一個(gè)返回一個(gè)String類型類型System.out.println(data + data); return data+data;public static int doubleIt(int da

35、ta) /返回一個(gè)返回一個(gè)int類型類型 System.out.println(2*data); return data+data; public static void main(String args) System.out.println(Hello World!+doubleIt(a)+doubleIt(6);2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第45頁(yè)頁(yè)4.7.6 方法的參數(shù)方法的參數(shù) 一個(gè)參數(shù)是一個(gè)方法的變?cè)?,它與類的成員變量毫無(wú)關(guān)系,一個(gè)參數(shù)是一個(gè)方法的變?cè)?,它與類的成員變量毫無(wú)關(guān)系,因此參數(shù)名可以和成員變量名因此參數(shù)名可以和成員變量名相同相同。如果一個(gè)方法的參數(shù)名

36、與成。如果一個(gè)方法的參數(shù)名與成員變量名同名,則在這個(gè)方法中,參數(shù)員變量名同名,則在這個(gè)方法中,參數(shù)隱藏隱藏了這個(gè)成員變量名,了這個(gè)成員變量名,也就是說(shuō),在方法中出現(xiàn)的這個(gè)名字指的是參數(shù)名,而不是成員也就是說(shuō),在方法中出現(xiàn)的這個(gè)名字指的是參數(shù)名,而不是成員變量名。變量名。 Class Circle int x, y, radius; public Circle(int x, int y, int radius) this.x = x; this.y = y; this.radius = radius; 2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第46頁(yè)頁(yè)4.7.7 方法的參數(shù)傳遞方法的參

37、數(shù)傳遞 Java的參數(shù)傳遞方式是傳遞值,也稱為的參數(shù)傳遞方式是傳遞值,也稱為“值傳遞值傳遞”。ClassNamevoid aMethod(double d, int i, boolean t)public static void main(String args)double x=1.0; int y=2; boolean b=true;aMethod(x, y, b)Variable value x = 1.0 y = 2 b = trueVariable value d = 1.0 i = 2 t = true參數(shù)有兩種類型:基本類型的變量名是變量本身;參數(shù)有兩種類型:基本類型的變量名是變

38、量本身; 引用類型變量的名字是變量的存儲(chǔ)地點(diǎn)。引用類型變量的名字是變量的存儲(chǔ)地點(diǎn)。 2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第47頁(yè)頁(yè)4.7.8 值傳遞值傳遞 對(duì)于這種值傳遞方式要區(qū)分如下兩對(duì)于這種值傳遞方式要區(qū)分如下兩種情況:種情況:Main MemoryBasic Type:Reference TypevarNamevaluevarNamedata不能改變基本類不能改變基本類型變量的值型變量的值可以改變引用類可以改變引用類型變量的值型變量的值(1)當(dāng)參數(shù)變?cè)且粋€(gè))當(dāng)參數(shù)變?cè)且粋€(gè)簡(jiǎn)單類型簡(jiǎn)單類型時(shí),時(shí),值傳遞意味著這個(gè)方法值傳遞意味著這個(gè)方法不能改變不能改變參數(shù)變參數(shù)變?cè)闹怠?/p>

39、元的值。(2)當(dāng)參數(shù)變?cè)且粋€(gè)引用類型時(shí),)當(dāng)參數(shù)變?cè)且粋€(gè)引用類型時(shí),值傳遞意味著這個(gè)方法不能改動(dòng)這個(gè)對(duì)值傳遞意味著這個(gè)方法不能改動(dòng)這個(gè)對(duì)象的引用,但是方法可以象的引用,但是方法可以調(diào)用調(diào)用該對(duì)象的該對(duì)象的方法來(lái)方法來(lái)修改修改該對(duì)象中可訪問(wèn)的變量。該對(duì)象中可訪問(wèn)的變量。2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第48頁(yè)頁(yè)public class StringTester public static void changeStrings(String s, StringBuffer sb) s += by Definition; sb.append( by Definition); s

40、b=null; /并不能改變參數(shù)的引用并不能改變參數(shù)的引用 public static void main(String args) String string = new String(Java); StringBuffer buffer = new StringBuffer(Java); changeStrings(string, buffer); System.out.println(String after method call: + string); System.out.println(StringBuffer after method call: + buffer); 2022

41、-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第49頁(yè)頁(yè)nullnull變量變量變量種類變量種類thisthis變量變量supersuper變量變量局部變量局部變量4.7.9 變量種類變量種類2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第50頁(yè)頁(yè)4.7.10 null變量變量(1)null變量變量class NullTest public static void main(String args) String n =null;System.out.println(Hello World!+n.toString();null是一個(gè)是一個(gè)“空空”變量變量,用于,用于指代某一個(gè)對(duì)象指代某一個(gè)對(duì)象

42、,但這個(gè),但這個(gè)對(duì)象沒(méi)有相應(yīng)的實(shí)例。對(duì)象沒(méi)有相應(yīng)的實(shí)例。例如:例如: Stack stack = null; 2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第51頁(yè)頁(yè)4.7.11 其它變量其它變量(2)this變量變量this表示的是當(dāng)前類的當(dāng)前對(duì)象表示的是當(dāng)前類的當(dāng)前對(duì)象本身本身,更準(zhǔn)確地說(shuō),更準(zhǔn)確地說(shuō),this代表了當(dāng)前對(duì)象的一個(gè)代表了當(dāng)前對(duì)象的一個(gè)引用引用。 (3)super變量變量super表示的是當(dāng)前對(duì)象的表示的是當(dāng)前對(duì)象的直接父類對(duì)象的引用直接父類對(duì)象的引用。所謂所謂直接父類直接父類是相對(duì)于當(dāng)前對(duì)象的其他是相對(duì)于當(dāng)前對(duì)象的其他“祖先祖先”類而言類而言的。的。(4)局部變量)局部

43、變量在方法體中,可以聲明多個(gè)變量,它們?cè)谠摲椒ㄔ诜椒w中,可以聲明多個(gè)變量,它們?cè)谠摲椒▋?nèi)部使內(nèi)部使用用。 2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第52頁(yè)頁(yè)4.7.12 變量的作用域變量的作用域class MyClass . . .member variable declarations. . .public void aMethod(method parameters). . . . .local variable declarations. . .catch(exception handler parameters). . . . .成員變量的作成員變量的作用域用域方法參數(shù)的作

44、方法參數(shù)的作用域用域局部變量的作局部變量的作用域用域異常處理參數(shù)異常處理參數(shù)的作用域的作用域2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第53頁(yè)頁(yè)class X static int x; static int x() return x; X(int x) this.x = x; System.out.println(the member x is +this.x); public static void main(String args) int x= 10 ; /必須初始化必須初始化 System.out.println(the inner x= +x); System.out.pr

45、intln(the member x= +x); try x = x/X.x(); catch (Exception x) System.out.println(the Exception x is +x.toString(); X x = new X(1); System.out.println(the object xx is +X.x);2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第54頁(yè)頁(yè)4.8 類方法類方法類方法類方法獨(dú)立于獨(dú)立于該類的任何對(duì)象,其他類不用實(shí)例化即可調(diào)用它們。該類的任何對(duì)象,其他類不用實(shí)例化即可調(diào)用它們。public class GeneralFunction

46、public static int addUp(int x,int y) return x+y; public class UseGeneral public void method() int a = 9;int b =10;int c = GeneralFunction.addUp(a,b); /通過(guò)類名通過(guò)類名GeneralFunctionGeneralFunction引用引用addUpaddUp方法方法 類方法類方法可以調(diào)用可以調(diào)用其它的類方法。其它的類方法。類方法類方法只能訪問(wèn)只能訪問(wèn)static變量。變量。類方法類方法不能不能以任何形式引用以任何形式引用this 和和super.2

47、022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第55頁(yè)頁(yè)class StaticError String mystring=“hello”; public static void main(String args) System.out.println(mystring); 4.8.1 不正確的引用不正確的引用v同一個(gè)類中的方法可以訪問(wèn)同一個(gè)類中的方法可以訪問(wèn)該類的該類的成員變量;成員變量;不正確的引用不正確的引用編譯時(shí)錯(cuò)誤信息:編譯時(shí)錯(cuò)誤信息: nonstatic variable mystring cannot be nonstatic variable mystring cannot

48、be referenced from a static context referenced from a static context 為什么不正確:只有對(duì)象的方法可以訪問(wèn)對(duì)象的變量。為什么不正確:只有對(duì)象的方法可以訪問(wèn)對(duì)象的變量。v一個(gè)類的方法只能訪問(wèn)一個(gè)類的方法只能訪問(wèn)自己的自己的局部變量。局部變量。2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第56頁(yè)頁(yè)4.8.2 解決的辦法解決的辦法11. 將變量改成類變量將變量改成類變量class StaticError static String mystring=“hello”; public static void main(String

49、 args) System.out.println(mystring); 2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第57頁(yè)頁(yè)4.8.2 解決的辦法解決的辦法22. 先創(chuàng)建一個(gè)類的實(shí)例,再通過(guò)該對(duì)象訪問(wèn)該變量。先創(chuàng)建一個(gè)類的實(shí)例,再通過(guò)該對(duì)象訪問(wèn)該變量。class NoStaticError String mystring=“hello”; public static void main(String args) NoStaticError noError; noError = new NoStaticError(); System.out.println(noError.mystri

50、ng); 2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第58頁(yè)頁(yè)class Car int car_number; void set_number(int car_num) car_number=car_num; void show_number() System.out.println (My car No. is : +car_number); Class CarDemo public static void main(String args) Car Democar=new Car(); DemoCar.set_number(6868); DemoCar.show_number()

51、; My car No. is : 68684.9 創(chuàng)建對(duì)象與定義構(gòu)造方法創(chuàng)建對(duì)象與定義構(gòu)造方法2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第59頁(yè)頁(yè)4.9.1 創(chuàng)建對(duì)象創(chuàng)建對(duì)象v對(duì)象聲明對(duì)象聲明 像聲明基本類型的變量一樣,對(duì)象聲明的一般形式為:像聲明基本類型的變量一樣,對(duì)象聲明的一般形式為: 類名類名 對(duì)象名對(duì)象名;v為對(duì)象分配內(nèi)存及初始化為對(duì)象分配內(nèi)存及初始化 分配內(nèi)存及初始化形式如下:分配內(nèi)存及初始化形式如下: 對(duì)象名對(duì)象名 = new 構(gòu)造方法名構(gòu)造方法名(參數(shù)表參數(shù)表);v創(chuàng)建對(duì)象要求:創(chuàng)建對(duì)象要求:v首先需說(shuō)明新建對(duì)象首先需說(shuō)明新建對(duì)象所屬的類所屬的類,由與類同名的,由與類同

52、名的構(gòu)造方法構(gòu)造方法給給出;出;v然后要說(shuō)明新建然后要說(shuō)明新建對(duì)象的名字對(duì)象的名字,即賦值號(hào)左邊的對(duì)象名;,即賦值號(hào)左邊的對(duì)象名;v賦值號(hào)右邊的賦值號(hào)右邊的new是為新建對(duì)象開(kāi)辟內(nèi)存空間的運(yùn)算符,是為新建對(duì)象開(kāi)辟內(nèi)存空間的運(yùn)算符,用用new運(yùn)算符開(kāi)辟新建對(duì)象的內(nèi)存之后,系統(tǒng)運(yùn)算符開(kāi)辟新建對(duì)象的內(nèi)存之后,系統(tǒng)自動(dòng)調(diào)用自動(dòng)調(diào)用構(gòu)構(gòu)造方法造方法初始化初始化該對(duì)象。若類中沒(méi)有定義構(gòu)造方法,系統(tǒng)會(huì)該對(duì)象。若類中沒(méi)有定義構(gòu)造方法,系統(tǒng)會(huì)調(diào)用調(diào)用默認(rèn)的默認(rèn)的構(gòu)造方法。構(gòu)造方法。 2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第60頁(yè)頁(yè)4.9.2 對(duì)象的使用對(duì)象的使用v對(duì)象的使用對(duì)象的使用對(duì)象的使用是通過(guò)

53、一個(gè)對(duì)象的使用是通過(guò)一個(gè)引用類型引用類型的變量來(lái)實(shí)現(xiàn),包括引用對(duì)象的變量來(lái)實(shí)現(xiàn),包括引用對(duì)象的成員變量和方法,通過(guò)運(yùn)算符的成員變量和方法,通過(guò)運(yùn)算符“ . ”可以實(shí)現(xiàn)對(duì)變量的訪問(wèn)可以實(shí)現(xiàn)對(duì)變量的訪問(wèn)和方法的調(diào)用。使用對(duì)象的基本形式如下:和方法的調(diào)用。使用對(duì)象的基本形式如下: . . 例如:例如:BirthDate date;int day;day = date . day;/引用引用date的成員變量的成員變量daydate . tomorrow();/調(diào)用調(diào)用date的方法的方法tomorrow()2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第61頁(yè)頁(yè)4.9.3 定義和使用構(gòu)造方法定義

54、和使用構(gòu)造方法構(gòu)造方法是類的一種特殊方法,它的特殊性主要體現(xiàn)在如下幾構(gòu)造方法是類的一種特殊方法,它的特殊性主要體現(xiàn)在如下幾個(gè)方面:個(gè)方面:v構(gòu)造方法的方法名與類名構(gòu)造方法的方法名與類名相同相同。v構(gòu)造方法構(gòu)造方法沒(méi)有返回類型沒(méi)有返回類型。v構(gòu)造方法的主要作用是完成對(duì)象的構(gòu)造方法的主要作用是完成對(duì)象的初始化初始化工作。工作。v構(gòu)造方法構(gòu)造方法不能不能像一般方法那樣用像一般方法那樣用“對(duì)象對(duì)象.”顯式地直接調(diào)用,應(yīng)顯式地直接調(diào)用,應(yīng)該用該用new關(guān)鍵字調(diào)用構(gòu)造方法為新對(duì)象初始化。關(guān)鍵字調(diào)用構(gòu)造方法為新對(duì)象初始化。定義了構(gòu)造方法之后,就可以用如下的語(yǔ)句定義了構(gòu)造方法之后,就可以用如下的語(yǔ)句創(chuàng)建并初始

55、化創(chuàng)建并初始化Student類的對(duì)象:類的對(duì)象:Student card1new Student(張三張三, 男男, 2004034567);Student card2new Student(李四李四, 女女, 2003034666);2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第62頁(yè)頁(yè)public class Employee private String name; private int salary; public Employee(String n, int s) name = n;salary = s; public Employee(String n) this(n,0)

56、; public Employee() name = “Unknown”; 4.9.4 this若有一個(gè)類帶有若有一個(gè)類帶有幾個(gè)構(gòu)造函數(shù),幾個(gè)構(gòu)造函數(shù),如果想如果想復(fù)制復(fù)制其中其中一個(gè)構(gòu)造函數(shù)的一個(gè)構(gòu)造函數(shù)的功能到另一個(gè)構(gòu)功能到另一個(gè)構(gòu)造函數(shù)中,可以造函數(shù)中,可以通過(guò)使用通過(guò)使用關(guān)鍵字關(guān)鍵字thisthis作為一個(gè)方作為一個(gè)方法調(diào)用法調(diào)用來(lái)達(dá)到這來(lái)達(dá)到這個(gè)目的。個(gè)目的。2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第63頁(yè)頁(yè)class ThisClass public void anotherMethod() Bank bank=new Bank(); bank.someMethod(th

57、is); class Circle int r; Circle(int r) this.r=r; public area() return r*r*3.14; 4.9.4 thisthis指指對(duì)象自身對(duì)象自身,它的一個(gè)主要作用是要將自己這個(gè)對(duì),它的一個(gè)主要作用是要將自己這個(gè)對(duì)象象當(dāng)作參數(shù)當(dāng)作參數(shù),傳送傳送給別的對(duì)象中的方法。給別的對(duì)象中的方法。2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第64頁(yè)頁(yè)public class apple extends fruits public apple(int price) super(price); super.var = value; super.

58、method(paraList); 4.9.5 supersuper指一個(gè)對(duì)象的指一個(gè)對(duì)象的直接父類直接父類。super可以用來(lái)可以用來(lái)引用父引用父類中類中的的(被覆蓋的被覆蓋的)方法、方法、(被隱藏的被隱藏的)變量及構(gòu)造方法。變量及構(gòu)造方法。該程序表示該程序表示使 用 父 類 的使 用 父 類 的構(gòu) 造 方 法 生構(gòu) 造 方 法 生成 實(shí) 例 ,成 實(shí) 例 ,supersuper必須是必須是子 類 構(gòu) 造 方子 類 構(gòu) 造 方法 的法 的 第 一 條第 一 條語(yǔ)句語(yǔ)句。2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第65頁(yè)頁(yè)4.10 類修飾符類修飾符在定義類時(shí),類名前面可以冠以修飾符。在

59、定義類時(shí),類名前面可以冠以修飾符。修飾符修飾符非訪問(wèn)控非訪問(wèn)控制符制符訪問(wèn)控制訪問(wèn)控制符符修飾符修飾的對(duì)象分為兩個(gè)層次:修飾符修飾的對(duì)象分為兩個(gè)層次:在類這個(gè)層次;在類這個(gè)層次;在類的內(nèi)部修飾成員變量和成員方法這個(gè)層次。在類的內(nèi)部修飾成員變量和成員方法這個(gè)層次。2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第66頁(yè)頁(yè)4.10.2 類的修飾符類的修飾符abstractfinalpublic類的類的修飾修飾符符default類不能直接產(chǎn)生類不能直接產(chǎn)生屬于這個(gè)類的對(duì)屬于這個(gè)類的對(duì)象;象;類不能被其他任何類不能被其他任何類所繼承類所繼承( (安全的安全的考慮考慮) );類不但可以被同一或類不但可

60、以被同一或不同程序包中的其它不同程序包中的其它類使用;類使用;( (缺省缺省) )類只能被本包中類只能被本包中的其它類使用。的其它類使用。2022-3-5武漢大學(xué)珞珈學(xué)院武漢大學(xué)珞珈學(xué)院第第67頁(yè)頁(yè)4.10.3 域修飾符域修飾符域域修修飾飾符符訪訪問(wèn)問(wèn)控控制制符符非非訪訪問(wèn)問(wèn)控控制制符符publicpublicprotectedprotectedprivateprivatestatic(static(靜態(tài)域靜態(tài)域) )final(final(最終域最終域) )屬于類的屬于類的公共域公共域,為,為該類該類所有對(duì)所有對(duì)象所象所共享共享。它可看作是在類范圍。它可看作是在類范圍內(nèi)的一種內(nèi)的一種全局變量

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論