Java-SE Day4
面向對象
Java 的核心思想就是OOP(面向對象變成)
屬性+方法 = 類
面向過程思想:步驟清晰簡單,1-->2-->3...... 適合一些較為簡單的問題
面向對象思想:物以類聚,分類的思維,將相同的方法放置一起構建成類,面對復雜問題分類解決;
面向對象偏向宏觀,面向過程偏向具體;開發(fā)過程中兩者是一起使用;
? 以類的方式組織代碼,以對象的組織(封裝)數據;
對象:具體的事物;類:抽象的概念
方法的調用
靜態(tài)方法:static ,靜態(tài)方法可 類名.方法 直接調用
非靜態(tài)方法: 類名 對象名 = new 類名(); 實例化對象,再通過對象調用方法
static 是與類一同加載,當類存在時static 方法就已一同加載
非static 是與對象一同加載,當類被實例化對象才會被加載
? 所以static 和 非static 間無法互相調用
值傳遞:方法中接入的形參,僅在方法執(zhí)行時生效,不會改變方法外的值
引用傳遞: 即傳遞中為對象,若方法中修改對象內的值,則對象中的值會改變
? 一個項目應該只存在一個main 方法
this 表示當前類,即this.name 表示當前類中的name 屬性
面向對象變成本質:以類的方式組織代碼,以對象的組織(封裝)數據
構造器詳解
一個類即使什么都不寫,其也會存在一個方法(構造方法)
構造方法 :必須與類名字相同、必須沒有返回類型(不可為void)
構造器: 相當于一個創(chuàng)建對象時默認會執(zhí)行的方法,與類名相同,new 本質就是在調用構造方法
public class Person{
String name;
// 定義無參構造器
public Person(){
this.name="默認";
}
// 定義有參構造器
// 當存在有參構造器時,無參構造器必須存在
// alt + insert 快捷鍵,快速創(chuàng)建構造器
public Person(String name){
this.name=name
}
}
創(chuàng)建對象內存分析
類是一個模板,new 對象 是在堆中占用了一個地址
棧:存儲變量名,方法等(之間是堆疊關系),當最底層的main 方法消息,則會全部消失
堆: 存儲實際的值(內存地址)

簡單小結
-
類與對象
類是一個模板:抽象。對象是一個具體的實例
-
方法
? 定義、調用
-
對應的引用
? 引用類型 : 基本類型(8)
? 對象是通過引用來操作: 棧 ---> 堆
-
屬性 : 字段Field 成員變量
默認初始化:? 數字: 0 0.0
char : u0000? boolean : false
? 引用 : null
-
對象的創(chuàng)建和使用
必須 使用new 關鍵字創(chuàng)建對象,構造器 Person kuangshen = new Person();
對象的屬性 kuangshen.name
對象的方法 kuangshen.sleep()
-
類
靜態(tài)的屬性 屬性
動態(tài)的行為 方法
-
封裝詳解
高內聚,低耦合(該露的露,該藏的藏)
? 屬性私有,get/set
private: 私有/封裝,大多針對屬性,很少對方法進行封裝
封裝(數據的隱藏):禁止直接對一個對象中數據的實際表示,通過接口來訪問也就是提供的public 類
1. 提高程序的安全性,保護數據
2. 隱藏代碼的實現細節(jié)
3. 統(tǒng)一接口
4. 系統(tǒng)可維護增加了
private String name; // 屬性私有
// 提供一些public 的get、set 方法
// 雖然無法直接獲取私有屬性,但可通過get 方法獲取
public String getName(){
return this.name;
}
// 雖然無法設置私有屬性,但可通過set 方法設置
public String setName(String name){
this.name = name
}

浙公網安備 33010602011771號