抽像是將相同的類別的共同特徵總結出來,建構成類別的過程;只關心成員變數以及成員函數,並沒有關係具體的實作細節。封裝是把資料以及操作方法封裝在函數/類別裡,然後再裝起來;也就是把資料以及操作資料的方法綁定起來,對外界提供已經定義好的介面進行存取。
java的四個基本特徵是抽象,封裝,多態,繼承。今天我們就來講講什麼是抽象與封裝。
抽象
抽象:將相同的類別的共同特徵總結出來,建構成類別的過程。包括資料抽像以及行為抽象。資料抽象化變成類別的成員變量,行為抽象化變成類別的成員函數。抽像只關心成員變數以及成員函數,並不關係具體的實作細節。
下面是Person.class,表示與人類相關的資料以及各種活動,只列舉部分的屬性以及行為。
public class Person{ // 年龄(数据抽象) public int age; // 名字(数据抽象) public String name; public Person(){ } public Person(int age,String name){ this.age = age; this.name = name; } // 吃东西(行为抽象) public void eat(){ System.out.println("I am eating"); } // 走路(行为抽象) public void walk(){ System.out.println("I am walking"); } }
創造一個人類的物件:
Person person = new Person(18,"张三");
上面的程式碼只是用來表示簡單的抽象,將人共同的屬性以及共同的行為抽像出來。
封裝
封裝其實可以理解為:“裝”與“封”,就是把資料以及操作方法封裝在函數/類別裡,然後再裝起來。也就是把資料以及操作資料的方法綁定起來,對外界提供已經定義好的介面進行存取。物件導向的本質就是將現實世界描繪成一系列的完全自治,封閉的物件。可以理解為我們無論內部實作有多複雜,使用者可以完全不用理,只需要知道怎麼使用就可以了。
舉個小例子:下面是學生的類,study的方法其實就是一種封裝,外界要是需要學生學習,那就直接調用study()方法即可,不需要知道我如何實現學習這個方法。
public class Student implements Serializable { public String name; public String number; public int age; public Student() { } public Student(String name, String number, int age) { this.name = name; this.number = number; this.age = age; } public void study(){ System.out.println("我是学生"+name+",我今年"+age+"岁。"); //内部可能有很复杂的操作,但是调用者只需要关注如何调用即可 } }
以上是java什麼是抽象與封裝的詳細內容。更多資訊請關注PHP中文網其他相關文章!