OO第四單元作業

1.作業的架構設計
(1)對于第一次作業中,要求我們實現關于類圖的查詢指令。
在這次作業中,主要采用的儲存方法是哈希表。
在查詢方法上,大多數要求諸如共有多少類等,利用哈希表進行查詢即可。
比較困難的一些指令在于,頂級父類以及類的全部接口這兩個。這兩個涉及到的更多在于圖的遍歷問題,所以筆者采取的方式是遞歸遍歷方式。
(2)對于第二次作業中,在繼承了類圖的查詢指令之外,還增添了關于順序圖和狀態圖的概念,以及三條規則的要求。
在儲存信息方面依舊采用的是哈希表,第二次作業和第一次作業的區別最大就在于是遍歷上了。第一次作業可以不采用遞歸,利用循環也能做,第二次作業就是較為純粹的圖的遍歷,我用的方法是深度優先遍歷的方式。
1616468-20190624204500019-472933976.png

2.四個單元中的架構設計及OO方法的理解演進
(1)第一個單元,基本上架構沒有什么特別深入的理解。作為新上手java的小白,第一感覺是java能夠提供的函數或者是方法容器比C多了很多,所以在寫第一單元的作業時,基本上都是在用C的思維來寫的。事實上是第一單元的作業在第三次作業的時候如果采用類的思維來寫得話,整體的速度會快很多
(2)第二個單元,多線程電梯問題。從邁入第二單元后,發現的問題就是,我用C寫不出多線程(可能是可以的,只是我比較菜)。所以就開始比較困難的學習多線程的知識,在網上找類似的問題,去研究代碼,最后在架構上,就開始利用一次一次作業的繼承,稍微修改一下就好很多。
(3)第三個單元,規格設計。規格設計,是我三個單元作業中完成最好的一次。在規格作業中,除了研究好的架構,受到CPU時間的限制,就開始研究程序的性能,會不會出現爆掉的情況,這個時候,我覺得就有點學到一點好的架構的感覺。
(4)第四單元,具體的感覺和第三單元差不多,但是難度會更高一點。

3.測試理解和實踐的演進
在第一單元中,由于之前的習慣,就比較喜歡用數據去測程序,但然后自己感覺差不多了,就交測評機了,但事實是,測評機的錯誤有時候是隱藏的數據,如果找不出那個類似的數據錯誤,就很奔潰。
在第二單元同上。
在第三單元中,因為引入了規格,在理解上就更好了,所以有了一個比較好的理解,構思程序起來就顯得比較清楚了,整體去測的時候也沒有數據的問題。在這一單元中,影響最大的是對于程序的性能方面,也就是程序的CPU時間和測評時間。
第四單元同上。
4.課程收獲
對于OO而言,其實算是學會了關于java上的一些方法,包括多線程,以及java的一些容器。也能夠看到很多大佬寫程序時候就很嚴謹,但其實對于我這種新手玩家來講,也不是說不想寫的嚴謹,就是確實是心有余而力不足,不過能夠初步的了解java,已經算是很大的收獲了。
5.建議
(1)以后能不能把實驗課不要放在單周下午啊,感覺就是上午上完,下午就得現場寫,就freestyle的感覺。
(2)關于互測這個問題,說實話講,兩天的時間去讀同房間人的代碼,能夠讀1個就很不錯了,畢竟你系大二下不只是OO,一周下來也就只有周三周四能休息了,如果愿意犧牲這個時間去找的話,也沒什么話講,今年感覺也不是很狼,但就是,可能會有種不舒服的感覺吧,幫同學找bug,讓自己加分,然后讓同學看著成堆的bug哭,也不太好。

轉載于:https://www.cnblogs.com/pikaqiu-orange/p/11079248.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/448623.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/448623.shtml
英文地址,請注明出處:http://en.pswp.cn/news/448623.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

傷錢傷感情 10件不能和親戚一起干的事兒

關于親戚和理財,網友小盒總結了下十大別和親戚干的事兒,干了之后保管既傷錢又傷感情: 1、別幫親戚炒股 賺了覺得你賺得不如以前吹的那么多,賠了就剩翻臉了,搭時間搭功夫還不落好。 2、別和親戚一起做生意 道理同…

李洋瘋狂C語言之選擇排序

選擇排序法 原理: 選擇法循環過程與冒泡法一致,它還定義了記號mini,然后依次把a[min]同后面的元素比較,若a[min]>a[j],則使kj. 最后看看ki是否還成立,不成立則交換a[k], a[i],這樣就比冒泡法省下許多無用的交換&a…

利用 git 提交代碼、git 簡單使用(拉取、推送、分支、合并)

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 1.安裝 git sudo apt-get install git 2.查看版本: git --version 我的版本信息: 3. 配置用戶名和郵箱 : …

如何在android studio中設置sdk path?

為什么80%的碼農都做不了架構師?>>> Press F4 into Project StructureLeft > SDKsPress , add another sdk轉載于:https://my.oschina.net/itfanr/blog/195714

面試題之第一部分(Python基礎篇) 80題

第一部分(python基礎篇)80題 為什么學習Python?* # 1. python應用于很多領域,比如后端,前端,爬蟲,機器學習(人工智能)等方面,幾乎能涵蓋各個開發語言的領域&a…

