??????? 就是完成特定功能的代码块。
????????
class="java" name="code">修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) { 方法体语句; return 返回值; }
??????????? 修饰符:目前就用 public static。
?? ??? ??? ?返回值类型:就是功能结果的数据类型
?? ??? ??? ?方法名:就是起了一个名字,方便我们调用该方法。
?? ??? ??? ?参数类型:就是参数的数据类型
?? ??? ??? ?参数名:就是变量
?? ??? ??? ?参数分类:
?? ??? ??? ??? ?实参:实际参与运算的数据
?? ??? ??? ??? ?形参:方法上定义的,用于接收实际参数的变量
?? ??? ??? ?方法体语句:就是完成功能的代码块
?? ??? ??? ?return:结束方法
?? ??? ??? ?返回值:就是功能的结果,由return带给调用者。
?
?? ??? ??? ?返回值类型:结果的数据类型
?? ??? ??? ?参数列表:参数的个数及对应的数据类型
?
?? ??? ??? ?A:有明确返回值的方法
?? ??? ??? ??? ?a:单独调用,没有意义
?? ??? ??? ??? ?b:输出调用,不是很好
?? ??? ??? ??? ?c:赋值调用,推荐方案
?? ??? ??? ?B:void类型修饰的方法
?? ??? ??? ??? ?a:单独调用
?
?? ??? ??? ?A:方法不调用不执行
?? ??? ??? ?B:方法之间是平级关系,不能嵌套定义
?? ??? ??? ?C:方法定义的时候,参数是用,隔开的
?? ??? ??? ?D:方法在调用的时候,不用在传递数据类型
?? ??? ??? ?E:如果方法有明确的返回值类型,就必须有return语句返回。
?
?? ??? ??? ?在同一个类中,方法名相同,参数列表不同。与返回值无关。
?? ??? ??? ?
?? ??? ??? ?参数列表不同:
?? ??? ??? ??? ?参数的个数不同。
?? ??? ??? ??? ?参数的对应的数据类型不同。
??????? 存储同一种数据类型的多个元素的容器。
??????? 每一个元素都有编号,从0开始,最大编号是长度-1。
?? ??? ????????? 编号的专业叫法:索引
?? ??? ??? ?A:数据类型[] 数组名;
?? ??? ??? ?B:数据类型 数组名[];
?? ??? ????
?? ??? ??? ?A:动态初始化
?? ??? ??? ??? ?只给长度,系统给出默认值
?? ??? ??? ??? ?
?? ??? ??? ??? ?举例:int[] arr = new int[3];
?? ??? ??? ?B:静态初始化
?? ??? ??? ??? ?给出值,系统决定长度
?? ??? ??? ??? ?
?? ??? ??? ??? ?举例:int[] arr = new int[]{1,2,3};
?? ??? ??? ??? ?简化版:int[] arr = {1,2,3};
?? ??? ??? ?A:栈 存储局部变量
?? ??? ??? ?B:堆 存储所有new出来的
?? ??? ??? ?C:方法区(面向对象部分详细讲解)
?? ??? ??? ?D:本地方法区(系统相关)
?? ??? ??? ?E:寄存器(CPU使用)
?? ??? ??? ?
?? ??? ??? ?注意:
?? ??? ??? ??? ?a:局部变量 在方法定义中或者方法声明上定义的变量。
?? ??? ??? ??? ?b:栈内存和堆内存的区别
?? ??? ??? ??? ??? ?栈:数据使用完毕,就消失。
?? ??? ??? ??? ??? ?堆:每一个new出来的东西都有地址
?? ??? ??? ??? ??? ???? 每一个变量都有默认值
?? ??? ??? ??? ??? ??? ??? ?byte,short,int,long 0
?? ??? ??? ??? ??? ??? ??? ?float,double 0.0
?? ??? ??? ??? ??? ??? ??? ?char '\u0000'
?? ??? ??? ??? ??? ??? ??? ?boolean false
?? ??? ??? ??? ??? ??? ??? ?引用类型 null
?? ??? ??? ??? ??? ???? 数据使用完毕后,在垃圾回收器空闲的时候回收。
?? ??? ??? ?A:一个数组
?? ??? ??? ?B:二个数组
?? ??? ??? ?C:三个数组(两个栈变量指向同一个堆内存)
?? ??? ??? ??? ?方式1:
?? ??? ??? ??? ??
public static void printArray(int[] arr) { for(int x=0; x<arr.length; x++) { System.out.println(arr[x]); } }
?? ??? ??? ??? ??? ?
?? ??? ??? ??? ?方式2:
?? ??? ??? ??? ???
public static void printArray(int[] arr) { System.out.print("["); for(int x=0; x<arr.length; x++) { if(x == arr.length-1) { System.out.println(arr[x]+"]"); }else { System.out.println(arr[x]+", "); } } }
?? ??? ??? ??? ?最大值:
?? ??? ??? ??? ???
public static int getMax(int[] arr) { int max = arr[0]; for(int x=1; x<arr.length; x++) { if(arr[x] > max) { max = arr[x]; } } return max; }
?? ??? ??? ??? ??? ?
?? ??? ??? ??? ?最小值:
?? ??? ??? ??? ???
public static int getMin(int[] arr) { int min = arr[0]; for(int x=1; x<arr.length; x++) { if(arr[x] < min) { min = arr[x]; } } return min; }
?? ??? ??? ??? ?方式1:
?? ??? ??? ??? ????
public static void reverse(int[] arr) { for(int x=0; x<arr.length/2; x++) { int temp = arr[x]; arr[x] = arr[arr.length-1-x]; arr[arr.length-1-x] = temp; } }
?? ??? ??? ??? ??? ?
?? ??? ??? ??? ?方式2:
?? ??? ??? ??? ???
public static void reverse(int[] arr) { for(int start=0,end=arr.length-1; start<=end; start++,end--) { int temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; } }
?? ??? ??? ??? ???
public static String getString(String[] strArray,int index) { return strArray[index]; }
?? ??? ??? ??? ?方式1:
?? ??? ??? ??? ?
public static int getIndex(int[] arr,int value) { for(int x=0; x<arr.length; x++) { if(arr[x] == value) { return x; } } return -1; }
?? ??? ??? ??? ??? ?
?? ??? ??? ??? ?方式2:
?? ??? ??? ??? ???
public static int getIndex(int[] arr,int value) { int index = -1; for(int x=0; x<arr.length; x++) { if(arr[x] == value) { index = x; break; } } return index; }
?
?
??????? 元素是一维数组的数组。
?? ??? ??? ?A:数据类型[][] 数组名 = new 数据类型[m][n];
?? ??? ??? ?B:数据类型[][] 数组名 = new 数据类型[m][];
?? ??? ??? ?C:数据类型[][] 数组名 = new 数据类型[][]{{...},{...},{...}};
?? ??? ??? ?D:数据类型[][] 数组名 = {{...},{...},{...}};
?? ??? ??? ?A:二维数组的遍历
class Array2Test { public static void main(String[] args) { //定义一个二维数组 int[][] arr = {{1,2,3},{4,5,6},{7,8,9}}; //调用方法 printArray2(arr); } public static void printArray2(int[][] arr) { for(int x=0; x<arr.length; x++) { for(int y=0; y<arr[x].length; y++) { System.out.print(arr[x][y]+" "); } System.out.println(); } } }
?? ??? ??? ?B:二维数组的求和
class Array2Test2 { public static void main(String[] args) { //把数据用二维数组来表示 int[][] arr = {{22,66,44},{77,33,88},{25,45,65},{11,66,99}}; //定义一个求和变量sum,初始化值是0。 int sum = 0; //通过遍历就可以得到每一个二维数组的元素。 for(int x=0; x<arr.length; x++) { for(int y=0; y<arr[x].length; y++) { //把元素累加即可。 sum += arr[x][y]; } } //最后输出sum,就是结果。 System.out.println(sum); } }
?? ??? ??? ?C:杨辉三角形
public class Array2Test03 { public static void main(String[] args) { //创建键盘录入对象 Scanner sc = new Scanner(System.in); //打印行数和列数 System.out.println("输入一个数:"); int n = sc.nextInt(); //定义二维数组 int[][] arr=new int[n][n]; //先把每行的第一列和最后一列赋值1 for(int i = 0; i<arr.length; i++) { arr[i][0] = 1; arr[i][i] = 1; } //从第三行开始,除了第一列和最后一列,每个数的值都等于该行的上一行前一列加上上一行本列的和 for(int i = 2; i<arr.length; i++) { for(int j = 1; j<=i-1; j++) { arr[i][j]=arr[i-1][j-1]+arr[i-1][j]; } } //打印二维数组 for(int i=0;i<arr.length;i++) { for(int j=0;j<=i;j++) { System.out.print(arr[i][j]+"\t"); } System.out.println(); } } }
?