Java面向對象介紹
1. 面向對象思想的介紹
1.1 前提
在瞭解面向對象之前,我們需要先了解一下面向過程過程編程,在實現一個具體的功能時,我們需要先了解這個功能要做什麼,然後動手編寫代碼一步一步的把功能實現。這就是面向過程的思想。
1.2 概述
在面向過程編程的基礎上,我們進行優化,封裝時根據不同的功能,把具有相似功能的代碼進行封裝,在需要用到時,直接調用這些封裝好的代碼。
面向對象的思想強調的是讓對象做事情。
1.3 面向對象思想的特點
l 是一種更符合人們的思考習慣的思想。
l 可以將複雜的事情簡單化。
l 程序開發人員從執行的角色轉換成了指揮的角色。
l Java編程面向對象編程思想的三大特徵,封裝、繼承和多態。
1.4 面向過程思想和麵向對象思想的舉例
以做一頓飯舉例。
l 面向過程時,需要自己找食譜、買菜、洗菜、炒菜等。
l 面向對象時,找了個女朋友,女朋友就把飯做好了。
2. 類與對象的關係
l 先有類再有對象,進而使用對象調用方法。
l 只有類沒有對象時,沒有意義。
3. 類的介紹
3.1 類的組成
l 類的屬性:也被稱為成員變量,為了保護成員變量數據的安全,成員變量的屬性一般是私有的。
l 類的方法:也被稱為成員方法。一般會包括對成員變量操作的get和set方法,包括無參和全參的構造方法。
3.2 代碼示例
public class Cat {
//成員變量
private String name;
private Integer age;
//成員方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
//構造方法
//全參構造方法
public Cat(String name, Integer age) {
this.name = name;
this.age = age;
}
//無參構造方法
public Cat() {
}
}
4. Java面向對象的三大特徵之封裝
4.1 概述
使用{}將代碼封裝起來,起個名字,以後再使用這個代碼 只調用名字。
4.2 封裝中方法的關鍵字
l Public:公開成員變量或者成員方法。
l Private:將成員變量設置成私有,不讓外部直接訪問,但是可以通過公有的get或者set方法間接訪問。那麼問題來了,在使用get或者set方法訪問成員變量時,如何解決數據的安全性問題呢?可以在get或者set方法中添加對數據安全性的校驗。
4.3 封裝的意義
l 隱藏了類的具體實現。
l 在實現具體的業務需求時,操作更加簡單。
l 使用private修飾成員變量,提高了對象中數據的安全性。
5. This關鍵字
5.1 this關鍵字的概念
this關鍵字代表的是對本類對象的引用,指向的是本類已經創建的對象。
5.2 this關鍵字存在的意義
this關鍵字是為了解決局部變量與成員變量名字衝突的一個標記。
5.3 代碼示例
//全參構造方法
public Cat(String name, Integer age) {
this.name = name;
this.age = age;
}
6. 類中的構造方法
6.1 構造方法存在的意義
在用類創建對象的時候,給成員變量賦值。
6.2 構造方法的分類
l 無參構造方法:
在類中沒有寫全參構造方法的時候,java在生成class文件時,會自動生成一個無參構造方法;
在類中寫了全參的構造方法時,寫程序的人員必須手動生成一個無參的構造方法,在使用無參構造方法創建對象時,對象中的成員變量是沒有數據的,需要調用類的set方法為成員變量賦值。
l 全參構造方法:
使用全參構造方法創建對象的時候,對象中的成員變量是有數據的。
6.3 代碼示例
類的代碼見以上cat類的代碼。
測試類的代碼如下:
public class ClassDemo01 {
public static void main(String[] args) {
//1.使用無參構造方法創建對象
Cat cat1 = new Cat();
cat1.setName("tom");
cat1.setAge(18);
//2.使用全參構造方法創建對象
Cat cat2 = new Cat("danny",19);
}
}
7. 成員變量與局部變量
成員變量與局部變量的區別
閱讀更多 文瀧Vincent 的文章