title: Java基礎語法(9)-面向對象之類的成員 html
blog: CSDNjava
data: Java學習路線及視頻算法
我要用洗衣機,只須要按一下開關和洗滌模式就能夠了。有必要了解洗衣機內部的結構嗎?有必要碰電動機嗎?數組
我要開車,…學習
隱藏對象內部的複雜性,只對外公開簡單的接口。便於外界調用,從而提升系統的可擴展性、可維護性。通俗的說,把該隱藏的隱藏起來,該暴露的暴露出來。這就是封裝性的設計思想。.net
Java中經過將數據聲明爲私有的(private),再提供公共的(public)方法:設計
getXxx()和setXxx()實現對該屬性的操做3d
class Animal { private int legs; // 將屬性legs定義爲private,只能被Animal類內部訪問 public void setLegs(int i) { if (i != 0 && i != 2 && i != 4) { System.out.println("Wrong number of legs!"); return; } legs = i; } public int getLegs() { return legs; } }
public class Zoo { public static void main(String args[]) { Animal xb = new Animal(); xb.setLegs(4); // System.out.println(xb.getLegs()); } }
Java權限修飾符public、protected、(缺省)、private置於類的成員定義前,用來限定對象對該類成員的訪問權限。code
修飾符 | 類內部 | 同一個包 | 不一樣包的子類 | 同一個工程 |
---|---|---|---|---|
private | Yes | |||
(缺省) | Yes | Yes | ||
protected | Yes | Yes | Yes | |
public | Yes | Yes | Yes | Yes |
對於class的權限修飾只能夠用public和default(缺省)。視頻
public類能夠在任意地方被訪問
default類只能夠被同一個包內部的類訪問
多個類中存在相同屬性和行爲時,將這些內容抽取到單獨一個類中,那麼多個類無需再定義這些屬性和行爲,只要繼承那個類便可。
此處的多個類稱爲子類(派生類),單獨的這個類稱爲父類(基類或超類)。能夠理解爲:「子類 is a 父類」
class Subclass extends SuperClass{ }
Person p = new Student(); Object o = new Person(); //Object類型的變量o,指向Person類型的對象 o = new Student(); //Object類型的變量o,指向Student類型的對象
public class Test { public void method(Person e) { e.getInfo(); } public static void main(Stirng args[]) { Person e = new Person(); e.getInfo(); }
做用:用來判斷某個對象是否屬於某種數據類型。
注意: 返回類型爲布爾類型
Fu f1=new Zi(); Fu f2=new Son(); if(f1 instanceof Zi){ System.out.println("f1是Zi的類型"); } else{ System.out.println("f1是Son的類型"); }
public class Main { public static void main(String[] args) { Person person = new Superman(); Superman s = (Superman)person; //向下轉型 s.sleep(); s.fly(); s.eat(); } }
2020-3-31: Java基礎語法(8)-數組中的常見排序算法
2020-3-31: Java基礎語法(9)-面向對象之類的成員
今日好文推薦
今日資料推薦