OO第一單元總結

OO第一單元總結

第一次作業總結

?

這是我第一次接觸Java和面向對象思想,最一開始,我建立了簡單的類和對象的概念,多虧了第一次作業難度和復雜度較低,我才沒有崩掉hhh。 第一次作業我只分了三個類,一個main,一個多項式,還有項。項通過加號連接起來形成多項式。由于求導規則簡單,我將求導放在了項類里,成為一個方法。 對于表達式格式的分析判斷,根據自己項和多項式的關系,除了個別必要的判斷,我將大多數的判斷都分在了項的匹配中。 這樣做是最簡單的想法,但是擴展性較差,以至于我在做第二次作業時進行了重構。

第二次作業總結

?

第二次作業和第一次相比,增加了因子的種類,因此,如果利用第一次作業的架構,可能不太好實現,而且考慮到第三次作業的可擴展性,我將求導法則和頂層的一些格式判斷分離了出來,并且創建了一條鏈式的類的構造:函數因子->項->表達式。即因子用乘號連接起來形成項,項則由加號連接起來形成表達式。 基于這樣的鏈式構造,我的求導法則也利用了鏈式遞歸的方法,即多項式的求導的返回值是對項的求導的和,項的求導返回的是通過乘法法則連接起來的函數因子的求導結果。 對于格式的判斷,我沿用了第一次作業的方法。

第三次作業總結

?

得益于第二次作業的思考,我的第三次作業基本沿用了第二次作業的架構。相比于第二次作業,我只是更改了格式判斷的方法以及增加了因子的種類。但是可以看到,復雜度特別高,這直接導致了兩個點超時。

綜合總結

收獲

綜合來看,通過本單元的學習,我初步了解了面向對象的思維,更重要的是,我對代碼的可擴展性有了新的認識。 對于面向對象思想,最大的收獲是“Everything?is?an?object.”,學習到了如何分類的方法,但是還有許許多多不足,就?以本次作業為例,求導法則和格式判斷可以改進為靜態方法,表達式,項,因子可以形成繼承關系,而因子可以改成一個抽象類,把具體的五類因子分別寫成類等等,基于這些想法,我現在正在進行重構和改進代碼。 對于代碼的可擴展性,我認為應該更注重一般性普通性的想法,而不能因為想到滿足某一次作業取巧方法而竊喜。每次寫代碼前應該進行充分地思考一般性和可擴展性。

bug

對于找bug這一點,確實值得我反思。每次互測被找出來的bug不是一些很邊界的數據,反而是一些很常規的數據。這些bug其實通過覆蓋性測試可以很容易找出來。前兩次的bug主要是格式錯誤考慮不全導致。 對于第三次作業,陷入了超時的坑,導致兩個強測點沒過,這一點應該是我代碼架構的問題,如果用到繼承方法,我的許多方法都能夠得到化簡,這個是知識儲備不足和面向對象思維的鍋(太菜了)。

Applying?Creational?Pattern

三次作業我用到的都是單例模式,這是我在沒有學會熟練使用其他的面向對象的特性的情況下不得已選擇的模式,而就我要重構的第三次作業的想法而言,設計模式利用的則是工廠模式。

轉載于:https://www.cnblogs.com/hbstudy/p/10608173.html

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

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

相關文章

接口開發指的是什么_企業在什么情況下要選擇定制開發軟件

軟件定制開發是指軟件開發商依據我們的需求停止量身定制的開發,軟件定制開發相關于單純產品的施行周期長、本錢高、風險大。假如根據定制開發的工作量或水平來分,我們能夠分為完整定制開發和局部定制開發,完整定制開發是指軟件開發公司依據我…

python2x 安裝 psutil

安裝psutil模塊: wget https://pypi.python.org/packages/source/p/psutil/psutil-2.0.0.tar.gz --no-check-certificatetar -zxvf psutil-2.0.0.tar.gzcd psutil-2.0.0python setup.py install轉載于:https://www.cnblogs.com/yingdiblog/p/7347325.html

c++編碼風格指南_帶回家的編碼挑戰的基本指南

c編碼風格指南by Jane Philipps簡菲利普斯 帶回家的編碼挑戰的基本指南 (The Essential Guide to Take-home Coding Challenges) 介紹 (Introduction) Hi, I’m Jane. I wrote this guide because I want to help others with non-traditional backgrounds succeed on take-ho…

計算機沒有搜索篩選功能,EXCEL中篩選工具怎么沒有搜索功能

EXCEL中篩選工具怎么沒有搜索功能卡飯網本站整理2018-04-01excel是一款數據處理工具,可以在眾多的數據中找到想要的經過處理之后的數據,而最直接方便的功能就是篩選。請閱讀下文,了解如何對數據進行篩選。如下圖所示的學生成績中,…

談談最短路徑

最近遇到一些個問題,有關最短路徑算法,又稱A算法轉載于:https://www.cnblogs.com/swell/p/6108850.html

51nod 1851 俄羅斯方塊(思維題)

分析&#xff1a;假設n>m&#xff0c;m為1,2單獨討論下&#xff0c;否則可以用第二行第一個把所有黑塊搞到2x2的格子里&#xff0c;不斷用凸出來的那個角一列一列把黑的變白就行了。然后只要黑色有偶數塊都可以構造出來。復雜度O(nm) #include <iostream> #include &l…

