前言
介紹:大家好啊,我是hitzaki辰。
社區:(完全免費、歡迎加入)日常打卡、學習交流、資源共享的知識星球。
自媒體:我會在b站/抖音更新視頻講解 或 一些純技術外的分享,賬號同名:hitzaki辰。
正文開始,抓緊上車!
?
一 - 封裝的目的
1.隱藏類的實現細節
2.讓使用者只能通過事先預定的方法來訪問數據,從而可以在該方法里加入控制邏輯,限制對實例變量的不合理使用
3.可進行數據檢查,從而有利于保證對象信息的完整性
4.便于修改提高代碼的可維護性。
二 - 權限修飾符
public(公有的) > protected(受保護的) > (default)(缺省的) > private(私有的)
(default并不是關鍵字 default,而是根本不寫)
1 - private
? 1.作用域:? 只在該類的內部可見,出了該類不可見,無法使用。(子類也無法訪問)
? 2.修飾:
? private不能修飾外部類,可以修飾內部類。
? 被private修飾的成員變量或成員方法,不能被類的調用者使用。
? 阿里編程規約:類中,無特殊說明,成員變量全用private封裝。
? 修飾成員變量實現私有化,再使用設置器setter、訪問器getter來訪問。
? 優點:提高代碼復用, 提高程序的安全性。
? (方法,類,屬性的私有化... 都是封裝的體現)
2 - default
作用域:只有同一個包內才能訪問。(同一個直接包,子包不算)
3 -?protected
作用域:同一個包內 或 子類
應用:設計模式中的模板方法
? 使用它修飾多個行為方法:protected 返回 行為n(){}
? 最終public action方法按順序調用所有行為方法。
? 子類可以對各個行為方法進行重寫,以此改變action的行為,并且這些單獨的行為方法還不會對外暴露。
4 -?public
作用域:全部
三 - java的"包"
java的包是用來組織文件的一種虛擬文件系統,它是跨平臺的,與操作系統無關。
?
因為不同的人會以不同的目的定義相同的類名或接口名,Java解決此問題的主要方法是包,Java中組織類和接口的方式也是包。
1)把功能相似或相關的類或接口組織在同一個包中,方便類的查找和使用。
2)包如同文件夾一樣,文件放在文件夾 ,而類和接口放在包下,包和文件夾一樣,都是層次結構。
3)包也限定了訪問權限,擁有包訪問權限的類才能訪問某個包中的類。
4)以 . 分隔表層次結構,比如java.lang.String,java為上層包名,lang為下層包名,???? {帶完整包名的類稱為完全限定名。}
??? (Java API 中所有類、接口都位于包java、javax下, java是標準包、 javax是擴展包)
1 - 聲明程序所在包
1)在外部類的首部 (前面不能有除注釋外的其他語句), 必須編寫類所屬哪個包, 格式: package 包名;
2)包名的前綴通常由多個單詞組成, 所有單詞的字母小寫, 單詞與單詞之間使用.隔開 ,
3)一般命名為“域名.項目名.模塊名…”。? (因為Java規范要求包命名的唯一性,因此常使用域名命名,這樣不會沖突)
比如org.xuanchen.wschool.service ,這是這個模塊所有代碼都有的包前綴,它一定是唯一的,其次再根據業務細分出子包,如controller、service。
2 - 通過包使用類
1)通過完全限定名使用
2)通過完全限定名導入后 再使用, import 完全限定名;
3)import java.util.*;???? 將導入這個包下的所有直接類。 (不包含子包下的類)?? (不可以import java.*.*; )
4)靜態導入: 在JDK 1.5之后引入的新特性,可直接將類的公開靜態方法和成員導入到自己這里,此后直接根據方法名使用。
如 import java.util.Arrays.*;??????????? 此后可以直接sort(arr);
3 - jar包
打包的一般都是編譯后的代碼, 將1到多個編譯后的文件打包為1個文件,方便其他程序調用。
Java的打包命令為jar,打包后的文件拓展名為jar,稱為jar包。
?
使用下列方式打包:
1)先找到編譯后的文件 .class 的根目錄
2)在cmd運行命令: jar -cvf <包名>.jar <最上層包名>
?
1)jar包其實就是一個壓縮文件,可以使用解壓縮的工具打開。
2)Java類庫、第三方類庫 都是以jar包的形式提供,使用時將其jar包加入類路徑即可。
?
?
結尾
感謝你看到這里,如果感覺內容不錯的話請點贊支持一下!
如果小伙伴對我的講解有疑問,歡迎評論區討論。
?
?