久久99久久人婷婷精品综合_超碰aⅴ人人做人人爽欧美_亚洲电影第三页_日韩欧美一中文字暮专区_波多野结衣的一区二区三区_婷婷在线播放_人人视频精品_国产精品日韩精品欧美精品_亚洲免费黄色_欧美性猛交xxxxxxxx

剛接觸JAVA或者其他面向對象的思維以及類與對象

2023-11-27    分類: 網站建設

對于剛接觸JAVA或其他面向對象編程語言的朋友來說,一開始可能很難理解面向對象的概念以及類與對象的關系。筆者曾經參加過一次短期培訓班,講授java基礎知識。在課程結束時,許多學生沒有理解面向對象的思想以及類和對象的含義。這幾天有空,想整理一下思路,談談我對面向對象和類和對象的理解。

面向對象

首先百度會得到如下定義:

一切都是對象。通過面向對象的方法,將現實世界中的事物抽象為對象,將現實世界中的關系抽象為類并繼承,幫助人們實現對現實世界的抽象化和數字化建模。

我們知道編寫程序的目的是解決現實生活中的問題,編程中的思維方式也應該接近現實生活中的思維方式。面向對象編程就是為了達到以上兩個目的。它使編程工作更加直觀和易于理解。需要注意的是,這里提到的編程不僅包括設計過程,還包括面向對象

為什么說面向對象更接近現實生活?

想象一下,當我們向別人描述某事時,我們都會說什么? “它的嘴像鴨子”,“它有四個退縮”,“它的爪子上有網”,“它是哺乳動物,但它是卵生的。”

HAS A 和 IS A 的這種表達方式往往可以簡單有效地描述同一事物。 HAS A描述事物的屬性或行為,IS A描述事物的類別。

當我們結合這一系列屬性時,我們得到鴨嘴獸的類別。同時,哺乳動物這個詞簡潔明了地表達了所有哺乳動物的特征,而不是一一列舉。這是繼承特性的體現。同時,卵子發育是多態性的一種表現。

這是面向對象思維的特點,它提取(抽象)有用的屬性和行為(丟棄那些不需要關系的)并組織(封裝)成一個類。在這個過程中,你可能會發現很多屬性或者方法和另一個類是一樣的,那么你可以使用繼承來避免重復(當然這個過程也可能是你設計了每個類之后,發現它們有共同點,然后提取基類)。更重要的是,繼承不能照原樣復制。我們可以通過重載來實現相同行為或屬性的唯一實現。此功能稱為多態性。比如同樣的生產行為,實現方式從胎生變為卵生。請大聲朗讀并牢記面向對象的四個特點:

抽象、封裝、繼承、多態,與早期結構化編程相比

早期結構化編程是面向過程的(功能)。換句話說,程序由一組函數組成數據結構用面向對象方法與c++描述,調用者作為函數的參數傳入。在面向對象的程序中,對象是主體,程序由對象的集合組成。一個對象包含一系列符合設計的函數,供其他對象調用。所以它可能很抽象,

比如我們在設計五子棋游戲的時候,流程化的設計思路就是先分析問題:1、開始游戲,2、黑子先走,3、畫圖,4、判斷輸贏,5、轉白子,6、畫屏,7、判斷勝負,8、返回第2步,9、輸出最終結果。用單獨的函數分別執行以上步驟,問題就解決了。

面向對象的設計是從另一種思維方式解決問題。整個五子棋可以分為:1、黑白,兩方的行為完全一樣,2、棋盤系統,負責畫屏,3、rule系統,負責判斷犯規,獲勝或輸等。第一類對象(玩家對象)負責接受用戶輸入并通知第二類對象(棋盤對象)棋子布局的變化。棋盤對象負責在接收到棋子的變化后在屏幕上顯示變化,同時使用前三種對象(規則系統)來確定對局。 (以上例子來自國內某知名問答社區)

隨便寫點代碼,看看就行,別太認真...

