1.先說說感觸
Java最初的興起水泉,很大一部分是因為它是面向?qū)ο蟮恼Z言。面向?qū)ο笞畲蟮奶攸c便是“萬事萬物皆對象”其骄,而在現(xiàn)實世界中,每個事物的確可以認為是一個獨立的對象扯旷。將現(xiàn)實的問題轉(zhuǎn)化為對象間的問題拯爽,再用代碼描述解決問題的方法,編譯成機器可以讀懂的語言钧忽,最后由計算機執(zhí)行得出結(jié)果毯炮,這個流程便是程序員每天的工作。
那么可以看出耸黑,程序員每天最繁重的體力勞動便是用文字表達自己的想法桃煎。這是什么行業(yè),不就是作家嗎大刊,只不過受眾是其他的作家而已为迈。既然作家講究文筆、修辭和意境等,程序員又該注意些什么呢葫辐?我個人覺得搜锰,能做到結(jié)構(gòu)清晰,內(nèi)容明確耿战,文字簡練即可(這就是代碼架構(gòu)出現(xiàn)的原因)蛋叼。
2.修飾訪問權(quán)限的關鍵字
修飾符及范圍 | 類內(nèi)部 | 包內(nèi)部 | 子類中 | 不限制 |
---|---|---|---|---|
private | 允許 | 不允許 | 不允許 | 不允許 |
default | 允許 | 允許 | 不允許 | 不允許 |
protected | 允許 | 允許 | 允許 | 不允許 |
public | 允許 | 允許 | 允許 | 允許 |
3.訪問權(quán)限在現(xiàn)實中的場景
有一個人姓張名平,家住北京市剂陡,手機號碼是13366668888鸦列。他有一兒一女,兒子跟他一起住在北京鹏倘,女兒獨自住在上海薯嗤。根據(jù)一般情況,我們可以確定以下四點:1.兒子和女兒都姓張纤泵;2.只有父親名字為平骆姐;3.兒子和父親所在地為北京;4.認識張平的人都知道他的手機號碼捏题。而與子女一樣的和被人知曉的就是可訪問的玻褪。
4.代碼描述現(xiàn)象
首先新建一個項目,通過包名區(qū)分不同的城市公荧,用Father代表張平带射,用Boy代表兒子,用Girl代表女兒循狰,Main則是程序啟動的入口和代表其他人窟社。
由于名字是個人所有,所以用private修飾绪钥;而不同的城市對應不同的包名灿里,所以用默認即可;只要是張平的孩子都姓張程腹,所以用protected修飾匣吊;電話號碼就是讓別人記的,所以用public修飾寸潦。
package org.lance.beijing;
public class Father{
private String firstName = "平";
/*default*/ String address = "北京市";
protected String lastName = "張";
public String phone = "13366668888";
@Override
public String toString() {
return "Father [firstName=" + firstName + ", address=" + address + ", lastName=" + lastName + ", phone=" + phone
+ "]";
}
}
package org.lance.beijing;
public class Boy extends Father {
@Override
public String toString() {
return "Boy [firstName=" + firstName + ", address=" + address + ", lastName=" + lastName + ", phone=" + phone
+ "]";
}
}
package org.lance.shanghai;
import org.lance.beijing.Father;
public class Girl extends Father {
@Override
public String toString() {
return "Girl [firstName=" + firstName + ", address=" + address + ", lastName=" + lastName + ", phone=" + phone
+ "]";
}
}
在程序的入口處實例化這三個對象色鸳,展示每個人的基本資料。
import org.lance.beijing.Boy;
import org.lance.beijing.Father;
import org.lance.shanghai.Girl;
public class Main {
public static void main(String[] args) {
System.out.println(new Father().toString());
System.out.println(new Boy().toString());
System.out.println(new Girl().toString());
System.out.println(new Father().phone);
}
}
5.運行的結(jié)果
Boy和Girl都會報Father的成員屬性不可訪問的錯誤见转,說明此處不能從Father那獲取命雀。我們找到對應的變量,進行刪除池户,那么運行的結(jié)果便是子女和其他人能從張平那訪問的咏雌。