零基礎學Java筆記三
阿新 • • 發佈:2021-01-21
方法過載
定義:所謂“方法過載”就是指多個方法的方法名相同,但是引數列表不同
引數列表
引數列表不同包括:
1.引數個數不同
2.引數型別不同
3.引數的多型別順序不同
注意事項
1.方法過載與引數名無關
2.方法過載與方法的返回值型別無關
package com.company.method; /** * 方法過載:即多個方法的方法名相同,引數列表不同 * 引數列表不同:1.引數的個數不同 * 2.引數的型別不同 * 3.引數的多型別順序不同 * 方法過載與什麼無關? * 1.與引數的名稱無關 * 2.與方法的返回值型別無關 * */ public class MethodOverLoad2 { public static void main(String[] args) { //引數個數不同 System.out.println(sum1(1,2)); System.out.println(sum1(1,2,3)); //引數型別不同 System.out.println(sum2(1,2.3)); System.out.println(sum2(1,2)); //引數的多型別順序不同 System.out.println(sum3(3.5,2)); System.out.println(sum3(2,5.5)); } //引數個數不同 public static int sum1(int a, int b){ return a + b; } public static int sum1(int a,int b, int c){ return a + b + c; } //引數型別不同 public static int sum2(int m,double n){ return (int) (m+n); } public static int sum2(int m,int n){ return m+n; } //引數的多型別順序不同 public static double sum3(int x,double y){ return x+y; } public static double sum3(double x,int y){ return x+y; } }
陣列
1.初始陣列
1.1概念
陣列相當於一個容器,可以同時存放多個數據值
1.2特點
1.陣列是一種引用的資料型別
2.陣列當中的多個數據,型別必須保持一致
3.陣列的長度在程式執行期間不可以改變
2.初始化陣列
2.1動態初始化【指定陣列的長度】
格式:資料型別[] 陣列名稱 = new 資料型別[陣列長度]
2.2靜態初始化【指定陣列的內容】
格式1:資料型別[] 陣列名稱 = new 資料型別[]{元素1,元素2,元素,...}
格式2:資料型別[] 陣列名稱 = {元素1,元素2,...}
package array; /** * 動態初始化和靜態初始化都可以拆成兩個步驟 * 但是! * 當靜態初始化用的是省略模式的時候,不可以拆分成兩個步驟 */ public class ArrayChapter08 { public static void main(String[] args) { //動態初始化:指定陣列長度,不指定陣列內容 int[] arrayA ; arrayA = new int[5]; //標準式靜態初始化:指定陣列內容 String[] arrayB ; arrayB = new String[] {"hello","lucky","fighting"}; //省略式靜態初始化 double[] arrayC = {1.2,3.4,5.6}; } }
3.訪問陣列
package array; /** * 動態初始化和靜態初始化都可以拆成兩個步驟 * 但是! * 當靜態初始化用的是省略模式的時候,不可以拆分成兩個步驟 */ public class ArrayChapter08 { public static void main(String[] args) { //動態初始化:指定陣列長度,不指定陣列內容 int[] arrayA ; arrayA = new int[5]; //標準式靜態初始化:指定陣列內容 String[] arrayB ; arrayB = new String[] {"hello","lucky","fighting"}; //省略式靜態初始化 double[] arrayC = {1.2,3.4,5.6}; //直接列印該陣列 System.out.println(arrayA);//直接列印陣列名,得到的是一個記憶體地址[I@1b6d3586 //按索引號遍歷陣列 System.out.println(arrayB[0]); //hello System.out.println(arrayB[1]); //lucky System.out.println(arrayB[2]); //fighting //索引值是從0開始的,超出索引值會報錯Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3 //System.out.println(arrayB[3]); System.out.println("================"); //for迴圈遍歷陣列 for (int i = 0; i < 3; i++) { System.out.println(arrayB[i]); } System.out.println("================"); for (int i = 0; i < 3; i++) { System.out.println(arrayA[i]); //得到的全是0 /*1.動態初始化陣列的時候,陣列中的元素會預設擁有一個預設值 * 整型陣列,元素預設值是0 * 浮點型陣列,元素預設值是0.0 * 字元型陣列,元素預設是'\u0000' * 布林型陣列,元素預設是false * 引用型陣列,元素預設是null * 2.靜態初始化陣列,一開始也是有元素預設值的過程,但是系統會立刻馬上再將元素的預設值替換成大括號裡我們指定好的值 */ } } }
4.獲取陣列的長度
格式:陣列名稱.length
這將會得到一個int數字,代表陣列的長度
int[] arrayD = new int[5];
System.out.println(arrayD.length); //獲取陣列的長度,得到5
5.java的記憶體需要劃分成為5個部分
6.有關陣列的小練習
package array;
/**
* 要求遍歷陣列,找到它的最大值
*/
public class ArrayChapter09 {
public static void main(String[] args) {
int[] arrayA = new int[]{23,45,12,78,54,33,99};
int max_num = arrayA[0]; //暫且將0號元素賦給max_num
for (int i = 1; i < arrayA.length; i++) {
if (arrayA[i] > max_num){
max_num = arrayA[i];
}
}
System.out.println("the max num is : "+max_num);
}
}