免费在线a视频-免费在线观看a视频-免费在线观看大片影视大全-免费在线观看的视频-色播丁香-色播基地

重學Java(三):什么是面向對象

:2019年09月05日 CSDN學院
分享到:

我相信,看到標題后的你一定很好奇,究竟什么樣的Java程序員算是在“備孕期”呢?在我看來,“備孕期”主要指那些初入Java編程的新人,他們正下足功夫準備,以求在10個月后以高薪的姿態進入一家軟件公司...

我相信,看到標題后的你一定很好奇,究竟什么樣的Java程序員算是在“備孕期”呢?在我看來,“備孕期”主要指那些初入Java編程的新人,他們正下足功夫準備,以求在10個月后以高薪的姿態進入一家軟件公司——此時正是職業履歷的開端——比如說,簡歷上的自我介紹是:我從2018年10月24日(程序員節)進入一家“青苗科技工作室”(我組織的一個接私活的小團隊;有Web全棧、安卓等方面的項目可以私聊我哦),正式開始編寫為自己帶來第一桶金的Java代碼…距今,我已經有8年的Java編程經驗了…

一、什么是OOP?

學習Java的程序員第一個要了解的基礎知識就是:什么是OOP?讓我來舉一個生動的例子,知道齊天大圣孫悟空吧?這只孫猴子就是一個對象,關鍵看你要把他看成是一只猴子,還是一個神仙。你知道Dota嗎?在這款推塔殺人的游戲當中,就有齊天大圣孫悟空這個角色,貌似歐洲戰隊玩的很溜,反倒國內戰隊在比賽中使用的頻率很低。

來看一段代碼吧:

public class SunWukong {

   private Integer healthPoint;// 生命值

   private Integer magicPoint;// 魔法值

   /**

   * 棒擊大地

   */

   private void rodHittingTheEarth() {

   }

   /**

   * 叢林之舞

   */

   private void jungleDance() {

   }

}

12345678910111213141516171819

當我們把孫悟空看成一個對象的時候,編程就變得簡單了起來;我們給他兩個屬性(生命值和魔法值),給他兩個技能(棒擊大地和叢林之舞)。假如我是LGD戰隊的357,一名聰明絕頂的好教練,主要負責賽前的BP工作和戰術的研發。現在,是TI9的小組賽,LGD對陣OB的第一局。我,357在BP階段先BAN掉了比較克制孫悟空的獸王和發條技師,然后在選人階段(PICK)挑選了水晶室女這個冰美人來和孫悟空這個一身毛的家伙搭配。那么,在我選孫悟空的這個階段,就等于說創建了一個孫悟空的對象,也就相當于Java中的new SunWukong()。選好了孫悟空,讓誰來玩呢?自然是我們隊中號稱世界第一中單的maybe啊。

OOP其實并不難懂,不過就是英文單詞Object-Oriented(導向的、面向的意思) Programming的首字母縮寫嘛。OOP給我們一種觀念,就是“萬物皆對象”——我們可以盡可能的發揮想象,把現實中的物(包括動物、人物、甚至無生命的事物)抽象為一種計算機語言(比如Java)能懂的模型,那么,接下來我們讓計算機來解決現實中的問題就變得簡單了起來。

OOP的強大之處就在于,它使我們不必依照計算機的限制來模擬現實中的物;我們可以基于現實中要解決的問題來構建對象,使這個對象具有現實中物所具有的特征(對應Java中的屬性)和行為(對應Java中的方法)。物不同,對象所具有的屬性和方法就會不同。

還拿Dota中的英雄來說吧。所有的英雄都可以抽象為一個類(對象是類的實例化),這個類包含了英雄對應的成長屬性(生命值、魔法值、傷害值、護甲值等等),以及對應的技能行為。那么,怎么區分每個英雄的不同呢?比如說冰美人水晶室女是一個魔法輔助類的英雄,因此,她的初始化生命值自然比敏捷類的齊天大圣低一些,但魔法值高一些;另外,他們的技能也完全不同——孫悟空拿著一根金箍棒,所以他的技能就有棒擊大地;水晶室女拿著一根法杖,所以她的技能就有冰霜新星、冰封禁制等。

在我看來,OOP概念的提出,是編程界的一個重要的里程碑。它給我們以下重要的啟示:

萬物皆對象。

程序是對象相互協作的一個過程,他們通過發送消息來告知彼此要做的事情。

每個對象都有自己的類型,也就是“每個對象都是某個類(class,抽象數據類型)的一個實例”。盡管每個對象都是唯一的(在內存中擁有一個唯一的地址),但具有相同狀態(屬性、變量)和類似行為(方法)的對象可以歸屬為一個類。

每個對象都提供了某種服務。比如說孫悟空可以跳上樹上(叢林之舞),然后再跳下來對區域內的敵人造成減速和傷害(乾坤跳躍)。

二、什么是繼承?

