Day5
回顧方法
static 靜態方法
不加static 非靜態方法
static是和類一起加載的
類與對象的創建
類是一種抽象的數據類型,是對某一事物整體的描述
對象是抽象概念的具體事例
一個項目應該只存在一個main方法
使用new創建對象時,除了分配空間,還會初始化。
和C++的類似,不過大多的印象還是當初寫springboot項目的,通過需求得到要幾個類,先寫類,再寫mybatis的魚數據庫連接的層,最后寫服務端和controller端
比較好理解。到后面還會看到
構造器
這個是重點
一個類如果什么也不寫,也會存在一個構造器
看著像是給一個類初始化,它的特點是必須與類的名字相同,必須沒有返回值,連void都沒有。
先運行完構造器的方法后,才生成了這個對象。
作用
-
使用new關鍵字,必須要有構造器本身也是在調用構造器。
-
可以實例化一些對象,即可以初始化。
一旦定義有參構造,無參構造就必須要顯明定義
如果對象有參數,會先用有參構造,沒有才是無參構造
通過這個倒是學了IDEA的一個快捷鍵,alt+insert,這個可以直接生成構造器,看了一下還能直接生成get和set方法,十分方便。
創建對象的內存分析
首先 類是在方法區的 常量池在方法區
main方法是在棧里的最底下,先進后出。 對象在棧里是引用,真正的對象在堆里。
有點混亂,棧 ,堆
堆里面有一個特殊的區域叫方法區。
對象是通過引用來操作的 棧->堆(地址)
概念理解的差不多,但內存這一個知識倒是不大清晰,再回顧
封裝
高內聚,低耦合 細節自己完成不讓外部接觸,只給外部一下能調用的方法 確實是封裝的思想
在學校的java課也有講到,比較清晰。
屬性私有,然后給一下方法調用,get /set alt+insert能快捷生成get和set,在寫項目常常用到。
繼承
就是對一些類的抽象
子類是父類的擴展,就是在有父類的基礎上還有自己獨有的屬性
extends 擴展
public class Application extends Student()
繼承是類與類之間的關系,除此之外,類與類之間的關系還有組合,依賴,聚合。
java類只有單繼承沒有多繼承。 一個兒子只能有一個爸爸, 爸爸可以有多個兒子
但子類無法繼承父類的私有的東西,如果想用,就要寫方法調用。
四個修飾符 private public protected default (私有,公開,受保護,默認)
一般規定父類屬性是私有,方法是公有
object類
在java中,所有的類都默認直接或者間接繼承object類,所以即使沒有在類里寫屬性和方法,他也有object類的方法可以調用。
native 關鍵詞 指本地的
思考
今天主要學的是面向對象編程,三大特性 封裝 繼承 多態,多態要明天學習了,主要是學習的思維,我大概是在學校的java課有了解過,現在再回看,還是比較清晰的,今天唯一的難點就是內存,這個了解確實較少,看來就算不考研,還得重拾一下四大件,不能忘了,現在就好多知識以及快忘的差不多了,要學點理論上的知識。