1. 程式人生 > >面向物件的一些心得

面向物件的一些心得

靜態變數位於方法區的靜態區,隨類的載入而載入。

棧記憶體的變數是區域性變數,必須宣告初始化,隨方法的呼叫而存在,隨方法呼叫完畢而消失。

堆記憶體的變數是成員變數,有預設初始化,隨物件的建立而存在,隨物件的消失而消失。

**不能跨方法訪問變數

***匿名物件的應用場景:呼叫方法,只調一次,可做實參傳遞。

****有小括號的是方法,無括號的為變數。

new物件時:成員變數先預設初始化(null)>>成員變數進行顯示初始化>>構造方法進行初始化>>把地址賦給變數

main方法是被JVM呼叫,返回JVM無意義。

測試類:建立其他類的物件,呼叫其它類的方法。

工具包中無構造方法,其成員全為靜態的。

繼承的關係為:"is a"

介面實現的關係為:"like a"

子類中所有的構造方法預設都會訪問父類的空引數的構造方法,即子類中的每一個構造方法預設的第一條語句為”super()“

子類中一定要有一個方法去訪問父類的構造方法,否則父類資料就沒有初始化。

子類訪問父類的初始化順序:靜態程式碼塊>>構造程式碼塊>>構造方法

分層初始化:先初始化父類資料,再初始化子類資料。

即:父類static塊或變數>>子類static塊或變數>>父類顯式初始化>>父類建構函式>>子類顯式初始化>>子類建構函式

建立類的分析:先找具體事物,再發現具體的事物的共性,(即成員變數,構造方法,成員方法)

多型中:(成員變數:編譯看左邊,執行看左邊)

              (構造方法:)

              (成員方法:編譯看左邊,執行看右邊):因為重寫

              (靜態方法:編譯看左邊,執行看左邊)

abstract不能與private,final,static共存

介面中變數是常量,預設修飾符public static final;無構造方法;成員方法預設修飾符public abstract;

封裝:使物件的屬性儘可能私有,物件的方法儘可能的公開(想用private還要用set和get方法供其他方法呼叫,這樣可以保證

對屬性的訪問方式統一,並且便於維護訪問許可權以及屬性資料合法性)

繼承:父類的非私有化屬性和方法可以預設繼承到子類(父類的構造方法子類不可繼承,更不存在覆蓋的問題);Java

的資料結構為樹型結構,而非網狀(Java通過介面和內部類實現多繼承)

多型:編譯時型別變化,而執行時型別不變

執行多型三原則:(應用時為覆蓋)

1.物件不變;(改變的是主觀認識)

2.對於物件的呼叫只能限於編譯時型別的方法,如呼叫執行時型別方法會報錯

3.在程式執行時,動態型別判定,執行時呼叫執行時型別,即它呼叫覆蓋後的方法

執行時的動態型別判定針對的是方法,執行程式訪問的屬性仍為編譯時屬性

介面:在一個檔案中不可能同時定義一個public介面和public類;介面中所有方法為公開、抽象方法;

所有屬性都是公開、靜態、常量;介面中不可寫public,但在子類中實現介面的過程中public不可省。

類必須實現介面中的方法,否則其為抽象類

作用:1.通過介面實現不同層次、不同體系物件的共同屬性

             2.介面也被用來保持架構的穩定性

Object:是java體系中所有類的父類(直接父類或間接父類)

三方法:(1).finalize方法:當一個物件被垃圾回收的時候呼叫。

                 (2)toString():是利用字串來表示物件。

                  (3).equal:

內部類:(所有使用內部類的地方都可以不用內部類,使用內部類可以使程式更加的簡潔,便於命名規範和劃分層次結構)

內部類可以為靜態,可用protected和private修飾(而外部類不可以:外部類只能使用public和default)

相關推薦

面向物件學習心得(一)

學習零件價格求和小程式心得:1.養成好習慣,編寫java程式之前建一個包package com.zjs;2.有關ArrayList動態陣列的知識:List list=new ArrayList();有關函式:list.add();list.remove();......使用I

面向物件一些心得

靜態變數位於方法區的靜態區,隨類的載入而載入。 棧記憶體的變數是區域性變數,必須宣告初始化,隨方法的呼叫而存在,隨方法呼叫完畢而消失。 堆記憶體的變數是成員變數,有預設初始化,隨物件的建立而存在,隨物件的消失而消失。 **不能跨方法訪問變數 ***匿名物件的應用場景:呼叫方

PHP面向物件一些坑爹技巧

最近在肝PHP和Mysql 以我學了四天PHP的感覺來看 PHP的類如果不是考慮前後端徹底分離的話,用class來封裝整個網頁的Page用來重複利用還是不錯的 然後在學習面向物件的時候有些坑爹(高深)的操作讓我有些苦惱 1.迭代屬性 <?php class myClass

18/11/29 面向物件一些概念

軟體中,介面暴露給使用者(public),而實現對使用者隱藏(private); 類的資料成員(屬性)和成員函式(對資料成員的操作,即方法)封裝在類中; 抽象資料型別:一個數據型別僅將高層的操作暴露給資料介面,同時將底層的實現隱藏起來。; c++程式呼叫基於類的物件的高層介面;

C++基礎教程面向物件學習筆記及心得感悟[圖]

C++基礎教程面向物件學習筆記及心得感悟[圖] 使用友元函式過載算術運算子: C ++中一些最常用的運算子是算術運算子 - 即加號運算子(+),減運算子( - ),乘法運算子(*)和除法運算子(/)。請注意,所有算術運算子都是二元運算子 - 這意味著它們需要兩個運算元 - 運算子的每一側都有一個運算

