java的函數

java的函數

一、函數

我認爲函數是指對一個或者多個功能的代碼概括,將業務邏輯剝離出來的代碼片段,有了方法編程就變得有結構化,在java中函數可大概分爲無返回值,有返回值,static修飾的函數。

1.1 無返回值函數

無返回值函數,就是函數在執行完以後完成了功能但是並不向程序主體返回相關數據的函數,在java中用void修飾。如下:

                                                                圖一

我們在程序中定義了一個say()函數,功能就是在調用的時候打印hello world,函數在執行完成以後並沒有返回值只是打印了一句話。

1.1 帶參數的無返回值函數

在開發中函數一般都是帶有參數的,有了參數的傳遞可以使我們的函數變得更加靈活,圖一的函數只能打印hello world 但是我現在業務場景發生變化,要求要根據用戶傳遞進來的參數進行打印該怎麼辦?這個時候就體現了帶參函數的重要性。格式如下:

這裏我們改寫了say()方法,變成了say(String str),括號裏邊的String指明瞭傳遞進來的參數類型爲字符串,str是參數名字可以隨便給,但是最好通俗易懂,我們在程序調用的時候傳遞了java,所以最後打印的結果就是hello java。

2.1有返回值的函數

有返回值的函數在執行完函數以後會向程序返回一個值,這個值是我們自己定義的,可以是常見的數據類型,也可以是自己封裝的數據類型,有了返回值就給我帶來了很大的方便。

這裏我們定義了一個求和函數,可以根我們傳遞進來的函數值進行求和,返回值類型爲int,所以我們在程序調用接收的時候需要聲名一個int類型的變量con來接收,要保證返回值和接受手值類型一樣纔不會出錯。

3.static修飾的靜態函數又稱靜態方法

首先我們看上圖main方法的修飾詞就是static,爲什麼會有static這個關鍵字呢,作用是什麼呢?我們一直在使用main方法可是我們知道里邊每個參數的意思是什麼嗎?

首先我們來明確static關鍵字的作用,我們知道,當我們通過new關鍵字去創建對象的時候,那麼數據的存儲空間纔會被分配,類中的成員方法才能被對象所使用。但是呢有兩種特殊的情況:1、我們通過new關鍵字創建的對象共享同一個資源,而不是說每個對象都擁有自己的數據,或者說根本就不需要去創建對象,這個資源和對象之間是沒有關係的。2、希望某個方法不與包含它的類的任何對象聯繫在一起。總結下來就是說:即使沒有創建對象,也能使用屬性和調用方法,static目的就是在於解決這個問題。

static關鍵字的使用:

 1【重點】如果使用static修飾的成員變量,這些成員稱之爲【靜態成員變量】,這個【靜態成員變量】實際存放的內存空間在【內存數據區】。【靜態成員變量】和當前【類對象的內存】沒有任何關係,這個【靜態成員變量】的內存空間不在【堆區】 對象內存中

2. 用static修飾的成員變量,這個【靜態成員變量】可以提供給多個類對象使用

3. 什麼時候使用static, 真正意義上存在大量重複,並且存在一定共享基礎的數據。這種 情況下,可以使用static修飾  發現:發現通過類對象來調用【靜態成員變量】,報警告用static修飾【靜態成員變量】應該用【靜態】的方式訪問 【重點】用static修飾的成員變量,這個成員變量會【早於】類對象的創建而創建,而且【晚於】類對象的銷燬而銷燬。所以用static修飾的【靜態成員變量】是和類對象“無關的”嚴格來說 * 類對象和【靜態成員變量】無關,那麼調用類對象來調用【靜態成員變量】是“非法的”ava期望的是,使用更加嚴謹的調用方式。

我們可以看到在方法調用的時候現在的ssy()方法並沒有實例化一個Test類,而是直接調用了ssy方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章