面向對象的基礎知識——類

来源:http://www.cnblogs.com/jolene-wu/archive/2017/12/18/8059528.html
-Advertisement-
Play Games

摘自《其實你應該這樣學Java》 10.1 面向對象 面向對象的開發方法,是將客觀世界看作由一個個對象組成,每個對象都有自身的特點規律(屬性、行為)、同時可以通過外部介面同外部聯繫。所有相同類型的對象抽象出一個高層的概念——類,由類生成具體的一個個對象。 例子:“人”,就是一個抽象的概念。“人”不是 ...


摘自《其實你應該這樣學Java》

10.1 面向對象

  面向對象的開發方法,是將客觀世界看作由一個個對象組成,每個對象都有自身的特點規律(屬性、行為)、同時可以通過外部介面同外部聯繫。所有相同類型的對象抽象出一個高層的概念——類,由類生成具體的一個個對象。

例子:“人”,就是一個抽象的概念。“人”不是具體指哪個人,而是所有人的抽象,具有四肢、面貌等屬性,以及吃飯、睡覺、思考等動作行為。“人”有自己的身體、思想等內部規律,也有眼、口、手等跟外界打交道的介面由“人”可以具體到“張三”、“李四”等,他們就有同樣的屬性和行為,只是屬性和行為的值不同而已。通過眼、口、手的介面,他們可以互相聯繫,傳遞消息

  面向對象有四大特點:抽象、封裝、繼承、多態。

  抽象是指同類事物共有的屬性和方法。通過抽象,可以把不重要的細節忽略,只關註核心性質

例如:“狗”沒有身高、毛色等具體值,只是一個概念,由此概念可以派生出多種多樣的狗的類型。這就是抽象的作用。

  封裝是一種很好的模塊化方法。封裝就是把事物本身的屬性和方法包含在一起,形成一個獨立的模塊。這樣,所建立的模塊如有問題,就只用修改這一個模塊,而不用修改整個運行環境。

例如:發電機可以獨立存在,有其特有的屬性和方法。我們只跟發電機有很少的交互介面:註入燃料,輸出電能。如果發電機出故障,可以更換髮電機,而不用更改所有使用發電機的設備。

  繼承是由已有的抽象事物創建新的抽象事物的過程。通過繼承,我們不用再描述“獅子狗”的種種特性,而是只要說明它是繼承自“狗”的概念,併在此概念上描述所增加的部分新的特性,就可以把“獅子狗”描述清楚。通過層層抽象,將各種事物都能儘量簡單而精確地描述清楚。

  多態是指同一名稱動作,在不同情況下有不同行為的現象。好處是可以將動作也形成抽象的含義,使用戶只關心用什麼動作,而不用關心是如何實現的。不懂

10.2 類

10.2.1 類就是具有相同屬性和方法的事物的集合的抽象。類不是實體,不能直接運行。但可由類生成實體(對象),這個實體就可以在系統中運行了。

10.2.2 類的定義      類修飾符 class 類名

        {

        //類體

        }

  類體一般由成員變數和成員方法組成。

10.2.3 成員變數是在類中定義的變數。註:成員變數不是在成員方法中定義的變數

 

1 public class Example1001
2 {
3   public int a;    //成員變數
4   public static void main(String[] args)
5   {
6         int b;   //局部變數     
7   }
8 }

 

只要定義了成員變數,它就可以在類內使用,無論在成員方法內部還是外部。而局部變數只能在所在的小模塊內使用。

成員變數定義後就會有初始值:int——0,double——0.0,boolean——false

10.2.4 成員方法

成員修飾符 返回量類型 成員方法名(參數列表)
{
   成員方法體
}

方法體內定義的變數就是局部變數

10.2.5 內部類——Java支持在類中再生成類,這種在類中創建的類稱為內部類。相應地,在外面的類稱為外部類。

內部類的定義形式如同一般的類,使用時需要註明所在的外部類的類名。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Django內置admin 1.配置路由 2.定製admin 在admin.py中只需要講Mode中的某個類註冊,即可在Admin中實現增刪改查的功能,如: 但是,這種方式比較簡單,如果想要進行更多的定製操作,需要利用ModelAdmin進行操作,如: 3.ModelAdmin中提供了大量的可定製功 ...
  • 對Python的基本知識進行了重溫和總結。(省略和C++相近的以及深刻瞭解的內容) 1.一般用反斜杠 / 將Python的一行語句分為多行顯示 2.raw_input 輸入內容 遇見回車終止並跳出 3.數據類型之List -- 列表 個人理解類似C++中的數組 4.數據類型之 Tuple -- 元組 ...
  • 通過把要載入的文件看作一個“功能”而不是一個文件,require對於用Ruby編寫的擴展和用C語言編寫的擴展都用一樣的方式。另外,.rb擴展名的文件與其它擴展名為.so、.dll或.bundle的文件使用方式也是一樣的。需要註意的是,require不能辨識出當前的工作目錄(.)。用戶可以顯式地指定它 ...
  • String類總結 String類概述: java.lang.String 類是字元串操作類 String類的常用構造方法: String類的常用判斷方法: 1.比較兩個字元串的內容是否相等 2.比較兩個字元串是否相等,忽略大小寫 3.判斷字元串是否以字元串str開頭 4.判斷字元串是否以字元串st ...
  • 記得有人說過一句話,大體意思是:現在電腦技術發展那麼迅速,日新月異,那些學電腦技術的人,要不斷學習才能不被淘汰,那些人的腦子是不是壞掉了,幹嘛要讓自己活的這麼累?表示不解。不想時隔幾年,我也進入了這個飛速發展的IT行業。大概是隨著時間的推移,個人價值觀也隨之改變了吧! 初入這個行業的程式員是迷茫 ...
  • BigDecimal 問題重現 今天在幹活的途中,發現一個很坑爹的問題,讓我來複現下問題: 從上游介面獲得的餘額,對於為0的,做了判斷 然後發現線上有對比問題; 試驗了下 然後很神奇的發現,bigDecimal很不乖。。。 原因 BigDecimal最早出現也是因為計算精度的問題,用float或者d ...
  • 集合 集合介紹: 由於數組中存放對象,對對象操作起來不方便。java中有一類容器,專門用來存儲對象。 集合與數組的區別: 1.數組的長度固定的,而集合長度時可變的 2.數組只能儲存同一類型的元素,而且能存基本數據類型和引用數據類型。集合可以存儲不同類型的元素,只能存儲引用數據類型 Collectio ...
  • Part I. Overview of Spring Framework The Spring Framework is a lightweight solution and a potential one-stop-shop for building yourenterprise-ready ap ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...