<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # :-: Java基本語法 [TOC] # 1.函數 ## 1.1.函數的引入 * 循環練習: 需求:獲取1-100之間6的倍數的個數。 分析: 1、個數是未知的,所以定義變量。 2、6的倍數咋表示?只要是對6能整除,也就是沒有余數。 3、需要對1-100之間所以的數都要進行判斷是不是6的倍數。如果是,需要對個數變量進行自增。 4、怎么完成1-100之間呢?使用循環。 ![](https://box.kancloud.cn/4b7dc8b99d3c4e49b639df2e5d9b67a3_895x381.png) * 在實際開發中,類似的功能很可能經常出現; 很可能又要新的需求:計算1到100之間7的倍數的個數; 計算1到50之間6的倍數的個數; …… 為了解決這個問題,可以使用函數(方法;) ## 1.2.函數的概念 ### 1.2.1.函數的概念 java中的函數,又叫做方法,是定義在類中的一段獨立的代碼,具有特定功能; ### 1.2.2.函數的作用 函數的作用,就是用來提高程序的復用性(降低程序的冗余性),提高開發效率,降低維護成本的; ##1.3.函數的使用 ###1.3.1.函數的書寫格式 書寫格式: ``` 修飾符 返回值類型 函數名(數據類型 變量名,數據類型 變量名……){ 具體實現功能的代碼(方法體); return 語句; } ``` 格式詳解: ![](https://box.kancloud.cn/827886666215797970f2b23cc763d259_1131x538.png) ###1.3.2.函數的聲明方式 ![](https://box.kancloud.cn/630f7d045978ba0fd4bf6337c80ced79_584x299.png) 聲明函數的方式:兩個明確 ![](https://box.kancloud.cn/6c6246022ec5bae17ec438f51b6f43ef_892x678.png) * 結論: 聲明函數的過程: 1、搞清楚這個函數的功能; 2、根據函數的格式寫出函數的架子(缺少返回值類型和參數列表) 3、根據函數的功能搞定兩個明確: (1)明確函數的返回值類型:問:這個功能執行完畢后有沒有結果返回? (2)明確函數的參數列表:問:這個功能是否需要調用者傳遞數據? 4、書寫函數的功能代碼; ### 1.3.3.函數的調用方式 根據函數名和參數列表來調用; ![](https://box.kancloud.cn/bcaf9f50c2706714712df95a5059bd77_689x362.png) ### 1.3.4.函數執行的過程 ![](https://box.kancloud.cn/8213c68c79bd3eb503db4de61270708e_1196x516.png) ### 1.3.5.函數的聲明誤區 畫蛇添足; ![](https://box.kancloud.cn/6fdc46f87abffd437d432559c8101ef2_682x231.png) 注意: 一個函數一個功能,不要太復雜,都寫在一個函數里面;一般一個函數大概二三十行代碼;在復雜,就要考慮邏輯上有沒有問題; 如果邏輯沒有問題,最好將大的功能拆分為多個小的功能,寫成多個小的函數,然后通過函數調用實現大的功能; ## 1.4.函數的重載(overload) ### 1.4.1.問題的引入 需求1:計兩個整數的和; 需求2:計算三個整數的和 需求3:計算四個整數的和 ![](https://box.kancloud.cn/bc6515c7dc848ff2dbf33d8d92f07461_554x527.png) ### 1.4.2.重載的概念 概念:在Java中,函數的重載,指的是:在同一個類中,允許存在多個函數名相同、參數列表不同的函數;這種情況叫做函數的重載; 函數的重載,和函數的返回值類型無關; 函數的重載,和函數的返回值類型無關; 函數的重載,和函數的返回值類型無關; 參數列表不同,指的是: 參數個數不同; 相同位置的參數的類型不同; ### 1.4.3.重載的好處 使用函數的重載,可以讓多個類似功能的函數使用相同的函數名,需要記憶的函數名數量就大大降低,開發者使用起來非常方便; 注意:在類似功能比較多的時候,可以使用函數的重載; ### 1.4.4.重載練習 已知函數: ``` public static int add(int a,char b){} ``` 下列那些函數與之重載? ``` a:public static void add(int b,char a){}:不重載;因為函數名和參數列表都相同; b:public static int add1(int a,char b){}:不重載;因為函數名不同; c:public static void add(int a){}: 重載; d:public static void add(char a,int b){} 重載; e:public static void add(){}: 重載; ``` ## 1.5.函數總結 * 函數的概念:Java中的函數,又叫做方法,指的是定義在類中的一段獨立的代碼塊,可以實現一個具體功能; * 函數的作用:函數通過將一段功能代碼抽取出來,在所有需要的地方直接調用的方式,提高程序的復用性; * 函數的格式: ``` 修飾符 返回值類型 函數名(參數列表){ 方法體代碼; return 語句; } ``` * 函數聲明方法: 根據函數的功能,確定兩個明確: * 1、明確函數的參數列表:這個功能需不需要調用者傳遞數據?如果需要,有多少數據,數據的類型是什么? * 2、明確函數的返回值類型:這個功能結束后,有沒有數據需要返回?如果有,返回數據的類型是什么? 1. 函數使用誤區: 在一個函數中,只需要書寫和這個函數的功能有關的代碼,不要書寫其它無用代碼; 1. 函數的調用: 調用一個函數,需要通過函數名和參數列表共同確認一個函數; 如果需要接收函數結束后返回的數據,需要使用和函數返回值類型一樣的變量來接收; 如果一個函數沒有數據返回(返回值類型是void),就不能使用變量來接收; 1. 函數的重載: 概念:在同一個類中,允許存在多個函數名相同、參數列表不同的函數,叫做函數的重載; 好處:降低開發者需要記憶的函數名字,提高開發效率; 注意:函數的重載和函數的返回值類型無關,只和函數名和參數列表有關; # 2.數組 ## 2.1.問題引入 需求:計算一個班級100人的考試總分; ![](https://box.kancloud.cn/bb4ca34730ddb858fb9a4e9902112703_678x273.png) ## 2.2.數組的概念 數組,就是一種容器,它可以保存多個相同類型的數據;而且數組一旦創建,容量不能更改 ## 2.3.數組的定義格式 數組使用[] 表示;定義格式是: 數據類型[] 數組名(變量名) = new 數據類型[數組的容量]; ![](https://box.kancloud.cn/47f43f930b5ff17b4bd21e30ca0b49a6_278x80.png) ## 2.4.數組的使用 ### 2.4.1.數組元素的存取&數組的索引 ![](https://box.kancloud.cn/214520f52863646f87e19962fe2040b8_674x290.png) 結論: Java中,數組都具有索引,索引實際上就是數組中每個存儲單元的編號; 向數組中保存數據和取出數據,都是通過索引進行的; 索引的特點是: 從0開始,依次遞增;最大索引就是數組容量減一; 2.4.2.數組的遍歷&數組的length屬性 ![](https://box.kancloud.cn/5559131e7ae9605586500dbdbbe7b4c3_635x315.png) 在每個數組中,都有一個length屬性,表示數組的容量; 使用方式是: 數組名.length; 注意:因為數組一旦創建,容量就固定不變,所以數組的length屬性也不能改變; ![](https://box.kancloud.cn/e79962a0bc30c9fd8cbc83aa2205665b_805x461.png) 2.5.數組的內存原理(了解) 2.5.1.java的內存組成 ![](https://box.kancloud.cn/dcb6881a51c975b868560952cd9d2af2_482x414.png) 2.5.2.數組的內存圖解 需求1:畫出下面代碼執行的內存圖解: ``` public static void main(String[] args) { int[] array = new int[3]; array[0] = 10; int a = array[0]; System.out.println(a); System.out.println(array); array = null; System.out.println(array); } ``` 內存圖解: ![](https://box.kancloud.cn/f4b729c68c7c9e21f104557eda9af874_1142x466.png) 需求2:下面的代碼執行結果是什么?為什么? ``` public static void main(String[] args) { int[] array = new int[3]; int[] arr = array; array[1] = 100; System.out.println(arr[1]); arr[1] = 50; System.out.println(array[1]); } ``` ![](https://box.kancloud.cn/b8d4c63815d1637ab02785ef00ee7703_1031x415.png) ### 2.5.3.引用傳遞和值傳遞 ![](https://box.kancloud.cn/e57a0a251e04a67893af057fffe978e5_1140x527.png) 如果是引用類型的變量,那么在變量中保存的是堆內存中的空間地址; 如果是引用類型的變量進行賦值,實際傳遞的是保存在變量中的地址,像這種傳遞數據的方式就叫做引用傳遞; 如果是基本類型的變量進行賦值,實際傳遞的是保存在變量中的常量值,叫做按值傳遞; 因為值傳遞傳遞的是實際數據,所以不同的基本類型的變量的修改,相互之間沒有影響; 應為引用傳遞傳遞的是堆內存中的引用地址,所以如果不同的變量保存的是相同的引用地址,那么他們都指向同一塊空間;任何一個變量對空間的修改,都已影響其他變量; ## 2.6.數組使用中的常見問題 ### 2.6.1.NullPointerException ### 2.6.2.ArrayIndexOutOfBoundsException ## 2.7.數組的第二種定義格式 數組定義格式: 數據類型[] 數組名 = new 數據類型[數組容量]; 數組名[索引] = 數據; ### 2.7.1.第二種定義格式 如果在定義數組時已經知道數組中會保存什么數據,就可以使用另一種定義方式,在創建數組的同時將數據保存在數組中; 格式: 數據類型[] 數組名 = new 數據類型[]{數據1,數據2,數據3,數據4……數據n}; 注意:使用這種方式,不能在中括號中寫數組的容量; 這種定義格式的簡寫形式: 數據類型[] 數組名 = {數據1,數據2,數據3,數據4……數據n}; 注意:簡寫只是為了書寫方便,實際上編譯器還是會加上new 這一部分; 注意:使用簡寫形式時,不能將數組變量的聲明和賦值寫成兩行; # 3.方法和數組的練習 ## 3.1.數組平均值: 例子:求下列數字的平均值:1.0,2.4,3.5,4.3,5.1,6.8,7.2,8,9,10 ## 3.2.數組求最大值 例子:求下列數字的最大值:1.0,2.4,3.5,4.3,5.1,6.8,7.2,8,9,10 ## 3.3.將數組中的元素轉為指定格式的字符串 例子:給定數組,返回指定格式的字符串;例如:將數組{1,2,3,4}轉為字符串:”[1,2,3,4]”; ## 3.4.將數組中元素倒序 例子:數組{1,2,3,4,5}倒序后為{5,4,3,2,1}; ![](https://box.kancloud.cn/c89fd40a9e779380cbb05e469c6905f3_1287x489.png) ## 3.5.數組的查找 ## 3.6.數組的排序 ## 3.7.Arrays數組工具介紹 上面介紹了數組的一些練習,而針對數組的常見操作,Java已經提供好了,并書寫在Arrays中。在程序中是可以直接使用的。 ``` public class Demo { public static void main(String[] args) { // 定義數組 int[] arr = { 23, 15, 67, 25, 90, 33 }; // 打印數組 System.out.println( Arrays.toString(arr) ); // 數組排序 Arrays.sort(arr); System.out.println( Arrays.toString(arr) ); } } ``` 程序運行結果: ![](https://box.kancloud.cn/1d69bd991f2cec71e84ec5feac63413b_449x101.png) # 4.二維數組介紹 ## 4.1.什么是二維數組 數組是一種容器,可以保存多個相同類型的數據; 在內存的角度看,數組就是內存中連續在一起的多個存儲空間; ![](https://box.kancloud.cn/046a23377d5f5cc0dad09d976bc0902f_591x497.png) 如果一個數組中保存的數據的類型就是數組類型,那么數組中每個存儲單元中都保存的是一個其他數組的內存地址; 這種數組的數組就叫做二維數組; ## 4.2.二維數組使用演示 ## 4.2.1.二維數組的格式 int[][] arr = new int[2][3];//表示創建一個二維數組;這個二維數組的每一個元素都是一個一維數組; //上面聲明中的數字2表示聲明的二維數組的長度是2;3表示二維數組中每個一維數組的長度是3; ![](https://box.kancloud.cn/2ea34f2a460244950e1a8a85982d2ea4_346x251.png) ### 4.2.2.二維數組的使用 ![](https://box.kancloud.cn/348fdf07a08540dd0787904d310c430b_566x423.png) 二維數組的遍歷: ![](https://box.kancloud.cn/2928cfcca7838b4906688310a529f7d8_874x490.png) 作業:求下面二維數組的最大值、最小值、和、以及平均值; int[][] a = new int[][]{new int[2],new int[]{2,3,4},{-1,-2,-3,4,5,6,7,8},null}; # 5.數組使用總結 ## 5.1.數組的特點 1、數組是容器,可以保存相同類型的數據; 2、數組是容器,都具有容量,通過length屬性獲取;一個數組創建完成之后,容量大小不可改變; 3、數組中的元素都具有索引,索引是整數,從0開始,連續遞增,最大索引是數組容量減一; ## 5.2.數組使用場景 1、有多個數據要保存,數據類型一樣; 2、數據的數量要確定;(如果不確定,就不知道創建多大的數組合適) 如果數據很多,但是數據類型不一樣,或者數據總數也不確定;這個時候就要使用新的容器:集合
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看