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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

  • 面向對象編程(OOP, Object Oriented Programming)是一種編寫程序的方法,旨在提升開發大型程序的效率,使程序易于維護 。

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

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

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

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

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

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

/** 父類*/ public class Parent {public int age = 40;public void eat() {System.out.println("吃飯");}public void say() {System.out.println("parent say");}} /** 子類,實現簡單的繼承動作*/ 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.多態
多態是指針對同一種消息,不同的對象可以進行不同的操作(允許不同子類對同一消息做出不同的響應)
多態又分編譯時多態和運行時多態:
編譯時多態的實現方式是方法的重載,方法重載發生在同一個類種,同名的方法擁有不同的入參(參數個數或類型不同)視為重載.這樣在編程階段程序員可以根據不同的入參調用同名方法.

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);} }


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

/** 子類,實現簡單的繼承動作*/ 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();} }

測試結果

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

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

轉載于:https://www.cnblogs.com/shiqisir/p/10792140.html

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。