国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

做導(dǎo)航網(wǎng)站犯法嗎web網(wǎng)頁制作教程

做導(dǎo)航網(wǎng)站犯法嗎,web網(wǎng)頁制作教程,寶和網(wǎng)站建設(shè),wordpress分類管理文章目錄 1. 方法概念及使用1.1 什么是方法1.2 方法定義1.3 方法調(diào)用的執(zhí)行過程1.4 實參和形參的關(guān)系(重要)1.5 沒有返回值的方法 2. 方法重載2.1 方法重載概念2.2 方法簽名 3. 遞歸3.1 遞歸的概念3.2 遞歸執(zhí)行過程分析3.3 遞歸練習(xí) 1. 方法概念及使用 1…

文章目錄

  • 1. 方法概念及使用
    • 1.1 什么是方法
    • 1.2 方法定義
    • 1.3 方法調(diào)用的執(zhí)行過程
    • 1.4 實參和形參的關(guān)系(重要)
    • 1.5 沒有返回值的方法
  • 2. 方法重載
    • 2.1 方法重載概念
    • 2.2 方法簽名
  • 3. 遞歸
    • 3.1 遞歸的概念
    • 3.2 遞歸執(zhí)行過程分析
    • 3.3 遞歸練習(xí)

1. 方法概念及使用


1.1 什么是方法

方法就是一個代碼片段. 類似于 C 語言中的 “函數(shù)”。方法存在的意義(不要背, 重在體會):

  1. 是能夠模塊化的組織代碼(當(dāng)代碼規(guī)模比較復(fù)雜的時候).
  2. 做到代碼被重復(fù)使用, 一份代碼可以在多個位置使用.
  3. 讓代碼更好理解更簡單.
  4. 直接調(diào)用現(xiàn)有方法開發(fā), 不必重復(fù)造輪子.

1.2 方法定義

方法語法格式:在這里插入圖片描述

注意事項:

  1. 修飾符:現(xiàn)階段直接使用public static 固定搭配
  2. 返回值類型:如果方法有返回值,返回值類型必須要與返回的實體類型一致,如果沒有返回值,必須寫成void。
  3. 方法名字:采用小駝峰命名。
  4. 參數(shù)列表:如果方法沒有參數(shù),()中什么都不寫,如果有參數(shù),需指定參數(shù)類型,多個參數(shù)之間使用逗號隔開。
  5. 方法體:方法內(nèi)部要執(zhí)行的語句。
  6. 在java當(dāng)中,方法必須寫在類當(dāng)中
  7. 在java當(dāng)中,方法不能嵌套定義。
  8. 在java當(dāng)中,沒有方法聲明一說。

1.3 方法調(diào)用的執(zhí)行過程

【方法調(diào)用過程】
調(diào)用方法—>傳遞參數(shù)—>找到方法地址—>執(zhí)行被調(diào)方法的方法體—>被調(diào)方法結(jié)束返回—>回到主調(diào)方法繼續(xù)往下執(zhí)行.

【注意事項】

  • 定義方法的時候, 不會執(zhí)行方法的代碼. 只有調(diào)用的時候才會執(zhí)行.
  • 一個方法可以被多次調(diào)用.

1.4 實參和形參的關(guān)系(重要)

代碼示例:

public static boolean func(int year){year = 100;}
public static void main(String[] args) {int year = 2008;func(year);System.out.println(year);
}

所有方法在調(diào)用的時候,要在棧上開辟內(nèi)存,叫做棧幀。程序開始調(diào)用main方法,會在棧上開辟一塊內(nèi)存,來作為main()方法的棧幀. 在調(diào)用 func() 方法時,也會在棧上開辟一塊內(nèi)存來作為 func() 的棧幀。

此時在main方法中的year的值是2008,在 func() 方法調(diào)用的時候,我們將main()方法中year中的值給到了 func() 中的year, 此時 func() 方法中的值也是2008。

但是我們在 func() 中修改year的值,不會影響main方法中year的值,我們在 func() 中修改的只是形參的值,當(dāng) func() 這個方法執(zhí)行完就會將這個方法的棧幀銷毀掉。此時程序回到main方法打印year的值,此時打印出來的還是2008.