通俗來說,可以這么來理解繼承(extends)——小明他爸是個七品芝麻官,那么小明就是個管二代;小明他爸當年走過草地,越過大山,一下子步行了兩萬五千里(換成現在的微信運動排名,絕對天天第一),那么小明就是個宏二代;小明他爸有三畝地,拆遷后分了10套房,那么小明就是chai二代。

再繼續說下去:小華和小華他爸都是手藝人,都特別喜歡畫畫,小華他爸是自學成才,小華應該算是繼承了他爸的好基因,屬于天才型;等小華長到20歲的時候,他覺得不能就這么一直和他爸一樣只畫風景畫,那樣他取得的成就也不會高過他爸;于是,他改畫人像畫,經過十年的努力,小華在藝術界的地位甚至超過了他爸,人稱“華·芬奇”。按程序員的邏輯思維來看,小華這個舉動可以稱作為“覆蓋(overriding)”,使子類和父類產生差異的一種方法。

小華畫呀畫呀,就這么一直畫到了40歲;小華終于感到畫畫再也滿足不了他了,他突然愛上Java編程,并立志成為一名“黑客”;于是就有了“黑客與畫家”的故事。按程序員的邏輯思維來看,小華成為“黑客”這個行為可謂特立獨行,這使得小華和他爸不再只是純粹的替代關系(is-a的關系),變成了一種相似的替代關系(他們都還是畫家,但小華同時又是一名黑客,is-like-a的關系)。

在Java中,所有的類最終的父類都是Object類,這被稱為“單根繼承”——保證了多有對象都具備了某些功能。比如說最常見的toString()方法:

   public String toString() {

       return getClass().getName() + "@" + Integer.toHexString(hashCode());

   }

123

三、one more thing?

nothing。

沒有了,我認為一篇文章的最佳字數在2000到3000,這篇文章寫到這里已經2600多字了。所以,是時候收尾了:Java是一門面向對象的編程語言,因此,“備孕期”的Java程序員一定要學會“抽象”,把現實問題抽象為一個個立體化的對象,這樣所有的問題就會按照人的邏輯來處理,而不是計算機的邏輯。

————————————————

版權聲明:本文為CSDN博主「沉默王二」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。

原文鏈接:https://qingmiaogu.blog.csdn.net/article/details/83305342

[我要糾錯]
文:王振袢&發表于江蘇
關鍵詞: 相信 看到 標題 后的 一定

來源:本文內容搜集或轉自各大網絡平臺,并已注明來源、出處,如果轉載侵犯您的版權或非授權發布,請聯系小編,我們會及時審核處理。
聲明:江蘇教育黃頁對文中觀點保持中立,對所包含內容的準確性、可靠性或者完整性不提供任何明示或暗示的保證,不對文章觀點負責,僅作分享之用,文章版權及插圖屬于原作者。

點個贊
0
踩一腳
0

您在閱讀:重學Java(三):什么是面向對象

Copyright?2013-2024 JSedu114 All Rights Reserved. 江蘇教育信息綜合發布查詢平臺保留所有權利

蘇公網安備32010402000125 蘇ICP備14051488號-3技術支持:南京博盛藍睿網絡科技有限公司

南京思必達教育科技有限公司版權所有   百度統計

主站蜘蛛池模板: 亚洲一区二区免费视频 | 日本欧美一区二区 | 日韩在线网 | 天天综合天天综合 | 国产欧美三级 | 青草福利视频 | 999精品视频这里只有精品 | 精品视频免费播放 | 久操视频免费观看 | 亚洲妇人成熟性成熟网站 | 欧美日韩精品一区二区三区视频 | 亚洲成a人片 | 免费又黄又猛又爽的大片 | 一级黄色夫妻 | 婷婷国产天堂久久综合五月 | 最近中文字幕国语完整视频 | 日韩大片| 草草在线免费视频 | 欧美中文字幕在线 | 激性欧美激情在线aa | 成人午夜在线观看国产 | 久久精品最新免费国产成人 | 一个人看www在线高清免费看 | 综合丁香| 国产视频1区 | 曰本三级香港三级三级人 | 色偷偷人人澡久久天天 | 国产精品1024免费看 | 黄漫画黄网站在线观看 | 色婷婷色综合激情国产日韩 | 另类视频在线 | 国产青草视频免费观看97 | 国产欧美在线观看视频 | 久久大香伊蕉在人线国产联合 | 大香网伊人久久综合网2021 | 青久在线 | 香蕉精品一本大道在线观看 | 日本日韩欧美 | 激情 黄 +色+成+人 | 免费一级欧美片在线观免看 | 六月丁香啪啪六月激情 |
最熱文章
最新文章
  • 阿里云上云鉅惠,云產品享最低成本,有需要聯系,
  • 卡爾蔡司鏡片優惠店,鏡片價格低
  • 蘋果原裝手機殼