面向對象的三大特征是封裝、繼承、多態。
封裝
封裝指的是將某些信息隱藏在類的內部,不允許外部程序直接訪問,但是可以通過該類提供的公有方法,來實現對隱藏信息的操作和訪問。
舉個例子,就比如一台手機,內部非常復雜的,一般用戶不需要了解它的內部,手機廠商把手機封裝起來,對外提供了一些“公有方法”——顯示屏、按鍵、耳機孔等,從而用戶就可以很方便的使用手機。
上代碼:
public class Dog {
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
和age
都是private,意思就是說除了Dog
類本身外,其他任何類都不可以訪問這些屬性(見Java訪問權限),但是這邊提供了public的get()
和set()
的方法,可以通過set()
方法來對其進行賦值,get()
方法來對其進行取值。this
是來引用成員變量(見成員變量和局部變量)
public class MyDog {
public static void main(String[] args) {
Dog erha = new Dog();
erha.setName("二哈");
erha.setAge(2);
System.out.println("名字:" + erha.getName());
System.out.println("年齡:" + erha.getAge());
}
}
然后在一個新的類中,new出了一個erha來,利用set()
方法來給erha取名叫“二哈”,同時也設置了年齡為“2”,再往下使用了get()
方法來獲取到了erha的名字和年齡。全程都沒有直接使用name
和age
來賦值取值,而是使用他提供的公有方法get()
和set()
。
運行MyDog輸出結果:
名字:二哈
年齡:2
繼承
繼承可以直接獲得父類的屬性和方法並進行擴展,從而產生新的類。已經存在的類稱為父類,而新的類稱為子類。
詳情可參考:什么是繼承?
多態
多態是指在父類被子類繼承之后,不同子類執行同一操作,可以有不同的解釋,產生不同的執行結果。
詳情可參考:Java多態