typeScript中的面向物件程式設計學習心得

SOLID原則(設計模式的6大原則) 單一職責原則(SRP):表明軟體元件(函式、類、模組)必須專注與單一的任務(只有單一的職責) 開/閉原則(OCP):對擴充套件開放, 對修改關閉 里氏替換原則(LSP):物件應該可以是在不改變程式正確性的前提下被它的子類所替換.

Python中的面向物件程式設計的一些基本概念總結

一、一些專有詞彙的定義 面對物件程式設計(OOP:object oriented programming): 是一種程式設計範型,同時也是一種程式開發的方法,實現OOP的程式希望能夠在程式中包含各種獨立而又相互呼叫的物件,沒一個物件又都應該能夠接受資料、資料處理並將

純程式碼實用教材,python的面向物件思維與類的一些方法!

面向物件(Object Oriented,OO)是軟體開發方法。面向物件的概念和應用已超越了程式設計和軟體開發,擴充套件到如資料庫系統、互動式介面、應用結構、應用平臺、分散式系統、網路管理結構、CAD技術、人工智慧等領域。面向物件是一種對現實世界理解和抽象的方法,是計算機程式設計技術發展到一定階

關於面向物件的三大特徵的一些理解

針對一些小白,剛入門java的朋友,很多都卡在了面向物件這關 面向物件的三大特徵即封裝、繼承和多型。 其中三者可以說是環環相扣。當你每一項都能串起來了,也就知道 什麼才是面向物件。 1.首先說封裝 無非就是把一個類裡的變數用private進行私有化,即封裝。

面向物件一些概念及舉例說明

面向物件方法具有以下4個要點:   (1)認為客觀世界是由各種物件組成的,任何事物都是物件,複雜的物件以某種方式組合而成。即面向物件的方法用物件分解取代了傳統方法的功能分解。   (2)把所有物件都劃

關於使用阿里雲OSS物件儲存上傳大視訊和轉碼的一些心得

這裡寫程式碼片 import java.io.File; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import j

Python 面向物件程式設計的一些特徵 及 單例模式的實現

一.面向物件程式設計幾個特徵(封裝, 繼承,多型) 1.封裝:類裡面封裝函式和變數, 在將類進行例項化成例項物件時進行傳參, 從而生成不同的例項物件,增加程式碼的複用. 2.繼承:子類可以繼承父類的方法和屬性. 3.多型建立在繼承的基礎之上, 先有繼承 才能有多型, 指子類繼承父類後分別重寫覆蓋了父類

面向物件基礎學習心得

一、類與物件 類是用來對一組具有相同特性事物的描述,而物件就是類的例項,類用來描述物件,就像一座大樓與樓的設計圖的關係,蓋成一座大樓需要一張設計圖來確定這座樓有多高,有多大,一層有幾個房間等。萬物皆物件。 例如: //一個描述人的類 publi

乾貨大派送——Python的面向物件思維與類的一些方法!

有基礎或者是學過其他程式設計的小夥伴,想必對面向物件(Object Oriented,OO)一定不陌生。面向物件(Object Oriented,OO)是軟體開發的方法。它是一種對現實世界理解和抽象的方法。面向物件的概念和應用包含了程式設計、軟體開發、資料庫系統、互動式介面、應用結構、應用平臺、分散式系統、網

Java面向物件主要知識點總結以及簡單專案心得

1.      面向物件 java是一種面向物件的語言。也就是說,這種程式設計,把現實中的所有的問題都當做一個個物件來解決,每個物件都有其獨立的屬性和方法,每個物件之間具有一定的聯絡,在面向物件設計程

c++面向物件和c面向過程的一些概念

1.面向物件和麵向過程的概念 面向過程是分析解決問題的步驟,然後用函式把這些步驟一步一步的實現,然後在使用的時候一一呼叫則可。 面向物件是把構成問題的事務分解成各個物件,而建立物件的目的也不是為了完成一個個步驟,而是為了描述某個事物在解決整個問題的過程中所發生的行為。 2.

我對Python中面向物件一些總結

      回過頭來再看看關於面向物件的基礎知識,然後做個總結。也算是重新梳理一遍吧。首先,總的來說面向物件包含封裝、繼承、多型三個大特性。這部分內容主要總結的是封裝。        我所理解的封裝其實就是打包起來,或者說是隱藏起來的意思,通過封裝將類和物件有機地統一起來,

[Javascript 高階程式設計]學習心得記錄9 js面向物件

    感覺最難的部分就是面向物件了,大學期間學習的是面向過程的c/c++,工作之後也沒有深入瞭解過面向物件,通過這次的學習和回顧,也算是對面向物件有了新的認識。不過,就我在書上學到了結合個人理解隨便說說,很可能有理解錯誤或者不準確的地方。js的物件和其他語言的物件並不完全

Java學習心得面向物件(二)

 引用型別和基本型別有著巨大的區別,當宣告一個int  i=0時,系統會馬上給這個i分配一個記憶體空間(在棧記憶體裡面分配一小塊區域用來裝數字0),裡面裝著一個值為0,以後使用i這個名字馬上就可以訪問這個記憶體空間裡面的值,這就是基本資料型別,所以基礎型別就只佔一塊記憶體。基礎型別之外的型別全都叫引用型別,

Java學習心得面向物件(一)

一、面向過程的思想和麵向物件的思想  面向物件和麵向過程的思想有著本質上的區別, 作為面向物件的思維來說,當你拿到一個問題時,你分析這個問題不再是第一步先做什麼,第二步再做什麼,這是面向過程的思維,你應該分析這個問題裡面有哪些類和物件,這是第一點,然後再分析這些類和物件應