1. 程式人生 > 其它 >20202316 饒坤《資料結構與面向物件程式設計》課程內容總結

20202316 饒坤《資料結構與面向物件程式設計》課程內容總結

一、課程內容總結

第一章 緒論

本章介紹了Java程式設計語言和基本的程式開發過程。介紹了面向物件的開發方法,包括相關的概念和術語。

瞭解Java程式設計語言,瞭解程式編譯執行的步驟,理解問題求解的一般方法,瞭解軟體開發的一般過程,瞭解面向物件技術相關概念,面向物件的程式設計,類是物件的藍圖,虛擬機器介紹與安裝,IDEA介紹與安裝。

  1. java是一種面對物件的程式語言。
  2. java程式語言中,程式是由一個及以上的類所組成,類中包含一個及以上個方法。

我們學習到了識別符號和保留字

  1. 常見的識別符號有:class、public、static、void、main、String、args、System、out、println等。
  2. 常見的保留字有:package、this、do、if、throw、boolean、double、protected、else、import等。

我們在程式中可以自己命名程式中的識別符號(類啥的)的名字,可以由多個字母,數字,下劃線啥的組成,但是要注意不能用數字開頭哦!!!!!!!

還有就是Java中的大小寫一定要十分的注意,比如abc和ABC是不一樣的。你以為你呼叫的是你寫的abc,其實你呼叫的是你沒有寫的ABC,恭喜!!報錯了,飄紅了,全是紅色的感嘆號。

養成一個良好的習慣——註釋程式碼的含義:“//”或“/* */”或“/** */”,這樣你就不會在改程式碼的時候不知道這一行的程式碼到底是幹嘛的。

//單行註釋 /*多行註釋*/

嘿嘿嘿 ,學習Java就此開篇。對了 還有虛擬機器這個東西真是個好東西,我還記得我往命令列介面塞進去一個鹿的圖形。

第二章 資料和表示式

介紹了Java中使用的基本資料型別及執行計算時表示式的使用。

作為Java的開頭課,我學到了許多的東西

首先是用的最多的System.out.print/println(""),其實這個東西吧,基本上十幾行程式碼我就寫一個,主要是為了確定下我寫的那段程式碼輸出的啥。

然後來到資料型別,大概分為數值型(byte、int、float、double等)、字元型(char)、還有一個叫布林型(Boolean)的。

加減乘除(+、-、*、/)當然也少不了,在Java中可是有資料的轉換的,一定記得先看看等號前後的資料是不是一個型別哦哦哦,不一樣的話請適當的轉換,不然就等著飄

一些有意思的乾貨——轉義字元:\b:回退鍵 \t:製表符 \n;換行 \r:回車 \ ":雙引號 \ ':單引號 \ \:反斜槓

表示式 運算子優先順序:相同優先順序滿足從左到右的結合律。(這是我之前上課的時候在網上搜的儲存下來的圖)

還有自增自減運算子,賦值運算子。

還有一個Scanner類方法:next();nextInt();nextFloat();useDelimiter()等,如果Sacnner(System.in)的話,我們就可以到時候在鍵盤輸入我們要的值。

第三章:類與物件

首先是建立一個物件,我們可以用String來建立一個新的物件

String me =new String("饒坤");

其中的new:返回指向新建物件的引用。(一定不能丟掉你的new 物件哦,不然物件就不對了)

知識點:

  • 多個引用變數可以指向同一個物件
  • String類方法:compareTo (String str);equals(); length()等。
  • Random類:偽隨機數生成器執行復雜的計算產生隨機數。
  • Math類:都是靜態的方法,我們可以直接的去呼叫它們。
  • 格式化輸出——NumberFormat類:有兩個方法getCurencyInstance和getPercentInstance返回用於格式化數值的物件。getCurencyInstance返回貨幣格式物件,getPercentInstance返回百分比格式物件。 DecimalFormat類:按慣例使用new運算子來例項化物件。(都說了new很重要吧)
  • 列舉型(enumerad type)如 enum Grade{A,B,C,D,E},雖然我很少用,但是還是十分的實用的。
  • 包裝器類(wrapper)有Integer.parselnt( ) Integer.toHexString( )等等。定義了一些十分有用的靜態常量如Integer類中的MIN_VALUE和MAX_VALUE代表了int的最小值和最大值

