什么是面向对象?谈谈你对面向对象的理解
??面向?qū)ο蠛兔嫦蜻^程,是兩種不同的處理問題的角度。
??面向過程更注重事情的每一個步驟及順序,面向?qū)ο蟾⒅厥虑橛心男﹨⑴c者(對象)、及各自需要做什么。
??比如:洗衣機洗衣服
??面向過程會將任務拆解成一系列的步驟(函數(shù)),1、打開洗衣機——>2、放衣服——>3、放洗衣粉——>4、清洗——>5、烘干
??面向?qū)ο髸鸪鋈撕拖匆聶C兩個對象:
????人:打開洗衣服、放衣服、放洗衣粉
????洗衣機:清洗、烘干
??從以上例子能看出,面向過程比較直接高效,而面向?qū)ο蟾子趶陀?、擴展和維護。
面向?qū)ο蟮娜筇卣?br /> 封裝:封裝的意義,在于明確標識出允許外部使用的所有成員函數(shù)和數(shù)據(jù)項
內(nèi)部細節(jié)對外部調(diào)用不透明,外部調(diào)用無需修改或者關(guān)心內(nèi)部實現(xiàn)
1.javabean的屬性私有,提供getset方法對外訪問,因為屬性的賦值或者獲取邏輯只能由javabean本身決定。而不能由外部胡亂修改。
2.orm框架
操作數(shù)據(jù)庫,我們不需要關(guān)心鏈接是如何建立的、sql是如何執(zhí)行的,只需要引入mybatis,調(diào)方法即可。
繼承:繼承基類的方法,并做出自己的改變和擴展。
子類共性的方法或?qū)傩灾苯邮褂酶割惖?#xff0c;而不需要自己再定義,只需要擴展個性化的。
多態(tài):多態(tài)是同一個行為具有多個不同表現(xiàn)形式或形態(tài)的能力?;趯ο笏鶎兕惖牟煌?#xff0c;外部對同一個方法的調(diào)用,實際執(zhí)行的邏輯不同。
多態(tài)存在的三個必要條件:繼承,方法重寫,父類引用指向子類對象
無法調(diào)用子類特有的功能
public class Test {public static void main(String[] args) {show(new Cat()); // 以 Cat 對象調(diào)用 show 方法show(new Dog()); // 以 Dog 對象調(diào)用 show 方法Animal a = new Cat(); // 向上轉(zhuǎn)型 a.eat(); // 調(diào)用的是 Cat 的 eatCat c = (Cat)a; // 向下轉(zhuǎn)型 c.work(); // 調(diào)用的是 Cat 的 work} public static void show(Animal a) {a.eat(); // 類型判斷if (a instanceof Cat) { // 貓做的事情 Cat c = (Cat)a; c.work(); } else if (a instanceof Dog) { // 狗做的事情 Dog c = (Dog)a; c.work(); } } }abstract class Animal { abstract void eat(); //Note:父類中沒有work方法 } class Cat extends Animal { public void eat() { System.out.println("吃魚"); } public void work() { System.out.println("抓老鼠"); } } class Dog extends Animal { public void eat() { System.out.println("吃骨頭"); } public void work() { System.out.println("看家"); } }執(zhí)行以上程序,輸出結(jié)果為:吃魚 抓老鼠 吃骨頭 看家 吃魚 抓老鼠總結(jié)
以上是生活随笔為你收集整理的什么是面向对象?谈谈你对面向对象的理解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于java的学生宿舍公寓管理系统
- 下一篇: Tian Ji -- The Horse