版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
面向對象(OOD)根本概念抽象封裝類對象1.抽象所謂抽象就是舍棄被研究對象中個別的、非本質的、或與研究主題無關的次要特征,而抽取與研究有關的特征,形成對所研究對象正確的、簡明扼要的認識。2.封裝封裝也稱為信息隱藏,是指利用抽象數據類型將數據和基于數據的操作封裝在一起,使其構成一個不可分割的獨立實體,數據被保護在抽象數據的內部,盡可能隱藏內部細節(jié),只保存一些外部接口使之與外部發(fā)生聯(lián)系。3.對象客觀世界是由一些具體的事物構成的,每個事物一般都有自己的一組靜態(tài)特征和動態(tài)特征。把客觀世界的這一事實映射到面向對象程序設計中,就把客觀事物抽象成為了對象(object)。在面向對象程序設計中,對象具有如下特性:對象標識靜態(tài)特征(屬性)動態(tài)特征(方法)4.類對象是對具體某個事物的抽象,而類那么是對對象的抽象與歸納,即把具有相同特征的一組對象歸納成一類。分類所依據的原那么就是抽象。5.JAVA中的類類是面向對象程序設計(OOD)的根底,是Java的核心和本質所在。在Java中,所有的語言元素都必須被封裝在類中。Java程序是由一個個類定義組成的,編寫Java程序的過程實際就是從現實世界中抽象出Java可實現的類并用適宜的語句定義它們的過程,這個定義過程包括對類內各種屬性和方法的定義,創(chuàng)立類的對象,也包括類間的各種關系和接口的定義。JAVA語言中的類實際包括兩種:系統(tǒng)定義的類用戶自己定義的類6.系統(tǒng)定義的類JAVA系統(tǒng)定義好的類,根據實現的功能的不同,劃分為不同的集合—包,所有的包合稱為類庫。要在程序中使用某個系統(tǒng)類,必須使用import語句引入該類所在的包。如:importjava.awt.*;importjava.applet.*;7.用戶自定義的類系統(tǒng)定義的類主要是實現一些常用的根本功能,但是一些具體的問題還是需要用戶通過編寫自己的類來解決。因此,JAVA程序設計的過程實際就是用戶把客觀世界的問題定義為自己的類來解決的過程。8.定義一個簡單的類一個簡單的類peopleclasspeople{ Stringgender;floatheight; floatweight;}注意:類聲明只是創(chuàng)立一個模板(或類型描述),它并不會創(chuàng)立一個實際的對象,因此,上述代碼不會生成任何people類型的對象實體。9.創(chuàng)立對象用前面定義的people類創(chuàng)立一個對象lilyJAVA中使用new關鍵字創(chuàng)立對象,對象的創(chuàng)立可以使用以下兩種方式:peoplelily;lily=newpeople();peoplelily=newpeople();以上語句執(zhí)行后,lily就是people的一個對象(實例);它將具有“存儲意義上〞的真實性。10.對象的初始化所謂對象的初始化就是為這個對象的數據成員賦初值。lily.gender=“girl〞;lily.height=1.6f;lily.weight=45.0f;11.使用對象當一個對象被創(chuàng)立后,這個對象就擁有了自己的數據成員和方法,我們可以通過引用對象的數據成員來使用對象。以前面創(chuàng)立的對象lily為例:System.out.println(“l(fā)ilyisa:〞+llily.gender);System.out.println(“l(fā)ily身高:〞+llily.heght+“m〞);System.out.println(“l(fā)ily體重:〞+llily.weight+“kg〞);12.使用對象對象的數據成員、對象的方法的引用方式如下:對象名.成員名
如:lily.height;對象名.方法名(參數表)
如:lily.run();13.類的定義類的根本定義方法如下:
[修飾符]class類名[extends父類][implements接口名]{
類成員變量聲明類方法聲明
}14.1、關于類頭—classclass關鍵字,在它的后面跟新定義的類的類名。父類名跟在extends關鍵字后面,用來說明當前類是哪個已經存在類的子類,存在繼承關系—繼承是類與類之間的一種非常重要的關系。15.1、關于類頭—類的修飾符類的修飾符用于定義對該類的訪問級別,通常有public、final、abstract等。16.1、關于類頭—接口名接口名跟在implements關鍵字后面,用來說明當前類中實現了哪個接口定義的功能和方法。接口是Java語言用來實現多重繼承的一種特殊機制,我們將在后面詳細介紹它的使用方法。17.2、關于類體類體的定義要包括類的具體內容,包括類的屬性與方法。[修飾符]class類名[extends父類][implements接口名]{
類成員變量聲明類方法聲明
}18.構造方法創(chuàng)立對象后,通常要為對象賦初值—即對象的初始化,為簡化這一步操作,JAVA提供了一種特殊的方法—構造方法。19.構造方法實例classpeople{floatheight;floatweight;
people(floataheight,floataweight){height=aheight;weight=aweight;}}publicclasssample{publicstaticvoidmain(Stringargs[]){peoplelily=newpeople(1.60f,45.0f);System.out.println("lily'sheightis:"+lily.height+"m");System.out.println("lily'sweightis:"+lily.weight+"kg");}}20.構造方法的特點構造方法的方法名與類名相同。不能對構造方法指定返回類型,系統(tǒng)指定了隱含返回類型。構造方法不能由編程人員顯式地直接調用。在創(chuàng)立一個類的新對象的同時,系統(tǒng)會自動調用該類的構造方法為新對象初始化,構造方法總是和new運算符一起被調用。構造方法和普通方法一樣,可以被重置—即一個類可以定義多個具有不同參數的構造方法。一個類可以不定義構造方法,但實際系統(tǒng)會為這個類定義一個缺省的構造方法,這個構造方法沒有任何參數和語句。構造方法可以繼承。21.構造方法的重置實例classpeople{floatheight;floatweight;Stringgender;
people(floataheight,floataweight){height=aheight;weight=aweight;}people(floataheight,floataweight,Stringagender){height=aheight;weight=aweight;gender=agender;}}publicclassgouzao{publicstaticvoidmain(Stringargs[]){peoplelily=newpeople(1.60f,45.0f);peoplejack=newpeople(1.70f,60.0f,"boy");System.out.println("lily'sheightis:"+lily.height+"m");System.out.println("lily'sweightis:"+lily.weight+"kg");System.out.println("jack'sheightis:"+jack.height+"m");System.out.println("jack'sweightis:"+jack.weight+"kg");System.out.println("jack'sweightisa"+jack.gender);}}22.構造方法的作用對象初始化引入更多的靈活度(變量賦值或更復雜的操作)23.類的修飾符—訪問控制缺省訪問控制publicprotectedfinalabstract24.類的修飾符—缺省訪問控制缺省訪問控制(無修飾符),該類只能被同一個包中的類訪問和引用,而不可以被其他包中的類使用,這種訪問特性又稱為包訪問性。同樣類內的變量和方法如果沒有訪問控制符來限定,也就具有包訪問性。JAVA規(guī)定:同一個程序文件中的所有類屬于一個包。25.類的修飾符—publicpublic(公共的),用public修飾的類稱為公共類,公共類不但可以供它同一個包內的類使用,還可供其他包中的類使用。26.類的修飾符—protectedprotected(受保護的),用protected修飾的類稱為保護類,保護類的成員變量可以被三種類所引用:該類自身、與它在同一個包中的其它類、在其他包中的該類的子類。使用protected修飾符的主要作用是允許其他包中該類的子類來訪問父類的特定屬性。27.類的修飾符—finalfinal(最終的),用final修飾的類稱為最終類,最終類是不能被其他類繼承的。例:finalclasssample{……}classs1extendssample//錯誤,sample為最終類,不能被繼承。{……}×28.類的修飾符—abstractabstract(抽象的),用abstract修飾的類稱為抽象類—聲明方法的存在而不去具體實現其功能的類,它用于要創(chuàng)立一個表達某些根本行為的類,并為該類聲明方法,但不能在該類中實現該類的情況。[實例]不能使用abstract類創(chuàng)立對象。用abstract修飾的方法表示抽象方法,抽象方法沒有方法體。抽象類可以沒有抽象方法,但有抽象方法的類必須定義為抽象類。如果一個子類繼承一個抽象類,子類又沒有實現父類的所有抽象方法,那么子類也要定義為抽象類,否那么編譯會出錯的。final和abstract不能同時修飾一個類。例:finalabstractsample{……}×29.JAVA數據成員JAVA中的數據成員即常說的變量,為了方便區(qū)分,我們將類中描述研究對象靜態(tài)特征的變量稱為成員變量,將成員方法中定義的變量稱為局部變量。數據成員的聲明:(參見第二章)[修飾符]變量類型變量名[=變量初值];30.數據成員的修飾符—訪問控制publicprivateprotectedstaticfinal31.數據成員的修飾符—public公共的變量。32.數據成員的修飾符—private用private修飾的屬性或方法只能被該類自身所訪問和修改,而不能被任何其他類(包括該類的子類),來獲取和引用。例:classs1{privateinta;}classsample{……s1o=news1();s1.a=10;//錯誤。
……}×33.數據成員的修飾符—protectedprotected成員可以被該類的成員以及其子類的成員訪問,它還可以被同一個包內的其他類的成員訪問。34.數據成員的修飾符—static通常情況下,類的成員必須通過它的類的對象訪問,但是可以使用static創(chuàng)立一個成員,它能被它自己使用,而不必引用特定的實例。說明:聲明為static的變量為全局變量。static變量被保存在類的公共存儲單元中,而不是保存在該類某個對象的內存儲區(qū)中,因此,該類的任何一個對象訪問該變量得到的將是相同的值。例:classsp{staticintn=10;}publicclasssample{……
sp.n=sp.n+1;……}35.靜態(tài)初始化器靜態(tài)初始化器是由關鍵字static引導的一對大括號括起的語句組。作用是初始化類的靜態(tài)數據成員。例:staticinta;static{a=10;}36.數據
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度稅務代理與納稅申報服務合同
- 二零二五年度互聯(lián)網企業(yè)股份收購合同范本
- 二零二五年度消防員勞務派遣與消防安全檢查及技術支持合同
- 2025年度企業(yè)財務報表分析與應用合同
- 2025年度酒店特色文化體驗區(qū)轉讓合同
- 2025年度手車二手市場評估與交易合同
- 委托施工協(xié)議 委托方
- 2025辦公用品采購合同書協(xié)議模板
- 2025出租車雇傭合同范文
- 鐵路信號工程師的專業(yè)知識與技術
- 軟件無線電原理與應用第3版 課件 【ch02】軟件無線電理論基礎
- 國網山東電力生產技術改造原則
- 鐵路運輸安全現場管理
- 2023年某保險公司春節(jié)經營教材
- 劉都才-南方水稻田雜草發(fā)生動態(tài)及防控技術
- 全自動化學發(fā)光分析儀操作規(guī)程
- 北侖區(qū)建筑工程質量監(jiān)督站監(jiān)督告知書
- 深藍的故事(全3冊)
- GB/T 42461-2023信息安全技術網絡安全服務成本度量指南
- 職校開學第一課班會PPT
- 央國企信創(chuàng)白皮書 -基于信創(chuàng)體系的數字化轉型
評論
0/150
提交評論