亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

不太理解 Iterator it=coursesToSelect.iterator() 的意思

http://img1.sycdn.imooc.com//5ea3bbe50001814607150183.jpg1.是使用了iterator()方法同時創建了一個“it”對象嗎?接口不是要通過“接口類 對象名 = new 接口實現類”來創建對象,再使用對象名來使用方法的嗎?如果不是。沒有創建對象,那如何通過“it”使用hasNext()方法,也就是it.hasNext()。

2.看了一下其他人的評論。有的說是:“通過coursesToSelect調用iterator()方法返回一個構造器給it”。 然后我的疑問是:構造機是“初始化塊”嗎?還是說構造器就是構造方法?通過過一個方法返回一個構造方法或初始化塊,我在網上沒查到相關資料。 如果說構造器是初始化塊,而在后面的代碼又通過“it”使用到了hasNext()也就是it.hasNext()。那是不是說“初始化塊”內可以寫入方法,相對于不用創建對象而使用方法的內部類?

正在回答

3 回答

courseToSelect 是List接口的屬性,因為Lis接口繼承了Collection接口,Collection接口里有個iterator方法,作用是返回Iterator迭代器的對象,所以可以用Iterator類接收,it就是迭代器的對象名。我也是剛學兩三天,不知道理解的到不到位,希望有大佬可以指教

搜索

復制

0 回復 有任何疑惑可以回復我~
#1

weixin_慕九州8061769

Collection接口里有個iterator方法,作用是返回Iterator迭代器的對象。courseToSelect 是List接口的屬性,因為List接口繼承了Collection接口,所以可以用List的屬性courseToSelect去調用iterator方法,用Iterator類接收,it就是迭代器的對象名。我也是剛學兩三天,不知道理解的到不到位,希望有大佬可以指教
2022-05-15 回復 有任何疑惑可以回復我~

樓上對問題一的解答還是不夠全面,按照你所說“開頭的“Iterator”聲明了對象類型為Iterator。但是這不是說把Iterator實例化(實例化就是創建對象)。只是規定了對象的類型?!蹦俏蚁胝垎?,這個對象“it”從何而來?

0 回復 有任何疑惑可以回復我~

問題一:

接口不可以通過“接口類 對象名 = new 接口實現類”來創建對象,再使用對象名來使用方法。

接口是要被實現的,它是抽象類,不可以被實例化(創建對象)。

有代碼“Iterator it = coursesToSelect.irerator()”。開頭的“Iterator”聲明了對象類型為Iterator。但是這不是說把Iterator實例化(實例化就是創建對象)。只是規定了對象的類型。你應該把它理解為調用了一個返回值為對象的方法,把他傳給“it”這個對象名,并且聲明對象為Iterator類型。

PS:?iterator()方法是java.lang.Iterable接口,被Collection繼承。所以Collection里面有iterator這個方法,隱藏ArrayList里面也就有這份方法。所以就可以用ArrayList的對象名“coursesToSelect”來調用這個方法。

問題二:

????構造器是初始化塊也是構造方法,是同一個東西的不同名稱,只會執行一次,在創建對象的時候執行。“返回一個構造方法”我沒聽過這種說法,方法只能返回各種數據類型和對象。

????構造器本身就是方法塊,他能調用方法。構造器只能在初始化的時候執行一次,有時候你沒有寫,那就好自動給你一個默認的,所有實例化的對象都有構造器。

????你問構造器可不可以寫入方法。方法是可以被調用的,構造器無法調用。但是它可也能執行方法的功能,比如說賦值。你可以把方法的功能寫在構造器里面,這些功能在初始化的時候自動執行。



1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

不太理解 Iterator it=coursesToSelect.iterator() 的意思

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號