2017.04.16
JAVA學習筆記
輸入設備異常附帽、類型轉換異常
try {
BufferedReader in = ...
String inputLine = in.readLine();
value = Integer.valueOf(inputLine).intValue();
} catch (Exception exc) {
// 出現(xiàn)異常的處理代碼
}
Static關鍵字注解 獨立于實例埠戳,即不能用this super來調用
實際上你需要搞明白,private是訪問權限限定蕉扮,static表示不要實例化就可以使用整胃,這樣就容易理解多了。
被static修飾的成員變量和成員方法獨立于該類的任何對象喳钟。也就是說屁使,它不依賴類特定的實例,被類的所有實例共享奔则。
http://www.cnblogs.com/beanmoon/archive/2012/04/25/2470298.html
Continue 回到判斷蛮寂,break 退出循環(huán)
Main函數中:string[] args 是函數的傳遞參數,用來接收參數
This對本類的形參和變量名重合時區(qū)分易茬,super引用父類方法 //非完整
訪問權限修飾詞:public 酬蹋;protected 繼承的類可訪問;private 只有本類可以訪問抽莱;默認 包訪問權限范抓;
標識符可以由字母、數字岸蜗、下劃線(_)尉咕、美元符($)組成叠蝇,但不能包含 @璃岳、%、空格等其它特殊字符悔捶,不能以數字開頭铃慷。譬如:123name 就是不合法滴;
優(yōu)秀攻城師的習慣:
1蜕该、變量名由多單詞組成時犁柜,第一個單詞的首字母小寫,其后單詞的首字母大寫堂淡,俗稱駱駝式命名法(也稱駝峰命名法)馋缅,如 myAge
2、變量命名時绢淀,盡量簡短且能清楚的表達變量的作用萤悴,做到見名知意。如:定義變量名 stuName 保存“學生姓名”信息
PS: Java 變量名的長度沒有限制皆的,但 Java 語言是區(qū)分大小寫的覆履,所以 price 和 Price 是兩個完全不同的變量哦!
final 關鍵字 常量名 = 值;
Arrays 類是 Java 中提供的一個工具類,在 java.util 包中硝全。該類中包含了一些方法用來直接操作數組栖雾,比如可直接實現(xiàn)數組的排序、搜索等:
Arrays.toString(數組名); Arrays.sort(數組名);
foreach 并不是 Java 中的關鍵字伟众,是 for 語句的特殊簡化版本析藕,在遍歷數組、集合時赂鲤, foreach 更簡單便捷噪径。從英文字面意思理解 foreach 也就是“ for 每一個”的意思,那么到底怎么使用 foreach 語句呢数初?
注意:foreach 不能賦值找爱;編譯器1.5以上才能用
面向對象:
成員變量:整個在類中 有一個初始值
局部變量:僅限于在定義的方法內部中;沒有初始值泡孩;在一個方法中一個
兩類變量重名時车摄,局部變量優(yōu)先
Java 中的 static 使用之靜態(tài)變量:它屬于整個類所有,而不是某個對象所有仑鸥,即被類的所有對象所共享吮播。靜態(tài)成員可以使用類名直接訪問,也可以使用對象名進行訪問眼俊。
Java 中的 static 使用之靜態(tài)方法:
1意狠、 靜態(tài)方法中可以直接調用同類中的靜態(tài)成員,但不能直接調用非靜態(tài)成員疮胖。如果希望在靜態(tài)方法中調用非靜態(tài)變量环戈,可以通過創(chuàng)建類的對象,然后通過對象來訪問非靜態(tài)變量澎灸。
2院塞、 在普通成員方法中,則可以直接訪問同類的非靜態(tài)變量和靜態(tài)變量性昭,
3拦止、 靜態(tài)方法中能直接調用靜態(tài)方法,不能直接調用非靜態(tài)方法糜颠,需要通過對象來訪問非靜態(tài)方法
Java 中的 static 使用之靜態(tài)初始化塊: 可創(chuàng)建多塊
執(zhí)行順序:靜態(tài)初始化塊(只一次)汹族、普通初始化塊、構造方法
靜態(tài)初始化塊只在類加載時執(zhí)行其兴,且只會執(zhí)行一次顶瞒,同時靜態(tài)初始化塊只能給靜態(tài)變量賦值,不能初始化普通的成員變量忌警。
面向對象三大特性:封裝搁拙、繼承秒梳、多態(tài)
封裝:1.只通過規(guī)定方法訪問;2.隱藏類的實例細節(jié)箕速,方便修改和實現(xiàn)酪碘;
設為Private – getter/setter方法:屬性讀寫用 – 加入屬性控制語句:判斷屬性合法性
包:管理Java文件;解決同名文件沖突
定義包:package 注:放在源程序第一行盐茎,用“.”
例如系統(tǒng)包:
java.(功能).(類)
java.lang.(類) 包含Java語言基礎的類
java.util.(類) 包含Java語言中各種工具類
java.io.(類) 包含輸入兴垦,輸出相關功能的類
包的使用:
1.可以通過使用import關鍵字,在某個文件使用其他文件中的類字柠。
2.Java中探越,包的命名規(guī)范是全小寫字母拼寫
3.使用的時候可以加載某個包下的所有文件 eg:com.imooc.*
也可以加載某個具體子包下的所有文件
Java的訪問修飾符:
本類 同包 子類 其他
private 1
默認 1 1
protected 1 1 1
public 1 1 1 1
This關鍵詞:this關鍵字其實相當于幫你創(chuàng)建當下類的一個具體對象,你不用this的話就得自己實例化一下窑业。這樣說比較明白吧钦幔。
this是類內部對對象本身的一個引用
1、它方便類中方法訪問自己的屬性常柄,set方法中鲤氢,如果傳入同名的形參,沒有this無法賦值西潘,java是就近原則
2卷玉、只能通過this(),實現(xiàn)在構造器中調運另外一個構造器,不用this沒法調運喷市。
3相种、this作為方法的返回值,可以實現(xiàn)java中鏈式寫法品姓。 寝并?
內部類:
1)成員內部類:
內部類可以任意的訪問外部類里面的成員,不論外部成員的訪問權限是什么缭黔。
定義內部類之后 食茎,必須需要用外部類來創(chuàng)建內部類對象蒂破。
當外部類和內部類同時出現(xiàn)相同的成員變量名是馏谨,如果要訪問外部成員變量需要this關鍵字
2)靜態(tài)內部類: 直接創(chuàng)建 內部類 對象名= new 內部類();
但可通過new 外部類().成員 訪問外部類非靜態(tài)成員附迷;如果外部類的靜態(tài)成員與內部類的成員名稱相同惧互,可通過“類名.靜態(tài)成員”訪問外部類的靜態(tài)成員;
3)方法內部類:內部類定義在外部類的方法中喇伯,只在外部類該方法中使用喊儡;方法內部類不能使用訪問控制符和 static 修飾符。
繼承 class 子類 extends 父類 先父類后子類
方法的重寫 返回類型稻据、方法名艾猜、參數與父類一致
final關鍵字:
1) 類,不被繼承;2)方法匆赃,不被覆蓋(重寫)淤毛;3)屬性,類初始化必須有值或者構造方法賦值(二選一)算柳;4)變量低淡,只能賦值一次,常量
Super關鍵字:在對象內部使用瞬项,可以代表父類對象蔗蹋。 訪問父類屬性、方法
子類構造方法必須調用構造父類方法(隱式 super調用父類方法囱淋,顯式必須放在第一行)
Object所有的父類 哈希code判讀對象
1) toString方法 輸出屬性值猪杭;默認輸出對象地址
2) equals 方法 兩個對象的引用是否相同內存地址;dog.equals(dog2)
類對象 obj.getClass() 類的代碼信息 VS 類的對象
多態(tài):
1.引用多態(tài)
1) 父類引用指向本類妥衣;
2) 父類引用指向子類胁孙; Animal dog = new Dog();
2.方法多態(tài)
引用類型轉換 向上轉換;向下轉換(有風險称鳞,溢出)強制類型轉換 Dog dog2 = (Dog)animal
用instanceof判斷是否進行類型 if(animal instacnof cat)
抽象類 abstract:約束子類必須實現(xiàn)某些方法涮较,但不關注細節(jié)
抽象方法沒有方法體{}分號結束;
接口:修飾符 interface 接口名 [extends 父接口1冈止,2狂票。。熙暴。] 不能protected private
接口屬性是常量闺属,接口方法為抽象方法,不能有方法體
子類繼承父類實現(xiàn)接口的語法:修飾符 class 類名 父類 implements 接口1周霉,接口2…
1)接口引用:IPlayGame ip1 = new SmartPhone(); 引用實現(xiàn)了接口的對象
2)或者 使用匿名內部類 IPlayGmae ip2 = new IPlayGmae(){ 匿名內部類};
3)或者直接NEW一個然后.方法:new interface(){}.方法
設計過程 //入門要求即會看
UML :unified modeling language 統(tǒng)一建模語言或者標準建模語言
支持模型化和軟件系統(tǒng)開發(fā)圖形語言
常用UML :
1) 用例圖 use case diagram 可視化
2) 序列圖 sequence diagram 交互關系及順序
3) 類圖 class diagram 類屬性方法等掂器,業(yè)務邏輯 //可以直接創(chuàng)建class
建模工具 visio、rational rose俱箱、powerdesigner
項目分析: (以答答租車為例)
1国瓮、 數據模型分析 操作(方法)、屬性
車的類型狞谱,載客量/載貨量
2乃摹、 業(yè)務模型分析 在設計程序之前,明確該程序必須執(zhí)行哪些任務
例:選車跟衅,租車天數孵睬、統(tǒng)計金額、載客伶跷、貨量
3掰读、 顯示和流程分析 用戶看到的各種界面秘狞,顯示流程是步驟
例:選擇車輛-> 輸入序號-> 輸出總金額
選車:1、2蹈集、3谒撼、4、5