Java基礎 物件導向

2021-06-26 11:48:18 字數 4984 閱讀 3152

1. 理解物件導向

強調的是功能行為

將功能封裝進物件,強調具備了功能的物件。

1.1 物件導向的好處

先要去找具有所需的功能的物件來用。
如果該物件不存在,那麼建立乙個具有所需功能的物件。
這樣簡化開發並提高復用。

1.2 物件導向開發,設計,特徵

•開發的過程:其實就是不斷的建立物件,使用物件, 指揮物件做事情。

•設計的過程:其實就是在管理和維護物件之間的關 系。

1.3 物件導向的特徵:

封裝(encapsulation)

繼承(inheritance)

多型(polymorphism)

1.4 類與物件的關係:

2. 類的定義

屬性:對應類中的成員變數。
行為:對應類中的成員函式。

2.1成員變數和區域性變數的區別

成員變數定義在類中,在整個類中都可以被訪問。

成員變數隨著物件的建立而建立,存在於物件所在的堆記憶體中。

成員變數有預設初始化值。

區域性變數只定義在區域性範圍內,如:函式內,語句內等。

區域性變數存在於棧記憶體中。

作用的範圍結束,變數空間會自動釋放。

區域性變數沒有預設初始化值。

public static void main(string args) 

}class person

}

2.2 匿名物件

匿名物件是物件的簡化形式

匿名物件兩種使用情況

當對物件方法僅進行一次呼叫的時

匿名物件可以作為實際引數進行傳遞

3. 封裝(encapsulation)

封裝:是指隱藏物件的屬性和實現細節,僅對外提供 公共訪問方式。

好處:將變化隔離。

便於使用。

提高重用性。

提高安全性。

封裝原則:

將不需要對外提供的內容都隱藏起來。

把屬性都隱藏,提供公共方法對其訪問。

3.1 private(私有)關鍵字
private關鍵字:

是乙個許可權修飾符。

用於修飾成員(成員變數和成員函式)

被私有化的成員只在本類中有效。

常用之一:

4.將成員變數私有化,對外提供對應的set ,get 方法對其進行訪問。提高對資料訪問的安全性。

class person 

public void setname(string name)

public int getage()

public void setage(int age)

}

3.2 建構函式

特點:

1.函式名與類名相同

2.不用定義返回值型別

3.不可以寫return語句

作用:

給物件進行初始化。

注意:

1.預設建構函式的特點。

2.多個建構函式是以過載的形式存在的。

class person 

//帶參建構函式

public person(string name)

//帶參建構函式

public person(string name, int age)

}

3.3 this關鍵字

換言之:this代本類物件的引用。

當在函式內需要用到呼叫該函式的物件時,就用this。

class person 

//帶參建構函式

public person(string name, int age)

}

3.4 static(靜態)關鍵字

•用於修飾成員(成員變數和成員函式)

被修飾後的成員具備以下特點:

隨著類的載入而載入

優先於物件存在

被所有物件所共享

可以直接被類名呼叫

3.5 成員變數和靜態變數的區別

1.變數的生命週期不同

成員變數隨著物件的建立而存在,隨著物件的**而釋放
靜態變數隨著類的載入而存在,隨著類的消失而消失
2.呼叫的方法不同

成員變數只能被物件呼叫。
靜態變數既可以被物件呼叫,還可以被類名呼叫
3.別名不同

成員變數也成為例項變數

靜態變數也稱為類變數

4.資料的儲存位置不同

成員變數資料儲存在堆記憶體的物件中,所以也叫物件的特有資料

靜態變數資料儲存在方法區共享資料區的靜態區中,所以也叫物件的共享資料。

靜態方法只能訪問靜態成員(非靜態既可訪問靜態,亦可訪問非靜態)

靜態方法中不可以寫this,super關鍵字

主函式是靜態的

public class test8 

}//person 類

class person

//帶參建構函式

public person(string name, int age)

// 成員變數的set,get方法

public string getname()

public void setname(string name)

public int getage()

public void setage(int age)

// sayhello()函式

public void sayhello()

//靜態函式 ,被引用的成員變數name必須是靜態的才能被靜態函式呼叫

public static void showstaticname()

}

3.6 主函式main

特別之處:

格式是固定。public static void main(string args)

被jvm所識別和呼叫。

public:許可權必須是最大的。

static:不需要物件的,直接用主函式所屬類名呼叫即可。

void:主函式沒有的返回值。

string args:這是主函式的引數列表,是乙個陣列型別的引數,而且元素都是字串型別。

main:函式名,不是關鍵字,只是乙個jvm識別的固定名字

3.7 靜態**塊

作用:用於給類初始化

public class staticcodedemo 

public static void main(string args)

}class staticcode

staticcode(){}

void show()

}class person

person(){}

person(string name,int age)

void show()

}

java基礎 物件導向

面向過程的思想 一步一步去實現,而具體的每一步都需要我們去實現和操作,這些步驟相互協作完成我們的需求 面向思想 將步驟和功能進行封裝,用的時候,找對應的類 物件導向不關注過程 物件導向就相當於指揮者 面向過程相當於員工 物件導向是基於面向過程 特點 是一種更符合人們思考習慣的思想。可以將複雜的事情簡...

Java基礎 物件導向

可以拿生活中的例項來理解面向過程與物件導向,例如五子棋。封裝 encapsulation 繼承 inheritance 多型 polymorphism 1.定義 隱藏物件的屬性和實現細節,僅對外公開介面,控制在程式中屬性的讀取和修改的訪問級別。2.封裝途徑4.好處3.原則4.成員變數和區域性變數 成...

Java物件導向基礎

把具有共同特點和行為的東西封裝成乙個個物件。例項化類 建立物件 使用物件的屬性或方法。物件儲存在jvm的堆記憶體中,物件的識別符號 引用值儲存在棧記憶體 儲存了物件在堆記憶體中的位址。class的許可權修飾符只可以用public和default public class classname 成員方法...