計算機二級Java語言程式設計複習資料
Java是一個物件導向的語言。對程式設計師來說,這意味著要注意應中的資料和操縱資料的方法(method),而不是嚴格地用過程來思考。以下是關於計算機二級的文章" target="_blank" >計算機二級Java語言程式設計複習資料,希望大家認真閱讀!
Java物件導向
物件導向是一種程式設計方法,或者是程式設計規範,其基本思想是使用物件、類、繼承、封裝、多型等基本概念來進行程式設計。 物件導向是一種符合人們思考習慣的思想,可以將複雜的事情簡單化,將程式設計師從執行者轉換成了指揮者
完成需求時:
• 先要去找具有所需的功能的物件來用。
• 如果該物件不存在,那麼建立一個具有所需功能的物件。
• 這樣簡化開發並提高程式碼的複用。
物件導向的開發過程其實就是不斷的建立物件,使用物件,指揮物件做事情。設計的過程其實就是在管理和維護物件之間的關係。
物件導向的特徵:
• 封裝(encapsulation)
• 繼承(inheritance)
• 多型(polymorphism)
1.封裝
概念:是指隱藏物件的屬性和實現細節,僅對外提供公共訪問方式。
好處:• 將變化隔離。• 便於使用。• 提高重用性。• 提高安全性。
封裝原則:
• 將不需要對外提供的內容都隱藏起來。
• 把屬性都隱藏,提供公共方法對其訪問。
Java中可以通過對類的成員設定一定的訪問許可權,實現類中成員的資訊隱藏。
private:類中限定為private的成員,只能被這個類本身訪問。如果一個類的構造方法宣告為private,則其它類不能生成該類的一個例項。
default:類中不加任何訪問許可權限定的成員屬於預設的(default)訪問狀態,可以被這個類本身和同一個包中的類所訪問。
protected:類中限定為protected的成員,可以被這個類本身、它的子類(包括同一個包中以及不同包中的子類)和同一個包中的所有其他的類訪問。
public:類中限定為public的成員,可以被所有的類訪問。
如下面的這個student類,就是使用了封裝,將類中的屬性name 、age和score私有化,使外部不能直接訪問他們,只能通過public型別的對他們方法進行操作。
class Student {
private String name;//宣告屬性 ,並設為私有型別,起到封裝的作用
private int age;
private int score;
public Student(String name,int age ,int score) { //建構函式,分別給name、age、score賦值
= name;// :this代本類物件的引用
= age;
e= score;
}
public String getName() { //設定getter方法,因為變數設為了私有,物件無法訪問類中的屬性,需要用getter方法獲取變數
return name;
}
public void setName(String name) { //設定setter方法,因為變數設為了私有,物件無法訪問類中的屬性,需要用setter方法給變數賦值
= name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
= age;
}
public int getScorre() {
return score;
}
public void setScorre(int score) {
e = score;
}
}
2.繼承
繼承是一種聯結類的層次模型,並且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。物件的一個新類可以從現有的類中派生,這個過程稱為類繼承。
新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那裡繼承方法和例項變數,並且類可以修改或增加新的方法使之更適合特殊的.需要。
子類可以直接訪問父類中的非私有的屬性和行為。通過 extends 關鍵字讓類與類之間產生繼承關係。如下:class SubDemo extends Demo{}
繼承提高了程式碼的複用性。
繼承的出現讓類與類之間產生了關係,提供了多型的前提
繼承的特點:
Java只支援單繼承,不支援多繼承。
• 一個類只能有一個父類,不可以有多個父類。
• class SubDemo extends Demo{} //這是對的
• class SubDemo extends Demo1,Demo2...//這是錯的
Java支援多層繼承(繼承體系)
• class A{}
• class B extends A{}
• class C extends B{}
定義繼承需要注意:
• 不要僅為了獲取其他類中某個功能而去繼承
• 類與類之間要有所屬關係,xx1是xx2的一種。
如:
class Ren { //父類
int age=20;
String name="wk";
public void show() {
tln("姓名:"+name+" 年齡:"+age);
}
}
class Sudents extends Ren {//子類Sudents繼承了父類Ren
int score=90;//增加了新的屬性
int age= +1;//使用super標記父類中的元素,修改了Ren中age的值
public void show() {//重寫了父類中的方法( 覆蓋時,子類方法許可權一定要大於等於父類方法許可權,靜態只能覆蓋靜態。)