OpenCL的安裝與配置

Windows 步驟 1:在 http://developer.amd.com/pages/default.aspx根據相應的操作系統,下載最新的 AMD driver, AMD APP SDK。AMD APP SDK目前支持Windows VISTA[32][64]bit,Windows 7[32][64]bit操作系統。 步驟 2:如果已經安裝了…

解決:java.lang.IllegalStateException: ApplicationEventMulticaster not initialized

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 1. springboot 項目啟動時報錯: java.lang.IllegalStateException: ApplicationEventMulticaster not initialized - call …

李洋瘋狂C語言之求素數的方法

今天課上李洋老師講到求素數時,講了一種新的方法,一開始聽得我一臉懵逼,但當我理解的時候,眼前一亮,老師的算法省去了不少步驟,話不多說,附上題目:求100到200之間的素數。 輸入&…

面試官問我:平常如何對你的 Java 程序進行調優?

閱讀本文大概需要 10 分鐘。作者:張俊城, 郭理勇, 劉建來源:http://t.cn/AiCTERJzJava 應用性能優化是一個老生常談的話題,典型的性能問題如頁面響應慢、接口超時,服務器負載高、并發數低,數據庫頻繁死鎖等。尤其是在“…

c語言—變量

變量 存儲類型auto register static extern 變量在內存空間中的首地址&#xff0c;稱為變量的地址。 變量的定義形式&#xff1a;<存儲類型> <數據類型> <變量名> 存儲類型&#xff1a;auto register static extern auto (不寫默認是auto)局部變量auto 變量的…

李洋瘋狂C語言之關于自增自減遇到的一些問題

今天講到自增的時候&#xff0c;遇到個難點&#xff0c;單個的自增自減運算還是挺簡單的&#xff0c;但是如果是多個自增自減&#xff0c;就會變得比較麻煩&#xff0c;在windows環境和Linux環境中也會得到不一樣的結果&#xff0c;windows中比較簡單&#xff0c;他會將所有前綴…

Servlet的入門

什么是Servlet? Servlet是運行在服務端的java小程序,是sun公司提供的一套規范,用來處理客戶端請求.響應給瀏覽器的動態資源.Servlet是JavaWeb三大組件之一(Setvlet.Filter.Listener),且最重要. Servlet的作用? 用來處理從客戶端發送過來的請求,并對該請求做出響應. Servlet的…

快速部署ldap服務

快速部署ldap服務 作者&#xff1a;尹正杰 版權聲明&#xff1a;原創作品&#xff0c;謝絕轉載&#xff01;否則將追究法律責任。 一.LDAP概述 1.什么是目錄服務(1)目錄是一類為了瀏覽和搜索數據二十幾的特殊的數據庫&#xff0c;例如&#xff1a;最知名的的微軟公司的活動目錄…

expected at least 1 bean which qualifies as autowire candidate. Dependency a...

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 啟動 sringboot 項目報錯&#xff1a; expected at least 1 bean which qualifies as autowire candidate for this dependency. 原因…

李洋瘋狂C語言之break和continue的區別

1、break (1) 只能在循環體內和switch語句體內使用break語句。 (2) 當break出現在循環體中的switch語句體內時&#xff0c;其作用只是跳出該switch語句體。 (3) 當break出現在循環體中&#xff0c;但并不在switch語句體內時&#xff0c;則在執行break后&#xff0c;跳出本層…

Install OpenCL on Debian, Ubuntu and Mint orderly

Libraries – can’t have enough If you read different types of manuals how to compile OpenCL software on Linux, then you can get dizzy of all the LD-parameters. Also when installing the SDKs from AMD, Intel and NVIDIA, you get different locations for libra…

linux7 配置mysql5.7字符集編碼

linux 安裝后 mysql5.7 字符集默認是拉丁&#xff0c;不能存儲中文&#xff0c;修改步驟如下&#xff1a; 在 vim /etc/mysql/my.cnf 修改配置文件 在[mysqld] 下添加如下配置 character-set-serverutf8 init_connectSET NAMES utf8 重啟mysql服務 systemctl restart mysqld.…

解決:java.io.IOException: invalid constant type: 15

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 啟動 dubbo 服務報錯&#xff1a; java.io.IOException: invalid constant type: 15 我的情況是項目本身 是用的1.7 。而我自己用的…

liunx常用命令筆記

安裝軟件教程 linux安裝java&#xff1a;https://www.cnblogs.com/lamp01/p/8932740.html linux安裝mysql&#xff1a;https://www.cnblogs.com/daemon-/p/9009360.html linux安裝redis&#xff1a;https://blog.csdn.net/qq_30764991/article/details/81564652 linux安裝nginx…

李洋瘋狂C語言之編程實現統計某年某月份的天數

今天的題目&#xff1a;編程實現統計某年某月的天數 例如&#xff1a; 輸入&#xff1a;2017.7 輸出&#xff1a;31天 先附上我自己想的方法&#xff0c;由于幾個功能放一起太繁瑣&#xff0c;于是我想把他們分為三個函數&#xff0c;分別來實現這個功能&#xff1a; #incl…