/** 玩家類 **/ public class player { String name; //棋手名稱 boolean isFirst; //是否先手 int color_flag; //代表顏色 0-白 1-黑 table table;//棋盤對象 public player(String name,boolean isFirst;int color_flag){ this.name=name; this.isFirst=isFirst; this.color_flag=color_flag; } /** 下棋,x,y為落子坐標 **/ public void play(int x,int y) throws Exception{ if(this.table==null){ throw new IllegalArgumentException("玩家還未注冊到棋盤!"); } table.setNewpieces(x,y); } public void settable(table table){ this.table=table; } } /** 棋盤類 **/ public class table{ List playerList=new ArrayList(); Referee referee ; public table(){ referee =new Referee(this); } /** 注冊玩家 **/ public void registplayer(player player) throws Exception { //檢測棋盤中的玩家是否已滿,先手玩家和玩家選色是否沖突。 ....... playerList.add(player); player.settable(this); } /** 落子 **/ public void setNewpieces(int x , int y){ //重新繪制棋盤 ...... //調用裁判對象,判斷結果 if(referee.isEnd){ End(); } } public void End(){ ....... } } /** 裁判類 **/ public class Referee(){ table table; public Referee(table table){ this.table=table; } public boolen isEnd(){ //判斷輸贏 .... return false; } }

但是,其實通過上面的例子代碼,不難發現,即使我們使用面向對象的方式,也已經實現了上面例子中提到的幾個象棋過程,只不過過程是封裝的進入類的方法。所以其實面向對象和面向過程不是編程的區別(需要實現的業務邏輯量不會變),而是設計的區別!

類和對象

類是抽象的,而對象是具體的

如何理解上面的單詞?例如,鴨嘴獸是一種類型,特定的鴨嘴獸 A 和鴨嘴獸 b 是對象。在 JAVA 中,對象是通過 new 關鍵字聲明的。再比如,《紅色警戒》中的美軍士兵是一種單位,點擊后從軍營中射出的那個就是目標:

類的定義是一個模板,它描述了一類對象的屬性和行為。類通常是抽象的,沒有實體。哺乳動物是屬的概念,是抽象的。實際上,沒有哺乳動物這樣的實體。只有具體的東西,比如老虎和獅子。在編程工作中應用這種思維方式,我們將程序中的實例抽象為類。例如,如果一個系統中的用戶有三、李四,我們將它們抽象為類,或者稱它們為命名數據類型。

對象是基于它們所屬的類模板創建的真實事物。在程序中,我把這個有形的東西稱為實例。我們給它的屬性賦予特定的值,讓它成為張三或李斯。在內存中,對象代表特定的數據。

我上面說的都是概念性的東西,下面說說實際應用過程中的理解。

在數據類型方面

以java為例,數據類型分為基本數據類型和引用數據類型。

基本數據類型為byte,,,int,long,,char,;其他需要使用new關鍵字賦值的都是引用數據類型。類和對象指的是被引用數據的類型和值(這里指的類不僅包括接口、數組、枚舉和注解)。引用是指對內存地址的引用,后面講內存的時候會詳細討論這個。看下面的代碼:

int a =1; person b=new person();

a 和 b 都是無意義的變量名。需要注意的是:a的類型是基本數據類型int 為1,b的類型是引用類型,指的是對象new()。我們常說對象xx,比如這里的對象b。但實際上b只是一個對象的引用,真正的對象是new()!

需要注意的是,它也是一種引用數據類型,但是因為使用率非常高,所以可以像JVM的基本數據類型一樣使用:a = "abc";等同于 a = new ("abc") ;

簡而言之,簡單來說,類是指引用數據的類型,對象是具體的賦值。為了更深入的理解,我們需要在下面解釋這個引用是如何反映的。

什么是引用(來自記憶)

要深入理解什么是類,什么是對象,什么是引用,都離不開Java的內存使用。

在Java中,內存大致分為棧()和堆(heap)(之所以粗略是因為它還包括其他幾個部分,這里就不贅述了)。我不會在這里詳細說明什么是堆棧和堆。有時間我會整理一篇文章詳細講解。

這里只講一點:在Java中,基本的數據類型和對象引用是存放在棧()中,而對象是存放在堆(heap)中的,比如下面的代碼:

int a=1; person p;

內存中的狀態大致如下:

int a = 1 直接在棧中開辟空間,沒有實例化的p的值為null,因為沒有有效的內存地址來引用它。而當代碼修改如下:

int a =1 ; person p = new person();

內存中的狀態大致如下:

p=new();使p的值=即對象的地址new();在堆中。所以不難理解前面提到的對象的引用,所謂引用其實就是對堆內存地址的引用。總結

隨著計算機技術的不斷進步,現在計算機不僅僅是用來解決計算問題,而是用來解決越來越接近現實生活的復雜問題。面向對象正是這一發展過程的產物,它使編程工作更貼近人們的思維方式,從而大大提高了編程效率。我們必須明白的是,面向對象不是一種編程方式,而是一種編程思維方式,包括分析、設計、編碼等。在面向對象編程中數據結構用面向對象方法與c++描述,程序的基本單元是對象,數據被封裝在對象中。類是一個對象模板,它是一個預定義的結構。所謂類的實例化,就是將數據填充到模板中。

最后,我的文筆不是很好,需要改進。寫文章和博客的大目的是梳理自己的想法,其次是分享自己的想法。希望大家多多投訴,共同進步。

分享文章:剛接觸JAVA或者其他面向對象的思維以及類與對象
本文路徑:http://www.js-pz168.com/news18/296968.html

成都網站建設公司_創新互聯,為您提供靜態網站響應式網站服務器托管網站導航云服務器用戶體驗

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

網站托管運營
久久99久久人婷婷精品综合_超碰aⅴ人人做人人爽欧美_亚洲电影第三页_日韩欧美一中文字暮专区_波多野结衣的一区二区三区_婷婷在线播放_人人视频精品_国产精品日韩精品欧美精品_亚洲免费黄色_欧美性猛交xxxxxxxx
在线看一区二区| 久久综合精品国产一区二区三区| 欧美在线免费视屏| 欧美一卡在线观看| 国产无人区一区二区三区| 亚洲欧美日韩国产综合在线 | 欧美v亚洲v综合ⅴ国产v| 国产无遮挡一区二区三区毛片日本| 亚洲欧美偷拍三级| 日韩精品国产精品| 久久成人久久爱| 91在线视频播放| 久久综合九色99| 在线免费观看一区| 欧美变态tickle挠乳网站| 亚洲特黄一级片| 免费精品99久久国产综合精品| 成人av免费网站| 韩日午夜在线资源一区二区| 色av成人天堂桃色av| 亚洲精品一区二区三区蜜桃下载| 亚洲少妇最新在线视频| 琪琪一区二区三区| 91香蕉视频在线| 亚洲三区四区| 欧美成人女星排行榜| 一区二区三区中文字幕在线观看| 精品一区二区三区在线观看| 国产精品传媒毛片三区| 色综合久久88色综合天天| 精品国产免费人成在线观看| 一区二区三区不卡在线观看| 久久91精品久久久久久秒播| 风间由美久久久| 在线观看成人免费视频| xnxx国产精品| 亚洲一区在线观看免费观看电影高清| 国产老肥熟一区二区三区| 激情欧美一区二区三区中文字幕| 亚洲一区二区三区免费观看| 精品福利二区三区| 日日摸夜夜添夜夜添亚洲女人| fc2成人免费人成在线观看播放| 日韩精品第一页| 欧美不卡一区二区三区四区| 亚洲国产三级在线| www.在线成人| 欧洲视频一区二区三区| 日韩欧美一级二级三级久久久| 亚洲精品五月天| 成人黄动漫网站免费app| 日韩一区不卡| 国产日本欧洲亚洲| 久久精品国产第一区二区三区| 国产视频一区二区不卡| 欧美妇女性影城| 亚洲一区在线观看网站| 99re热视频精品| 在线观看一区不卡| 亚洲精品视频自拍| 99精品视频中文字幕| 色老汉一区二区三区| 欧美激情在线看| 国产伦精品一区二区三区视频青涩| 欧美一区激情视频在线观看| 精品不卡在线视频| 看片的网站亚洲| 日本福利一区二区三区| 欧美夫妻性生活| 亚洲成人激情综合网| 国产91精品一区二区绿帽| 91麻豆精品国产91久久久资源速度 | 色综合网色综合| 国产亚洲一区字幕| 国产精品中文有码| 一区二区三区四区欧美| 中文字幕亚洲精品在线观看| 成人午夜av影视| 欧洲精品一区二区三区在线观看| 亚洲免费三区一区二区| 91免费版在线看| 51精品国自产在线| 免费高清在线一区| 欧美一区观看| 国产精品无圣光一区二区| 国产a级毛片一区| 中文字幕一区二区三区四区五区六区 | 欧洲亚洲一区二区| 国产欧美精品一区二区色综合朱莉| 国产精品一区二区在线播放| 色天天综合久久久久综合片| 一区二区在线免费| 操人视频欧美| 久久午夜国产精品| 国产成人亚洲综合a∨猫咪| 丝袜国产日韩另类美女| 欧美日韩电影一区二区三区| 中文字幕欧美日本乱码一线二线| 成人中文字幕在线| 欧美日韩国产在线观看| 日韩av电影免费观看高清完整版在线观看| 欧美精品一区在线发布| 国产精品久久久久一区二区三区| 99riav久久精品riav| 日韩手机在线导航| 久久se精品一区二区| 最新日韩三级| 日日夜夜一区二区| 亚洲综合第一| 成人欧美一区二区三区小说| 91精品国产99久久久久久红楼 | 日本婷婷久久久久久久久一区二区| 国产精品久久久久影院老司| 99久久自偷自偷国产精品不卡| www国产成人免费观看视频 深夜成人网 | 精品亚洲免费视频| 欧美在线观看禁18| 狠狠狠色丁香婷婷综合激情| 欧美午夜免费电影| 蜜桃免费网站一区二区三区 | 亚洲午夜在线电影| 日韩中文字幕一区二区| 亚洲免费观看视频| 久久96国产精品久久99软件| 国产精品污污网站在线观看| 国产精品加勒比| 中文字幕一区在线观看视频| 久久精品ww人人做人人爽| 亚洲精品v日韩精品| 日韩久久久久久久| 五月婷婷另类国产| 欧美无人高清视频在线观看| 激情小说欧美图片| 欧美一区二区免费视频| 成人精品免费看| 在线不卡的av| 国产电影一区二区三区| 日韩色在线观看| 不卡视频一二三四| 国产亚洲成aⅴ人片在线观看 | 国产一区二区在线观看视频| 91精品国模一区二区三区| 国产精品乡下勾搭老头1| 久久在线免费观看| 九九九九久久久久| 丝袜美腿亚洲色图| 91精品午夜视频| 成人欧美一区二区三区视频 | 欧美aaa在线| 欧美一级片在线看| 亚洲一区二区五区| 在线免费观看一区| 成a人片亚洲日本久久| 国产精品福利一区| 中文字幕欧美日韩一区二区| 国产成人精品免费网站| 国产日韩欧美高清在线| 日韩福利一区二区三区| 精品一区二区三区免费视频| 精品不卡在线视频| 欧美日韩精品不卡| 麻豆极品一区二区三区| 精品国产凹凸成av人导航| 欧美xxxx黑人又粗又长精品| 日韩不卡在线观看日韩不卡视频| 日韩午夜在线播放| 久久大片网站| 久久国产精品区| 久久久久久一二三区| 日韩偷拍一区二区| 国产黄色成人av| 亚洲丝袜自拍清纯另类| 欧美在线一二三| 91九色蝌蚪成人| 亚洲成年人影院| 日韩三级伦理片妻子的秘密按摩| 国产一区二区三区黄| 日本中文字幕不卡| 2020国产精品自拍| 色女人综合av| 成人在线视频一区二区| 一区二区三区影院| 欧美电影影音先锋| 精品久久久久久综合日本| 久久精品99国产精品| 国产欧美日韩视频一区二区 | 日韩精品乱码免费| 久久久激情视频| 一本到不卡精品视频在线观看| 99re这里只有精品视频首页| 亚洲18色成人| 欧美精品一区二区三区久久久| 日韩欧美视频第二区| 国产aⅴ综合色| 亚洲午夜在线电影| 精品不卡在线视频| 色狠狠综合天天综合综合| 99免费在线观看视频| 奇米影视一区二区三区小说| 国产精品污污网站在线观看|