程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java 小結2:多態問題和容器簡介

java 小結2:多態問題和容器簡介

編輯:關於JAVA

面向對象這個東西,其實我們一直是不是都沒有感覺到自己在用,以後我一定要用用。以前學c#時候認真的看過一次,最近一直研究java。隨便再看看。

多態問題:

在java中多態分為(1)編譯時多態和(2)運行時多態

(1)編譯時多態比較容易理解:其實就是通過方法重載,就是方法的重載,同一個函數名但是可以參數不一樣。這就是重載(so easy)

(2)運行時多態:這個是通過方法覆蓋實現的,就是子類在繼承父類的時候,通過對某個方法的重寫,覆蓋父類方法。

簡單的說:比如我們有個父類A,子類B通過Extends繼承了A,C,D也是,我們在方法調用的時候只要用調用A就行了。

(使用父類引用指向子類對象,在調用某一父類中的方法時,不同的子類就會表現出不同的方法結果,這就是多態,有繼承才有多態)

作用:擴展性好,我們在新增某個類的時候,只要繼承父類,並覆蓋父類方法就ok了。一個接口多種實現方式,繼承的表現就是多態。

(應用程序不必對每一個派生類編寫一個功能調用,只需要對抽象基類進行處理即可)

我補充一下使用接口的理由:它能使我們創建更加通用的代碼,通過針對接口而非具體實現類來編寫代碼,這樣我們的代碼可以應用更多地對象類型。

容器:

我們使用比較多的肯定是List<T> list=new ArrayList<T>,不可否認ArrayList很強大,但是其實java還有好多其他的好東西。

首先要說明一下List是一個接口而已,不能List x=new List();List只是聲明了函數,並沒有實現。ArrayList是一個繼承了List的具體實現類而已。

(1)數組:說到容器,可能要提到數組,算了,暫時就把數組看出是固定了大小的容器(其實它不是容器),然後由於知道數組大小,所以用參數下標即可隨機訪問,速度應該是最快的 O(1),要注意的一點就是數組的legths是數組的大小而不是數組裡面的數據個數。

(2)Collection和Collections的區別

Collection是集合類的頂級接口,它下面還有List和Set兩個接口,(接口繼承接口)

Collections是集合類的一個工具類,這個類提供了一系列的靜態函數,可以用來對集合排序,選取最大值。。。。。。

(3)用圖來說明一下關系(還有map,它是和Collection一個級別的,包括hashtable,hashMap。。。。)

(4)迭代器(iterator)

迭代器是一種設計模式,這他媽也是設計模式。我們知道迭代器是用來選取集合對象的,我們通過迭代器選取對象引用可以直接對對象進行操作。代碼我就不貼了。

作用:作為一種設計模式,可以做到不必要知道或者重寫代碼就可以應用不同類型的容器。

這個可能無法理解,這麼說吧:就是我們可以不必管集合是用什麼方式實現的,管他是list還是map,我反正只需要調用迭代器就ok了。其實一般的時候也用不到,可能在你

要改某個程序的集合實現方法的時候用到。

作者:博客園 郭佳盛哈哈

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved