java基礎知識整理 ---Day06面向對象

一、編程語言的發展

機器語言

直接由計算機的指令組成,指令、數據、地
址都以“0”和“1”組成:可以被計算機直接識別並執行。

彙編語言

用容易理解和記憶的符號表示指令、數據以
及寄存器等,抽象層次很低,程序員需要考慮大量的機器細節。

高級語言

屏蔽了機器細節,提高了語言的抽象層次接
近於人的自然語言,60 年代出現的結構化編程語言剔除了結
構化數據和語句,數據和過程抽象等概念。

面向對象的語言

與以往的各種語言的根本不同是,它的設計出發點就是爲了更能直接地描述問題域中客觀存在的事物。語言的發展是朝着人類更容易理解的方向前進
OOP(Object Oritented Programming)面向對象編程,屬於編程的一種通用的思想。OOP 使我們的開發變得不再那麼複雜,並大大增加了程序的靈活性和擴展性。

二、 面向對象概述

面向對象的設計思想

面向對象的基本思想是,從現實世界中客觀存在的事物出發來構造軟件系統,並在系統的構造中儘可能運用人類的自然思維方式。
面向對象更加強調運用人類中日常的思維邏輯中經常採用的思想方法與原則,如抽象、分離、繼承、聚合、多態等。

三、 對象和類的概念

對象用計算機語言對問題域中事物的描述,對象通過“屬性(attribute)”和“方法(method)”。
類是用於描述同一類型的對象的一個抽象的概念,類中定義了這一類對象所具有的靜態屬性和動態屬性。
類可以看成一類對象的模板,對象可以看成該類的一個具體實例。

類,說白了就是歸類,就是對同種事物進行抽象,抽出“像”的部分,包含有關事務(對象)動作方式的信息,包括它的名稱、屬性、方法及所在的場景或聯繫。

四、 Java 與面向對象

對象是 Java 程序的核心,在 Java 程序中“萬事萬物皆對象”。
類是用來創建同一類型的“模板”,在一個類中定義了該類對象所具有的成員變量以及方法
JDK 提供了很多類供編程人員使用,編程人員也可以定義自己的類。
成員變量=屬性 方法=功能
(1)Java 類的定義在這裏插入圖片描述
在這裏插入圖片描述

類的定義主要有兩方面組成——成員變量和方法

(一)、聲明成員變量的格式爲:

訪問修飾符 	修飾符 	類型 	屬性名稱 = 初始值 ;
public		static 	int		a		=10;		

1.訪問修飾符:可以使用四種不同的訪問修飾符中的一種,包括public(公共的)、protected(受保護的),無修飾符和 private(私有的)。public 訪問修飾符表示屬性可以從任何其它代碼調用。private 表示屬性只可以由該類中的其它方法來調用。

2.修飾符:是對屬性特性的描述,例如:static、final 等等。

3.類型:屬性的數據類型,可以是任意的類型。

4.屬性名稱:任何合法標識符

5.初始值:賦值給屬性的初始值。如果不設置,那麼會自動進行初始化,基本類型使用缺省值,對象類型自動初始化爲 null。

(二)、聲明方法的格式爲;

訪問修飾符 修飾符 返回值類型 方法名稱 (參數列表)  {方法體}
public	static	void		run		(無)		{}

1.返回值類型:表示方法返回值的類型。如果方法不返回任何值,它必須聲明爲 void(空)。Java 技術對返回值是很嚴格的,例如,如果聲明某方法返回一個int值,那麼方法必須從所有可能的返回路徑中返回一個int值(只能在等待返回該 int 值的上下文中被調用。)

2.方法名稱:可以是任何合法標識符,並帶有用已經使用的名稱爲基礎的某些限制條件。

3.參數列表:允許將參數值傳遞到方法中。列舉的元素由逗號分開,而每一個元素包含一個類型和一個標識符。在下面的方法中只有一個形式參數,用 int 類型和標識符 days 來聲明:
public void test(int days){}

花括號內是方法體,即方法的具體語句序列

成員變量

成員變量可以使用 Java 語言中任何一種數據類型(包括基本類型和引用類型)
定義成員變量時可以對其初始化,如果不對其初始化,Java 使用默認的值對其初始化。
在這裏插入圖片描述
成員變量的作用範圍爲整個類體

Java 面向對象基本概念

Java 語言中除基本類型之外的變量類型都稱爲引用類型
Java 中的對象是通過引用對其操作的。
例如:
Dog dog;
dog = new Dog();
如何在內存中區分類和對象?
類是靜態的概念,代碼區對象是 new 出來的,位於堆內存,類的每個成員變量在不同的對象中都有不同的值(除了靜態變量)而方法只有一份,執行的時候才佔用內存。

對象的創建和使用

必須使用 new 關鍵字創建對象,new 做三件事:
①會在堆中爲相應類型分配空間
②會調用相應的構造方法來初始化對象
③將在堆中開闢的空間的地址返回回來

使用對象(引用).成員變量來引用對象的成員變量。

在這裏插入圖片描述
引用JianLin對象的類型爲int的hhhh成員變量
在這裏插入圖片描述

使用對象(引用).方法(參數列表)來調用對象的方法。

在這裏插入圖片描述
通過j…xiaoMiQian();來調用對象方法
在這裏插入圖片描述
同一類的每個對象有不同的成員變量存儲空間。
同一類的每個對象共享該類的方法。

五、 方法(複習)

上面已經提過方法這裏再鞏固一下
Java 的方法類似於其他語言的函數,是一段用來完成特定功能的代碼片段,聲明格式:
[修飾符 1 修飾符 2….] 返回類型 方法名(形式參數列表)
{
Java 語句;。。。
}
形式參數:在方法被調用時用於接收外接輸入的數據。
實參:調用方法時實際傳給方法的數據
返回值:方法在執行完畢後返還給調用它的環境的數據
返回值類型:事先約定的返回值的數據類型,如無返回值,必須給出返回值類型 void
Java 語言中使用下述形式調用方法:對象名.方法名(實參列表)
實參的數量、數據類型和次序必須和所調用方法聲明的形參列表匹配,return 語句終止方法的運行並指定要返回的數據類型
Java 中進行函數調用中傳遞參數時,遵循值傳遞的原則:
基本類型傳遞的是該數據值本身。引用類型傳遞的是對象的引用,而不是對象本身
TestMethod.java

六、 構造器(構造方法|構造函數)

在創建對象時(new),必會調用一個特殊的方法,這個方法是初始化對象信息的爲 new 服務的。這個方法稱爲“構造器”在這裏插入圖片描述
使用 new + 構造方法創建一個新的對象。
構造函數是定義在 Java 類中的一個用來初始化對象的函數。
構造函數與類同名且沒有返回值。
例如: Person 類的構造函數:
在這裏插入圖片描述
在這裏插入圖片描述
創建對象時,使用構造函數初始化對象的成員變量
在這裏插入圖片描述

構造方法的特點:

1) 名稱必須和類名一致,與類名相同
2) 沒有返回類型|void
3) 構造器可以存在 return,return 有選擇的跳出構造器
4) 不能隨便調用,和 new 在一起使用,其他時候不能調用
5) 修飾符不能爲 final abstract static

作用:

初始化對象信息,不是用於創建對象的

空構造:

沒有參數的構造器、無參構造
1) 一個類中,如果沒有顯示|手動 加入 任意構造器javac 編譯後 自動加入空構造
2) 一旦加入構造器, javac 不會加入空構造器

方法的重載

方法的重載是指一個類中可以定義有相同的方法名,但參數不同的多個方法。調用時,會根據不同的參數列表選擇對應的方法。
在這裏插入圖片描述
構造方法的重載與普通方法一樣,構造方法也可以重載
例子如下:在這裏插入圖片描述

七、 引用與內存分析

內存分析

在這裏插入圖片描述

引用的特點:

1) 同一時刻一個一引用只能指向一個對象
2) 一個對象可以被多個引用所指向,其中一個對其進行更改,該對象的其他引用也可見該變化
3) Java 一切爲值傳遞,引用拷貝地址
約定俗成的命名規則
類名的首字母大寫
變量名和方法名的首字母小寫
運用駝峯標識

總結:對象的創建和使用

必須使用 new 關鍵字創建對象
使用對象引用.成員變量來引用對象的成員變量
使用對象引用.方法(參數列表)來調用對象的方法
同一類的每個對象有不同的成員變量存儲空間
同一類的每個對象共享該類的方法
非靜態方法是針對每個對象進行調用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章