java學(xué)習(xí)第七天內(nèi)容總結(jié):
學(xué)習(xí)內(nèi)容:
關(guān)注公眾號:java進(jìn)階架構(gòu)師,獲取的學(xué)習(xí)視頻
學(xué)習(xí)記錄:
1、變量:成員變量/局部變量。
? ??????????成員變量:? 全局變量/字段(Field),不要稱之為屬性(錯(cuò)誤).? 直接定義在類中,方法外面。
????????????局部變量:? 變量除了成員變量,其他都是局部變量恋捆。
? ? ? ?注:
? ? ? ? 1) 開發(fā)中,應(yīng)該盡量縮小變量的作用范圍重绷。(在內(nèi)存中停留時(shí)間越短沸停,性能越高。)
? ? ? ? 2)成員變量存在線程不安全問題昭卓。
? ? ? ? 3)成員變量(以m作為前綴)愤钾,靜態(tài)變量(以s作為前綴)。成員變量包括靜態(tài)變量與非靜態(tài)變量葬凳。
2绰垂、package包
????①編譯命令:javac -d . Hello.java
? ? ? ? 如果此時(shí)Hello.java文件沒有使用package,表示在當(dāng)前目錄中生成字節(jié)碼文件火焰。
? ??????如果此時(shí)Hello.java文件使用package劲装,表示在當(dāng)前目錄中生成包名,再在包中生成字節(jié)碼文件昌简。
????②運(yùn)行命令:java 包名.類名
????③包名定義規(guī)范:不能以java打頭(java安全機(jī)制檢查)占业。
? ? ? ? 1)全部小寫。
? ? ? ? 2)企業(yè)開發(fā)中纯赎,包名才有公司谦疾、域名倒寫。
? ? ? ? ? ? 在Android中犬金,package使用了_符號念恍,則不能部署到模擬器上六剥,可用字母來代替_符號。
? ? ? ? ? ? 格式:package 域名倒寫.模塊名.組件名
? ? ? ? ? ? ? ? ? ? ? ? package com._520it.pss.Util;
? ? ? ? ? ? ? ? ?改:package com.m520it.pss.Util;(進(jìn)銷存模塊中峰伙,專門儲存工具類的包)
java(jdk)中的包名(源碼src.zip疗疟,結(jié)合API查看):
? ? ? ? src.zip:[java,javax(增強(qiáng)擴(kuò)展)]
3、import導(dǎo)入
(1)java.lang包的類不需要導(dǎo)入
? ? ? ? 注:編譯器默認(rèn)找java.lang包下的類瞳氓,但不會找java.lang的子包下的類策彤。
? ? ? ? 通配符(*) -->任意
? ? 在Eclipse工具中,即使使用通配符*匣摘,在格式化代碼的時(shí)候店诗,也會轉(zhuǎn)換為N條import語句。
(2)靜態(tài)導(dǎo)入(禁用:分不清靜態(tài)方法或字段來源類)--語法糖
? ? ? ? 語法:import static 類的全限定名.該類中的static成員名音榜;
? ? ? ? ? ? ? ? ? ?import static java.util.Arrays.sort;
4庞瘸、封裝
? ? (1)setter方法:專門用于給對象設(shè)置數(shù)據(jù),并把傳過來的數(shù)據(jù)保存在對象中赠叼。
? ? ? ? ? ? ?getter方法:獲取數(shù)據(jù)恕洲。
? ? (2)訪問權(quán)限控制:private 、 缺省 梅割、 protected 、 public
? ? ? ? 一般的:字段都使用private修飾葛家,為了安全性户辞,表示隱藏。
? ? ? ? ? ? 擁有實(shí)現(xiàn)細(xì)節(jié)的方法癞谒,一般使用private修飾底燎,不希望外界(調(diào)用者)看到該方法的實(shí)現(xiàn)細(xì)節(jié)。
? ? ? ? 一般的:方法使用public修飾弹砚,供外界直接調(diào)用双仍。
? ? ? ? 一般的:不用缺省,即使使用桌吃,僅暴露給同包中的其他類朱沃。
? ? ? ? 一般protected:繼承關(guān)系中,父類需要把一個(gè)方法只暴露給子類茅诱。
5逗物、JavaBean規(guī)范:特殊封裝類。
????成員:
?????? 1):方法:Method
?????? 2):事件:event
????? ?3):屬性:property
????屬性:
??? ????1):attribute:表示狀態(tài),Java中沒有該概念,很多人把字段(Field)稱之為屬性(attribute).不要把成員變量叫做屬性瑟俭。
??????? 2):property: 表示狀態(tài),但是不是字段,是屬性的操作方法(getter/setter)決定的,框架中使用的大多是是屬性翎卓。
????在JavaBean中有屬性這個(gè)概念,只有標(biāo)準(zhǔn)情況下字段名和屬性名才相同。
? ? JavaBean標(biāo)準(zhǔn)情況:
6失暴、this關(guān)鍵字:當(dāng)前對象坯门。
????????注:構(gòu)造器重載的互調(diào),this([參數(shù)])必須寫在構(gòu)造方法第一行逗扒。
????????當(dāng)一個(gè)對象new創(chuàng)建后古戴,JVM會分配一個(gè)引用自身的引用:this。
????????當(dāng)多個(gè)構(gòu)造器重載時(shí)缴阎,或者多個(gè)方法重載時(shí)允瞧,一般:少參數(shù)調(diào)用多參數(shù)的。
通過構(gòu)造器和setter方法都可以完成相同的功能蛮拔。
1)如果存在帶參數(shù)的構(gòu)造器述暂,【構(gòu)造器注入】較簡潔。
2)如果構(gòu)造對象時(shí)需要初始化多個(gè)數(shù)據(jù)建炫,構(gòu)造注入需要構(gòu)造器提供N個(gè)參數(shù)畦韭,不直觀,選擇【setter方法注入】肛跌。
3)特殊:根據(jù)數(shù)據(jù)構(gòu)建對象艺配,優(yōu)先選用【構(gòu)造器注入】。
? ? 如:畫圓衍慎,構(gòu)建圓對象時(shí)转唉,就確定半徑值,選擇【構(gòu)造器注入】稳捆。
練習(xí)代碼:
1:人類的年齡狀態(tài)封裝
2:判斷一個(gè)點(diǎn)和圓的關(guān)系