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

来源: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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...