標籤:關鍵字 java 如何
類的概念:類是一種抽象的概念,它為“物件服務”,類與對象相互依存;
對象的概念:真正做事的“人”;
封裝的概念:顯性和隱性 指的是方法或常量(欄位);
如何建立對象:
文法:類名 對象名(變數名)=new 類名(是否帶參);
意義:調用本類裡面的成員變數和方法;
注意事項:null 指標異常;
構造方法:
文法:許可權+類名(是否帶參){}//方法名必須跟類名一致;
何時調用:建立對象時調用該方法;
注意事項:任何一個類,都預設帶有一個無參的構造方法,除非重寫一個新的構造方法將其覆蓋。
set()、get()方法:
備忘:必須先有成員變數,使用這兩個方法才有意義;
方法的重載:
文法:許可權+(static)+傳回值類型+方法名(是否帶參){}
前提:必須在同一個類中;
作用:可以減少定義方法名的煩惱;
要求:有無傳回值的方法,在同一個類中屬於同一個方法;
方法的重載只跟形參的個數和類型有關,與其他無關;
構造方法也存在重載;
this關鍵字:
三大特點:
可以表示類的屬性;
可以使用this調用本類的構造方法;
可以表示當前類的對象;
注意事項:不能放在static方法中;
static關鍵字:
特點:static只跟類有關,跟對象無關;
static本身就是一個“內部”類的一個對象(對象就是類本身);
注意事項:方法內不能再用static來進行修飾;
package、import
package申明一個自己的包名;(com/org開頭,表示公用/私人)
import放在package裡面,把在本類中引用到的類(JDK、自訂類)所在的包引過來;不同包才需引包;
如何看API:
第一:先看類所在包是否是想要的,看一下簡介;
第二:看構造方法裡面有幾個重載的方法,作用分別是什麼;
第三:看成員方法裡面是否有所需的方法,直接用對象去調用;
API文檔需要記的包名:
java.lang.*:在java中不需要導包;
java.awt.*:介面(GUI)類;圖形化使用者介面
java.net.*:網路通訊;
java.io.*:輸入、輸出資料流;
java.util.*:常用工具類;
Eclipse快速鍵
ctrl+左鍵:進入java底層代碼(API文檔對應的類)
ctrl+o:尋找相對應類的方法;
ctrl+1:逆向書寫代碼,從右至左;
繼承:
概念:如果兩個類存在繼承關係,子類就可以擁有父類所有成員變數和方法;
文法:許可權+class+子類+extends+父類{}
注意事項:java中只能單繼承,但可以多重繼承;
許可權修飾符
650) this.width=650;" src="http://note.youdao.com/yws/public/resource/719ed66494263eb983dad4d9b8549a6b/1AA7DC517ECE4207A2F1B149C5452BDF/E88CBAC79B3D4F5B9F617A2B8035910A" style="border:none;height:auto;" alt="E88CBAC79B3D4F5B9F617A2B8035910A" />
注意事項:protected如果是在不同包,必須存在繼承關係才能調用,否則無法調用;
多個類中,只能有一個public類;許可權只修飾類、方法、成員變數;
重寫:
條件:只存在繼承中,方法頭必須一模一樣;
注意事項:父類的普通方法會被子類的重寫方法所覆蓋;
父類裡面被重寫的方法不能比子類裡面的重寫方法許可權高;(除private)
靜態問題:
類的載入順序:(靜態塊、靜態變數)>靜態方法>構造方法>成員變數>成員方法;
課後練習:
1、已知有一個遊戲類Game,有一個play();它有四個子類,分別是C9、CF、CS、LOL
要求:四個子類都必須重寫play()方法;
public class Game {
public void play(){
System.out.println("Game");
}
public static void main(String[] args){
Game[] g = new Game[4];
g[0] = new C9();
g[1] = new CF();
g[2] = new CS();
g[3] = new LOL();
for(int i=0;i<g.length;i++){
g[i].play();
}
}
}
class C9 extends Game {
public void play(){
System.out.println("C9");
}
}
class CF extends Game {
public void play(){
System.out.println("CF");
}
}
class CS extends Game {
public void play(){
System.out.println("CS");
}
}
class LOL extends Game {
public void play(){
System.out.println("LOL");
}
}
本文出自 “坤” 部落格,請務必保留此出處http://linyingkun.blog.51cto.com/2393912/1574787
安卓培訓(java篇)第4天—物件導向