日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

面对对象编程(OOP, Object Oriented Programming)及其三个基本特性

發(fā)布時間:2024/9/5 编程问答 61 豆豆
生活随笔 收集整理的這篇文章主要介紹了 面对对象编程(OOP, Object Oriented Programming)及其三个基本特性 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
  • 一千個讀者,一千個哈姆雷特。對于面對對象編程,書上都會告訴我們它有三個基本特性,封裝,繼承,多態(tài),但談起對這三點的見解,又是仁者見仁智者見智,感覺還是得多去編程中體驗把 。

  • 面向?qū)ο缶幊?#xff08;OOP, Object Oriented Programming)是一種編寫程序的方法,旨在提升開發(fā)大型程序的效率,使程序易于維護(hù) 。

  • 面向?qū)ο缶幊淌且环N基于以下思路的程序設(shè)計方法:將關(guān)注點置于對象(Object)本身,對象的構(gòu)成要素包含對象的行為及操作,以此為基礎(chǔ)進(jìn)行編程。這種方法使程序易于復(fù)用,軟件的生產(chǎn)效率因而得以提升。其中所使用的主要編程技巧有繼承、封裝、多態(tài)三種。
    1.封裝
    通常認(rèn)為是把數(shù)據(jù)和數(shù)據(jù)操作綁定起來,對數(shù)據(jù)的訪問只能通過已定義的方法或者接口。面對對象的本質(zhì)就是將現(xiàn)實世界描繪成一系列完全自治,封閉的對象.我們再類中編寫的方法是對實現(xiàn)細(xì)節(jié)的一種封裝,我們編寫的類就是對數(shù)據(jù)和數(shù)據(jù)操作的封裝,可以說,封裝就是隱藏一切可以隱藏的東西(隱藏那些沒必要展現(xiàn)給類調(diào)用者的成員),只向外界提供最簡單的編程接口.(保護(hù)隱私),

public class Person {private Object data; //將成員私有化,外界無法修改屬性值/** 暴露一個公有方法,外界只能通過這個方法改變對象的屬性值*/public void setData(Object data) {this.data = data;}}

至于暴露接口這個,筆者我暫時也不是很理解…

public interface Service.{public void setData(); }

可能是給你一個service接口,你自己去實現(xiàn)serviceImpl,調(diào)用dao層給你的數(shù)據(jù)操作方法?(有待商榷)

2.繼承
所謂繼承是指繼承已存在的類所擁有的成員而生成新的類,特殊和一般,子類和父類的區(qū)別;繼承使變化的軟件系統(tǒng)有一定的延續(xù)性.(復(fù)用性)

/** 父類*/ public class Parent {public int age = 40;public void eat() {System.out.println("吃飯");}public void say() {System.out.println("parent say");}} /** 子類,實現(xiàn)簡單的繼承動作*/ public class Child extends Parent {}

測試

//測試public static void main(String[] args) {Parent p1 = new Parent();Child c= new Child();p1.eat();c.eat(); //繼承了父類的公有方法p1.say();c.say();System.out.println(p1.age);System.out.println(c.age);//繼承了父類的公有屬性}

3.多態(tài)
多態(tài)是指針對同一種消息,不同的對象可以進(jìn)行不同的操作(允許不同子類對同一消息做出不同的響應(yīng))
多態(tài)又分編譯時多態(tài)和運行時多態(tài):
編譯時多態(tài)的實現(xiàn)方式是方法的重載,方法重載發(fā)生在同一個類種,同名的方法擁有不同的入?yún)?參數(shù)個數(shù)或類型不同)視為重載.這樣在編程階段程序員可以根據(jù)不同的入?yún)⒄{(diào)用同名方法.

public class Demo {public void method() {System.out.println("void");}public boolean method(int a, int b) {System.out.println(a == b);return a == b;}public static void main(String[] args) {Demo d = new Demo();d.method();d.method(1, 2);} }


至于運行時多態(tài),實現(xiàn)方式就是方法的重寫,分三步走,一是子類繼承父類,二是子類重寫父類的方法(抽象,或者已有的非私有方法),三是父類變量引用子類的對象.
改寫上面的子類,重寫父類的say方法并測試

/** 子類,實現(xiàn)簡單的繼承動作*/ public class Child extends Parent {@Overridepublic void say() {// TODO Auto-generated method stubSystem.out.println("child say");}public static void main(String[] args) {Parent pc = new Child();pc.say();} }

測試結(jié)果

多態(tài)的好處是解耦,系統(tǒng)中父類提供的是一個抽象方法,子類是對這個抽象方法的具體實現(xiàn)系統(tǒng)更新時,只需要換掉子類,如果布實現(xiàn)多態(tài),就需要換掉整個父類,這樣就可能牽一發(fā)而動全身.

另外實現(xiàn)接口也可以實現(xiàn)多態(tài),不同類擁有同名的方法.(這點有待商榷)

轉(zhuǎn)載于:https://www.cnblogs.com/shiqisir/p/10792140.html

總結(jié)

以上是生活随笔為你收集整理的面对对象编程(OOP, Object Oriented Programming)及其三个基本特性的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。