封裝的作用:
1、封裝能夠減少耦合
2、類內部結構可以自由修改
3、對成員變數進行更精確的控制
**例項
public class person
在上面這段**中,把屬性定義成private私有的,只能在本類中訪問,其他類訪問不了。
public class person
public string getname()
public void setage(int age)
public void setname(string name)
}
在上面這段**中,實現私有屬性的get和set方法,並定義成public公共訪問許可權。
public方法是外部類訪問該類成員變數的入口。通常我們把定義私有屬性會選擇實現屬性的getter和setter方法,以實現被任何類呼叫。
具體如何呼叫通過如下例子說明:
public class student
}
輸出結果:
我叫張三,我今年19歲
**例項:
public class person
.定義父類,父類中有name,age屬性,並為其賦值。
public class student extends person
}
.定義子類,繼承父類,子類中有自己的方法study();
public class test
}
輸出結果:
張三在學習
名字:張三,年齡:20
在測試類中,例項化子類。通過**,我們可以發現子類能有自己特殊的方法,也可以呼叫父類屬性。
**例項:
class a()
public int test(int num)
public string test(string str)
}
建立乙個a類,定義三個方法,分別是無參的方法、返回int型別的方法和返回string型別的方法。
class b
}
建立乙個b類,例項化a類並呼叫a類中的三個方法。
通過**我們發現,在a類中的三個方法的方法名相同,但是引數型別不同,在b類中,呼叫相同方法名的三個方法,只要傳入不同的引數型別就可以呼叫。
**例項:
public class a
}
建立乙個a類,a類中有個test()方法,定義num值為10;
public class b extends a
}
建立乙個b類,繼承a類,並重寫test()方法,定義num值為11;
public class test
}
建立乙個test類,例項化b類,也就是子類,呼叫子類test()方法。
輸出結果為:
11
含義:多型字面就是就是乙個事物多種形態,專業定義為:多型就是父類引用指向子類物件。
舉例來說:person為父類,student為子類。那麼:person p=new student();
實現多型的條件:
**例項:
public abstract class animal
public string getname()
public abstract void eat();
}
建立乙個抽象的animal類,定義私有屬性name,實現name的get和set方法。定義乙個抽象方法eat();
public class dog extends animal
@override
public void eat()
}
建立乙個dog類,繼承animal類,並重寫eat();方法。
public class cat extends animal
@override
public void eat()
}
建立乙個cat類,也繼承animal類,同樣重寫eat();方法。
public class animaltest
public static void eat(animal animal)
}
建立乙個animaltest類。
輸出結果:
貓吃魚
狗吃肉
從**我們可以看出,要想實現多型,必須繼承父類,並且重寫父類中的方法,然後再測試類用父類引用指向子類物件來實現相應功能。 java三大特性 封裝,繼承,多型
使用封裝有三大好處 1 良好的封裝能夠減少耦合。2 類內部的結構可以自由修改。3 可以對成員進行更精確的控制。4 隱藏資訊,實現細節。5 封裝我們也能夠對物件的出口做出很好的控制,訪問入口做一些控制 如對實體類進行屬性封裝方法 setter 和getter 同時在使用繼承時需要記住三句話 1 子類擁...
java的三大特性 封裝,繼承,多型
增強安全性和簡化程式設計,使用者不必了解具體的實現細節。隱藏物件的屬性和實現細節,僅對外公開介面來對程式中屬性的讀和修改。封裝的基本做法 把所有的屬性私有化,對每個屬性提供getter和setter方法,在開發的時候經常要對已經編寫的類進行測試,所以有的時候還需重寫tostring方法。用exten...
三大特性 封裝,繼承,多型
重寫方法的規則 1 引數列表必須完全與被重寫的方法相同,否則不能稱其為重寫而是過載。2 返回的型別必須一直與被重寫的方法的返回型別相同,否則不能稱其為重寫而是過載。3 訪問修飾符的限制一定要大於被重寫方法的訪問修飾符 public protected default private 4 重寫方法一定...