python發郵件詳解_python實現發送郵件詳解

[Python]代碼#_*_encoding:utf-8_*_#script for python3.2#-------------------------------------------------------------------------------# Name: 發送郵件# Purpose:## Author: QiuChangJie## Created: 10/09/2012# Copyright: (c) cj.qiu 2012# Licence: #------------…

gprof, Valgrind and gperftools - an evaluation of some tools for application level CPU profiling on

2019獨角獸企業重金招聘Python工程師標準>>> In this post I give an overview of my evaluation of three different CPU profiling tools: gperftools, Valgrind and gprof. I evaluated the three tools on usage, functionality, accuracy and runtime overhead…

xp計算機屬性打不開,xp系統我的電腦右鍵屬性打不開怎么辦

在使用xp系統過程中,我們經常需要打開“我的電腦”右鍵屬性,查看系統信息以及進行虛擬內存、性能方面的設置,不過有深度技術ghost xp sp3純凈版用戶右鍵點擊我的電腦,發現右鍵菜單中的“屬性”打不開,出現這個問題通常是注冊表禁用了這個屬性,下面小編跟大家介紹xp系統我的電腦…

狀態機學習(二)解析INI文件

題目來自<系統程序員成長計劃> 作者:李先靜. 狀態變化如下 #include <string> #include <iostream> using namespace std;string s "[GRP]\n\ name def \n\ data 2016.11.29 \r\n\ ; this is a comment \r\n\ str this is a test \n\ [zhangshan]…

接口之用例編寫、驗證

一、用Excel編寫用例&#xff08;xlsx格式&#xff09; 截圖僅供參考&#xff0c;實際用例編寫需要根據實際情況來。 二、用例加載、驗證 1、數據的加載 import xlrd,xlwt #python操作excel主要用到xlrd和xlwt這兩個庫&#xff0c;即xlrd是讀excel&#xff0c;xlwt是寫excel的庫…

計算機二級word真題書娟,計算機二級word試題.docx

PAGEPAGE # / 80Word試題在考生文件夾下打開文檔 word.docx &#xff0c;按照要求完成下列操作并以該文件名( word.docx )保存文檔。某高校為了使學生更好地進行職場定位和職業準備&#xff0c;提高就業能力&#xff0c;該校學工處將于2013 年 4月 29 日(星期五) 19:30-21:30 在…

農場js_通過銷售農場商品來解釋Web API

農場jsby Kevin Kononenko凱文科諾年科(Kevin Kononenko) 通過銷售農場商品來解釋Web API (Web APIs explained by selling goods from your farm) If you have been to a farmer’s market or farm stand, then you can understand the concept of an application programmin…

python安裝pyqt4_windows下安裝PyQt4

第一步&#xff1a;確認自己電腦上的Python版本。然后下載對應的.whl文件下載第二步&#xff1a;https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyqt4上下載對應版本版本的.whl文件。例如cp-27-cp27m就代表是python2.7的版本。如果要下載python3.6且電腦是64位的則需要下載PyQt…

repcached配置與簡單測試

安裝libevent-devel進行configure。安裝在文件夾/usr/local/repcached下編譯安裝完畢啟動11211節點啟動11212節點編寫文件驗證復制&#xff08;分別向1、2節點存入數據&#xff0c;驗證復制&#xff09;ruby執行結果

為Activity設置特定權限才能啟動

1.在AndroidManifest文件中&#xff0c;聲明一個權限&#xff0c;并在activity中添加屬性 <!--聲明權限&#xff0c;權限名一般為包名permission類名 --><permission android:name"com.jikexueyuan.notepad.specpermission.permission.MyAty"/> <acti…

nashPay項目遇到的問題

瀏覽器提示錯誤代碼&#xff1a; Failed to load resource: net::ERR_CONNECTION_REFUSED 出現這個問題是core服務異常&#xff0c;重啟core服務可解決 layUi 下拉框賦值 var loadZhongduan function (data) { admin.req({ url: baseUrl "shoukuanZhongduan/getList&quo…

使用Express在Node.js中實現非常基本的路由

by Pau Pavn通過保羅帕文(PauPavn) 使用Express在Node.js中實現非常基本的路由 (Really, really basic routing in Node.js with Express) The goal of this story is to briefly explain how routing works in Express while building a simple — very simple — Node app.這…

計算機抄作通用模塊,通用命令行模塊的設計及實現

摘要&#xff1a;自從上個世紀八十年代以來,圖形用戶界面得到快速發展,計算機逐漸進入各類企業,家庭,其應用得到廣泛的推廣.對比起命令行界面來說,圖形界面在交互性上有著不可比擬的優勢.但在一些需要執行大量重復性工作的方面,例如在系統管理上,命令行界面提供的腳本功能,能夠…

python讀寫磁盤扇區數據_C++-如何直接讀取Windows磁盤扇區的數據?

1.通過CreateFile系列來完成讀寫扇區可以通過CreateFile打開磁盤邏輯分區&#xff0c;還要通過SetFilePointer以文件操作的方式把指針移到要操作的磁盤扇區開始處&#xff0c;在定位到要訪問的扇區開始位置后就可以通過ReadFile或WriteFile函數實施相應的讀寫訪問了&#xff0c…