• 為什麼重構,重構的是什麼,什麼時候重構,怎樣重構
• 重構:大規模重構,小規模重構
• 通過單元測試保證重構的質量
根據上面的**需要滿足以下語法機制
• 父類物件可以引用子類物件
dynamicarray dynamicarray = new sorteddynamicarray();
• 程式語言中可以使用繼承,子類繼承父類
public class sorteddynamicarray extends dynamicarray
只要這樣才可以讓 sorteddynamicarray 傳遞給 dynamicarray
dynamicarray dynamicarray = new sorteddynamicarray();
test(dynamicarray); // 列印結果:1、3、5
public static void test(dynamicarray dynamicarray)
}
• 子類可以重寫父類方法 sorteddynamicarray 重寫 dynamicarray 方法
public class sorteddynamicarray extends dynamicarray else
}elements[i+1] = e;
++size;}}
• 基本區別:**組織的方式不同,面向過程中方法和資料結構是分開的。物件導向的**被組織成一組類,方法和資料結構被繫結在一起,定義在類中。
• oop 面對複雜的業務邏輯則凸顯出優勢,1 把需求翻譯為類 2 類之間建立互動關係 3 按照流程組裝類。
• oop 具有四大特性,封裝 抽象 繼承 多型
• oop 更加人性化
• 濫用 get 和 set 方法
• 對公共類沒有做到單一職責原則
• 貧窮模式開發:指開發模式是面向過程開發,例如 mvc
abstract 修飾;不允許例項化,只能被繼承;可以有方法體和屬性;子類繼承父類必須實現父類中的抽象方法 抽象類表示 is-a 關係
public class messagequeuelogger extends logger
(logger logger = new logger(…); 會報編譯錯誤
protected abstract void dolog(level level, string message);
@override
public void dolog(level level, string mesage)
• 介面裡面不能有屬性和方法體
• 類實現介面,必須實現介面中的方法體
• 介面是 has -a 關係
• 因為抽象類可以繼承,所以擁有**復用的特性,當然不止有這個好處,否則我們直接繼承類就可以。另乙個好處就是實現多型的特性
當下面**呼叫的時候會報錯,是因為 logger 父類中沒有 log()方法
• is-a 關係
• 解決抽象問題
• has-a 關係
基於介面而非實現程式設計,這句話可以理解為基於抽象而非實現程式設計。
• 函式命名不能保留任何實現細節
• 為實現類定義抽象介面。介面的定義只表明做什麼,而不是怎麼做。並且要思考是否通用,當新新增新的實現不會修改介面
• 介面和實現相分離,封裝不穩定的實現,暴露穩定的介面
你還不知道大資料?
背景 12月份有的同學參加了新工聯盟一級的測評考試,一級的內容主要是包括一些計算機基礎 大資料基本知識 資料操作和處理 資料分析方法和資料視覺化方法,今天就簡單分享其中一部分內容 持續更新 一 大資料定義 定義 對於 大資料 big data 研究機構gartner給出了這樣的定義。它是需要新處理模...
被騙了,自己還不知道
2014年實習去了深圳,實習三個月結束從電子廠出來。在龍華清湖地鐵站附近的小區住,看到乙個做金絲彩沙畫的店子,做一副畫好像能賺幾百,反正當時就信了。交了200押金,說是材料學習什麼的費用,做完6副成品就退押金。店名叫什麼忘記了。學了大概兩天,就在店裡學,學完第三天就拿了一副畫回家做,要交相應材料的押...
不知道不知道
函式分析 希爾伯特 哥德爾不完備定理 哥德爾不完全性定理一舉粉碎了數學家兩千年來的信念。他告訴我們,真與可證是兩個概念。可證的一定是真的,但真的不一定可證。某種意義上,悖論的陰影將永遠伴隨著我們。無怪乎大數學家外爾發出這樣的感嘆 上帝是存在的,因為數學無疑是相容的 魔鬼也是存在的,因為我們不能證明這...