第四章:面向物件設計

這一章來到了封裝、繼承、多型。

這下面是我之前的實驗報告的總結,還是蠻有意思的。

(1)什麼是封裝?

封裝可以隱藏實現細節,使得程式碼模組化;在面向物件程式設計上可理解為:把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法只讓可信的類或者物件操作,對不可信的進行資訊隱藏。

(2)封裝的意義?

1封裝的意義在於保護或者防止程式碼(資料)被我們無意中破壞。在面向物件程式設計中資料被看作是一箇中心的元素並且和使用它的函式結合的很密切,從而保護它不被其它的函式意外的修改。

2保護資料成員,不讓類以外的程式直接訪問或修改,只能通過提供的公共的介面訪問==>資料封裝 。

3方法的細節對使用者是隱藏的,只要介面不變,內容的修改不會影響到外部的呼叫者==> 方法封裝。

4當物件含有完整的屬性和與之對應的方法時稱為封裝。

5從物件外面不能直接訪問物件的屬性,只能通過和該屬性對應的方法訪問。

6物件的方法可以接收物件外面的訊息。

下面是我在網上所看到的一個封裝student的程式,別人無法修改(private表示最小訪問權)

什麼是繼承

繼承是指這樣一種能力:它可以使用現有類的所有功能,並在無需重新編寫原來的類的情況下對這些功能進行擴充套件。其繼承的過程,就是從一般到特殊的過程。

通過繼承建立的新類稱為“子類”或“派生類”。被繼承的類稱為“基類”、“父類”或“超類”。要實現繼承,可以通過“繼承”(Inheritance)和“組合”(Composition)來實現。在某些 OOP 語言中,一個子類可以繼承多個基類。但是一般情況下,一個子類只能有一個基類,要實現多重繼承,可以通過多級繼承來實現。

特點:1.複用性的提高 2.子類可以應用分類屬性 3.設計程式簡單了。

子類繼承父類屬性和方法也可以覆蓋父類方法。

什麼是多型?

多型是同一個行為具有多個不同表現形式或形態的能力,在同一個介面下,能夠使用不同的例項而執行不同操作

特點:1.靈活性2.可擴充性.3.可替換性.

第五章:線性表

我們到這就開始接觸棧和隊列了,這兩個知識點都到很後面的Java程式中都要用到。

首先是佇列定義:佇列是一種特殊的 線性表,“先進先出(FIFO, First-In-First-Out)”是它的原則,在具體應用中通常用連結串列或者陣列來實現。

佇列只允許在後端(稱為rear)進行插入操作,在前端(稱為front)進行刪除操作,Java中定義了java.util.Queue介面用來表示佇列。Java中的QueueListSet屬於同一個級別介面,它們都是繼承於Collection介面。

佇列儲存結構的實現有以下兩種方式:

  1. 順序佇列:在順序表的基礎上實現的佇列結構;
  2. 鏈佇列:在連結串列的基礎上實現的佇列結構;

兩者的區別僅是順序表和連結串列的區別,即在實際的物理空間中,資料集中儲存的佇列是順序佇列,分散儲存的佇列是鏈佇列。

佇列中有其的類,結點型別佇列定義為:LinearNode<T>;鏈佇列型別佇列定義為:LinkedQueue<T>。(你可以自己寫一個類,也可以用系統類T)

佇列的實現:

1.阻塞佇列

2.非阻塞佇列

ArrayList的一些常用的方法:

  • add 增加一個元索
  • size() 返回佇列的大小   
  • remove 移除並返回佇列頭部的元素
  • element 返回佇列頭部的元素   
  • offer 新增一個元素並返回true
  • poll 移除並返問佇列頭部的元素
  • peek 返回佇列頭部的元素   
  • put 新增一個元素
  • take 移除並返回佇列頭部的元素

佇列還是十分基本的邏輯結構,Java中用到它還是比較多,所以我還專門去自己學了好久,但是真正自己完完全全寫出一大段程式碼還是難啊啊啊

第六章:棧

棧是一種線性集合,其元素的新增和刪除都是在同一側進行了,特性是先進後出,後進先出(LIFO)的原則,即只允許在尾巴初插入和刪除的線性表。

允許插入和刪除的一段叫做棧頂(top),而將另一端稱為棧底(bottom)。插入和刪除只能從上端先進行