這個例子說明了形參值的改變不會影響實參的值。

Java當(dāng)中是拿不到棧上的地址的。

在Java中,實參的值永遠都是拷貝到實參中的(傳值調(diào)用),形參和實參本質(zhì)上是兩個實體。

解決方法: 傳引用類型參數(shù)(例如數(shù)組).

1.5 沒有返回值的方法

方法的返回值是可選的. 有些時候可以沒有,沒有時返回值類型必須寫成void.

2. 方法重載


2.1 方法重載概念

在Java中,如果多個方法的名字相同,參數(shù)列表不同,則稱該幾種方法被重載了。

public class TestMethod {public static void main(String[] args) {add(1, 2); // 調(diào)用add(int, int)add(1.5, 2.5); // 調(diào)用add(double, double)add(1.5, 2.5, 3.5); // 調(diào)用add(double, double, double)}public static int add(int x, int y) {return x + y;}public static double add(double x, double y) {return x + y;}public static double add(double x, double y, double z) {return x + y + z;}
}

注意:

  1. 方法名必須相同
  2. 參數(shù)列表必須不同(參數(shù)的個數(shù)不同、參數(shù)的類型不同、類型的次序三者必須有一個不同)
  3. 與返回值類型是否相同無關(guān).
// 注意:兩個方法如果僅僅只是因為返回值類型不同,是不能構(gòu)成重載的
public class TestMethod {public static void main(String[] args) {int a = 10;int b = 20;int ret = add(a, b);System.out.println("ret = " + ret);}public static int add(int x, int y) {return x + y;}public static double add(int x, int y) {return x + y;}}
// 編譯出錯
// Test.java:13: 錯誤: 已在類 Test中定義了方法 add(int,int)
// public static double add(int x, int y) {
//        ^
//     1 個錯誤
  1. 編譯器在編譯代碼時,會對實參類型進行推演,根據(jù)推演的結(jié)果來確定調(diào)用哪個方法.

判斷是否構(gòu)成重載,我們只看前兩條是否滿足。

2.2 方法簽名

在同一個作用域中不能定義兩個相同名稱的標識符。比如:方法中不能定義兩個名字一樣的變量,那為什么類中就可以定義方法名相同的方法呢?
方法簽名即:經(jīng)過編譯器編譯修改過之后方法最終的名字。具體方式:方法全路徑名+參數(shù)列表+返回值類型,構(gòu)成方法完整的名字。

public class TestMethod {public static int add(int x, int y){return x + y;}public static double add(double x, double y){return x + y;}public static void main(String[] args) {add(1,2);add(1.5, 2.5);}}

上述代碼經(jīng)過編譯之后,然后使用JDK自帶的javap反匯編工具查看,具體操作:

  1. 先對工程進行編譯生成.class字節(jié)碼文件
  2. 在控制臺中進入到要查看的.class所在的目錄
  3. 輸入:javap -v 字節(jié)碼文件名字即可
    在這里插入圖片描述

3. 遞歸


3.1 遞歸的概念

一個方法在執(zhí)行過程中調(diào)用自身, 就稱為 “遞歸”.

解決遞歸問題:

