日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

《疯狂JAVA讲义》3

發布時間:2025/3/21 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《疯狂JAVA讲义》3 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

對象的this使用

1.?this關鍵字總是指向調用該方法的對象。

做法一:使用this

做法二:不使用this

2. 特殊的:

方法詳解

成員變量和局部變量

隱藏和封裝


對象的this使用

1.?this關鍵字總是指向調用該方法的對象。

根據this出現位置不同,this作為對象的默認引用有兩種情形:

(1)構造器中引用該構造器正在初始化的對象;

(2)在方法中調用該方法的對象。

事實上,this最大的作用就是讓類中的一個方法,訪問同一個類中的另一個方法或者實例變量。

舉個栗子:定義一個Dog類,里面有run和jump兩個方法,想在jump中調用run方法。

做法一:使用this

結果如下:

做法二:不使用this

?

結果相同。

二者的比較:不使用this時,需要在jump方法中重新定義一個對象,否則不能引用run方法,相比較而言,使用this更簡練。

????如果自己調試程序,發現不用this也可以得到相同的結果,但是這是一種假象,實際上還是存在著this。

2. 特殊的:

????對于static修飾的方法而言,是不可以用this的,之前說過,static聲明的是類方法和類變量,不能調用沒有用static修飾的方法或者變量,必須創建一個實例。如果可以用this,就意味著類里的所有方法和變量都可以通過this調用,顯然很矛盾。因此,java規定,靜態成員不能訪問非靜態成員。

下面舉個栗子告訴大家靜態方法引用非靜態方法時發生的錯誤:

看一下原因:

這就很明顯了。

個人覺得this理解到這里已經可以了。

方法詳解

1.?java里的方法不能單獨存在,所有的方法都必須定義在類里。方法在邏輯上要么屬于類,要么屬于對象。因此,方法也不能像函數那樣獨立執行,必須使用類或者方法作為調用者。同一個類里方法互相調用給人一種方法可以獨立執行的假象,上面也說了,是通過this進行調用的。

2. 方法的參數傳遞機制:值傳遞

????所謂的值傳遞,就是把參數的副本(復制品)傳給方法內,參數本身不會受到影響。

下面通過對兩個數進行交換來說明值傳遞:

結果為:

可以看到,沒有我們預期的效果。因為系統開始執行方法時,是將實參變量賦值給形參變量,而并不是直接對實參進行操作,所以當然不會變啦。這就是值傳遞。這里我們需要用引用類型的參數傳遞。

正確的做法如下:

結果如下:

3. 方法重載

????同一個類里定義多個同名的方法,但是形參列表不同。

????java程序中確定一個方法有三個要素:

????(1)調用者

????(2)方法名

????(3)形參列表

????方法重載只需要形參列表不同,方法名相同即可,至于其他部分,比如方法的修飾符,返回值類型等等都與方法重載沒有關系。

舉個栗子:

結果如下:

成員變量和局部變量

? ?(1) 可以看出來,成員變量是在類里定義的變量,局部變量是在方法中定義的變量。類變量是直到這個類被銷毀,否則一直存在,但是局部變量是隨著方法的消失而消失。

????(2)類變量可以通過類或者實例進行訪問及修改。因此,在實例中用到類變量時注意,一旦修改,別的實例用的就是修改后的值,慎重。

????(3)與成員變量不同的是,局部變量除了形參之外,都必須顯示初始化。也就是說,如果沒有賦初始值,不可以訪問它們。

舉個栗子:

報錯如下:

隱藏和封裝

主要通過四個訪問控制符進行控制:

(1)private(當前類訪問權限)

(2)default(包訪問權限)

(3)protected(子類訪問權限)

(4)public(公共訪問權限)

介紹一下private:

????類里的大部分成員變量都應該使用private修飾,只有一些用static修飾的,類似全局變量的成員變量,才考慮用public修飾。這是為了使模塊高內聚(盡可能把模塊內部數據在模塊內獨立完成,不允許外部直接干預),低耦合(僅暴露少量的方法等給外部使用)。

介紹一下default:

????如果類里的一個成員或者一個外部類不使用任何訪問控制符修飾,就是包訪問權限的。default訪問控制的成員或外部類可以被相同包下的其他類訪問。

介紹一下protected:

????通常情況下,使用protected修飾一個方法,通常是希望其他子類重寫這個方法。

注意:

????如果一個java文件定義的所有類都沒有用public來修飾,則這個java源文件的文件名可以是一切合法名,但是如果一個java文件里定義了一個public修飾的類,則這個源文件的文件名必須與public修飾的類的類名相同。

/********************************/

最后說一個容易忽視的問題:

import 語句放在package語句之后,類定義之前。

?

END

????今天比較開心的是用的是eclipse,我一定要學會熟練使用它,flag不能倒!在認真的重新過知識點的過程中收獲不少,希望就這么慢慢的進步,不要心急,給自己點信心!這兩天弄一個代碼題弄得自己頭都大了,昨天晚上還夢到它呢,唉,決定先放一陣子,換換腦子重新再來。

????上午就這樣子交代了,下午打算上完課以后弄弄安卓,競賽什么的,還是要好好學習,差距太大。昨天早上的實驗讓我很是崩潰,感覺自己好沒用的樣子,動手能力果然太差,加油吧,別無他法!

????北京雨天,注意安全~

總結

以上是生活随笔為你收集整理的《疯狂JAVA讲义》3的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。