免费在线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-2025 ?JSedu114 All Rights Reserved. 江蘇教育信息綜合發布查詢平臺保留所有權利

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

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

主站蜘蛛池模板: dy888午夜国产精品不卡 | 蝌蚪网在线观看 | 国产精品亚洲欧美日韩一区在线 | 色综合久久88色综合天天提莫 | 亚洲地址一地址二地址三 | 狠狠大日本亚洲香蕉亚洲 | 手机看片日韩日韩国产在线看 | 成人网址在线观看 | 国产精品免费小视频 | 国产高清精品自在久久 | 亚洲一区无码中文字幕 | 小明免费看视频 | 欧美青青 | 免费国产好深啊好涨好硬视频 | 免费一区二区三区在线视频 | 好男人www社区影视免费观看 | 一道本在线免费视频 | 亚洲国产综合精品 | 免费看黄的动漫永久免费 | 极品美女啪啪无套 | 午夜视频在线观看按摩女 | 中文字幕看片在线a免费 | 男人香蕉好大好爽视频 | 免费福利午夜影视网 | 国产日本视频 | 成人影院在线观看免费 | 操天天操 | 欧美日韩国产综合在线小说 | 中文国产在线观看 | 尤物视频一区二区 | 黑丝裸足 | 最近免费中文字幕大全免费版视频 | 欧美在线视频精品 | 手机看片日韩欧美 | 九九亚洲精品自拍 | 天天躁狠狠躁夜躁2021 | 国产国语一级a毛片高清视频 | 久热精品视频 | 黄色网址在线看 | 国产精品亚欧美一区二区三区 | 91啪国自产中文字幕在线 |
最熱文章
最新文章
  • 阿里云上云鉅惠,云產品享最低成本,有需要聯系,
  • 卡爾蔡司鏡片優惠店,鏡片價格低
  • 蘋果原裝手機殼