  1. 推出一個遞推公式(難)。
  2. 找到當(dāng)前問題的遞歸“結(jié)束條件”(起始條件)。
    注意: 考慮怎么“遞” 考慮怎么“歸”------要有"遞" 有 “歸”.

3.2 遞歸執(zhí)行過程分析

遞歸求 N 的階乘

在這里插入圖片描述
關(guān)于 “調(diào)用?!?/strong>
方法調(diào)用的時候, 會有一個 “?!?這樣的內(nèi)存空間描述當(dāng)前的調(diào)用關(guān)系. 稱為調(diào)用棧.
每一次的方法調(diào)用就稱為一個 “棧幀”, 每個棧幀中包含了這次調(diào)用的參數(shù)是哪些, 返回到哪里繼續(xù)執(zhí)行等信息.

3.3 遞歸練習(xí)

代碼示例1 按順序打印一個數(shù)字的每一位(例如 1234 打印出 1 2 3 4)

public static void print(int num) {if (num > 9) {print(num / 10);}System.out.println(num % 10);
}

代碼示例2 遞歸求 1 + 2 + 3 + … + 10

public static int sum(int num) {if (num == 1) {return 1;}return num + sum(num - 1);
}

代碼示例3 寫一個遞歸方法,輸入一個非負整數(shù),返回組成它的數(shù)字之和. 例如,輸入 1729, 則應(yīng)該返回1+7+2+9,它的和是19

public static int sum(int num) {if (num < 10) {return num;}return num % 10 + sum(num / 10);
}

代碼示例4 求斐波那契數(shù)列的第 N 項

public static int fib(int n) {if (n == 1 || n == 2) {return 1;}return fib(n - 1) + fib(n - 2);
}

當(dāng)我們求 fib(40) 的時候發(fā)現(xiàn), 程序執(zhí)行速度極慢. 原因是進行了大量的重復(fù)運算.
可以使用循環(huán)的方式來求斐波那契數(shù)列問題, 避免出現(xiàn)冗余運算。

public static int fib(int n) {int last2 = 1;int last1 = 1;int cur = 0;for (int i = 3; i <= n; i++) {cur = last1 + last2;last2 = last1;last1 = cur;}return cur;
}

此時程序的執(zhí)行效率大大提高了.

http://m.aloenet.com.cn/news/44956.html

相關(guān)文章:

  • 教師可以做網(wǎng)站嗎最近熱點新聞事件
  • 寧國做網(wǎng)站優(yōu)化營商環(huán)境的措施建議
  • 網(wǎng)站的域名可以修改嗎做營銷策劃的公司
  • 網(wǎng)站如何做口碑營銷大數(shù)據(jù)
  • 專門做水果的網(wǎng)站重慶seo優(yōu)化效果好
  • wordpress底部插件超級seo助手
  • 可以免費看日本黃片的app做網(wǎng)站上海單個關(guān)鍵詞優(yōu)化
  • 單頁面網(wǎng)站推廣重慶seo推廣運營
  • 優(yōu)化網(wǎng)站排名方法教程怎樣自己做網(wǎng)站
  • 武漢++外貿(mào)網(wǎng)站建設(shè)千瓜數(shù)據(jù)
  • 星空無限傳媒官網(wǎng)免費下載seo服務(wù)收費
  • 化妝品網(wǎng)站系統(tǒng)規(guī)劃58同城安居客
  • 南昌市有幫做網(wǎng)站的嗎作品提示優(yōu)化要刪嗎
  • 江蘇專業(yè)網(wǎng)站建設(shè)網(wǎng)絡(luò)營銷站點推廣的方法
  • 門戶網(wǎng)站建設(shè)管理總則關(guān)鍵詞優(yōu)化排名查詢
  • 合肥做網(wǎng)站優(yōu)化哪家好建立網(wǎng)站需要什么條件
  • pc網(wǎng)站建設(shè)方案有哪些seo綜合排名優(yōu)化
  • 許昌做網(wǎng)站漢獅網(wǎng)絡(luò)網(wǎng)站片區(qū)
  • 公司網(wǎng)站開發(fā)建設(shè)什么會計科目今日財經(jīng)最新消息
  • 手機網(wǎng)站建設(shè)價格低正規(guī)百度推廣
  • 深圳做網(wǎng)站推廣品牌推廣計劃書怎么寫
  • 綿陽市建設(shè)局官方網(wǎng)站軍事新聞俄烏最新消息
  • 網(wǎng)站建設(shè)費科目外貿(mào)推廣具體是做什么
  • 手機微信網(wǎng)站怎么做的好淘寶直通車推廣怎么收費
  • 佛山英文網(wǎng)建站國外引流推廣軟件
  • 網(wǎng)站首頁改版模板網(wǎng)站好還是自助建站好
  • 鄭州網(wǎng)站建設(shè)品牌好網(wǎng)站seo推廣招聘
  • 家庭網(wǎng)絡(luò)做網(wǎng)站網(wǎng)絡(luò)優(yōu)化工程師主要負責(zé)什么工作
  • 河北省網(wǎng)絡(luò)科技網(wǎng)站seo網(wǎng)站頁面優(yōu)化包含
  • 英國有哪些做折扣的網(wǎng)站網(wǎng)絡(luò)推廣整合平臺