JAVA的幾大特性
PS:最近一直在出差,沒怎麼有時間寫,現在來補上JAVA的幾大特點。爲什麼說JAVA的幾大特性,我覺得光說JAVA語言特性有大概3個,分別是封裝,繼承,多態。如果加上面向對象這種概念就會有個抽象,因爲抽象這特點是所有面嚮對象語言都應有的。下面我來分別介紹下,當然有一些基本概念還是百度百科上的。。。
- 封裝:
封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的接口。面向對象計算始於這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的接口訪問其他對象。封裝是一種信息隱藏技術,在java中通過關鍵字private,protected和public實現封裝。什麼是封裝?封裝把對象的所有組成部分組合在一起,封裝定義程序如何引用對象的數據,封裝實際上使用方法將類的數據隱藏起來,控制用戶對類的修改和訪問數據的程度。 適當的封裝可以讓程式碼更容易理解和維護,也加強了程式碼的安全性。
一般來說經常接觸封裝就是類的封裝,方法的封裝等。比如:來個例子看看;
public class People
{
//其中姓名,年齡都是私有屬性,外部只能通過get方法訪問
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
再來看個方法的封裝:
//打印一個人name
public void showName() {
//相應的實現
People people = new People();
String name = people.getName();
System.out.println(name);
}
public static void main(String[] args)
{
showName();
}
其他人只需要知道這個方法是打印一個人的名字,然後調用得到自己的結果就行,具體這個方法怎麼實現是不需要管的。(類木有寫完,只是體現封裝的大體意思)。 - 繼承:
繼承是面向對象最顯著的一個特性。繼承是從已有的類中派生出新的類,新的類能吸收已有類的數據屬性和行爲,並能擴展新的能力。 Java繼承是使用已存在的類的定義作爲基礎建立新類的技術,新類的定義可以增加新的數據或新的功能,也可以用父類的功能,但不能選擇性地繼承父類。這種技術使得複用以前的代碼非常容易,能夠大大縮短開發週期,降低開發費用。
同樣給個例子來看看:
class A{
//成員變量name
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void showName(){
System.out.println(name);
}
}
//B繼承A
class B extends A{
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void showAge(){
System.out.println(age);
}
}
public static void main(String[] args)
{
A a = new A();
B b = new B();
//調用B類show年齡的方法
b.showAge();
//因爲B繼承了A,B也有A的name屬性,也能調用A的方法。
b.showName();
}
這裏就只體現了繼承,簡單來說,繼承就是子類能擁有父類的屬性和方法,可以調用。 多態:
按字面的意思就是“多種狀態”。在面嚮對象語言中,接口的多種不同的實現方式即爲多態。多態性是允許你將父對象設置成爲一個或更多的他的子對象相等的技術,賦值之後,父對象就可以根據當前賦值給它的子對象的特性以不同的方式運作
多態的話,我覺得是更好的利用了繼承這一特性,然後爲什麼能實現多態,因爲可以重寫父類的方法。說重寫可能不清楚,具體來說就是子類父類可以存在分別存在名字相同的屬性或者方法,然後可視聲明的類去調用相應的方法等。看下下面這個例子:
將上面的class B修改一下
//B繼承A
class B extends A{private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void showAge(){
System.out.println(age);
}
public void showName(){
//顯示姓名年齡
//這裏的super.name是調用父類的name
System.out.println(super.name+age);
}
}
public static void main(String[] args)
{
A a = new A();
B b = new B();
//調用B類show年齡的方法
b.showAge();
//調用的是A類自己顯示名字的方法
a.showName();
//因爲B重寫了A的showName()方法,顯示的就是姓名加年齡
b.showName();
}
這裏只是對多態粗略介紹,當然還有更多對多態的衍生,這個以後遇到再說,現在讓大家瞭解下分別是什麼作用。- 抽象:
抽象是通過分析與綜合的途徑,運用概念在人腦中再現對象的質和本質的方法,我覺得理解成一種方法比較好。就是我們通過對事物的認知,將某一或者一類事物的屬性變化成JAVA語言能識別的類(你可以把一個基礎的類看成一個事物,這個類的屬性就等於這個事物的的屬性)。
舉個例子吧,比如我現在要做一個人員作主體的系統,那麼我需要把現實生活的人抽象成一個基礎的實體類功能程序識別,我會聲明一個people的類,這個類包含了name(名字),age(年齡),sn(身份證),sex(性別),height (身高),等等屬性,這些屬性基本都是我們現實生活中都有的標籤。類抽象好了,就是封裝,繼承,根據業務進行相應功能邏輯實現。