方法和数组
Array
// 数组的操作 public class ArrayDemo { public static void main(String[] args) { int[] arr = new int[]{1,3,5,7,9}; System.out.println(arr); // [I@659e0bfd System.out.println("数组长度="+arr.length); // 获取出arr数组中,索引为3的元素 int ele = arr[3]; System.out.println(ele); // 7 // 把arr数组中索引为3的位置重新设置为77 arr[3] = 77; // 取出数组中每一个元素值 System.out.println(arr[0]); // 1 System.out.println(arr[1]); // 3 System.out.println(arr[2]); // 5 System.out.println(arr[3]); // 77 System.out.println(arr[4]); // 9 System.out.println("-------------------------"); for(int index = 0; index < arr.length; index++) { System.out.println(arr[index]); // 1 3 5 77 9 } arr = new int[]{1,3,5,7,9}; System.out.println(arr[4]); // 9 int[] arr2 = {1,3,5}; System.out.println(arr2.length); // 3 } }
// 数组的基本操作2 public class ArrayDemo2 { public static void main(String[] args) { int[] arr = new int[]{7, 11, 7, 3, -5, 7, 9, 8}; int max = getMax(arr); System.out.println(max); // 11 System.out.println(getMin(arr)); // -5 // 调用打印 print(arr); // [7,11,7,3,-5,7,9,8] print2(arr); // 获取arr中7第一次出现的索引 int startIndex = indexOf(arr, 17); // 返回最开始出现的位置 System.out.println(startIndex); // 取出最后一次出现的位置 int endIndex = lastIndexOf(arr, 7); System.out.println(endIndex); } // 获取指定元素在指定数组的第一次出现的位置 static int indexOf(int[] arr, int key) { for (int index = 0; index < arr.length; index++) { if (arr[index] == key) { return index; } } return -1; // 表示找不到 } static int lastIndexOf(int[] arr, int key) { for (int index = arr.length - 1; index >= 0; index--) { if (arr[index] == key) { return index; } } return -1; } // [7,11,7,3,-5,7,9,8] static void print(int[] arr) { String str = "["; for (int i = 0; i < arr.length; i++) { str = str + arr[i]; // 不是最后一个元素 if (i != arr.length - 1) { str = str + ", "; } } str = str + "]"; System.out.println(str); } // 逆序打印 static void print2(int[] arr) { String str = "["; for (int i = arr.length - 1; i >= 0; i--) { str = str + arr[i]; // 不是最后一个元素 if (i != 0) { str = str + ", "; } } str = str + "]"; System.out.println(str); } // 定义方法:取出数组中的最大值 static int getMax(int[] arr) { int max = arr[0]; // 默认第一个元素就是最大值 for (int i = 0; i < arr.length; i++) { // 若发现某一个元素比max变量更大,就应该临时保存到max变量中,再继续做比较 if (arr[i] > max) { max = arr[i]; } } return max; } // 定义方法:取出数组中的最小值 static int getMin(int[] arr) { int min = arr[0]; for (int i = 0; i < arr.length; i++) { if (arr[i] < min) { min = arr[i]; } } return min; } }
DynInit
// 数组的动态初始化 public class DynInitDemo { public static void main(String[] args) { // 创建一个长度为5的数组 int[] nums = new int[5]; // 创建一个长度为3的数组 nums = new int[3]; // 创建一个长度为4的数组 String[] names = new String[4]; } }
Method
public class MethodDemo1 { // 无参数无返回:定义一个打印Hello的方法 static void p() { System.out.println("Hello"); } // 有参数无返回 static void p2(String data) { System.out.println(data); } // 无参数有返回 static int getAge() { return 16; } // 有参数有返回:该方法接收一个名字,返回Hello名字 static String sayHello(String name) { return "hello " + name; } public static void main(String[] args) { // 调用p方法 p(); // 调用p2方法 p2("世界"); p2("Hello"); // 调用getAge方法 int age = getAge(); System.out.println(age); // 调用sayHello方法 String s = sayHello("will"); System.out.println(s); // 调用getSum方法 // 3 和 4 之和 int a = 3; int b = 4; int sum = getSum(a, b); System.out.println(sum); } // 定义两个整数求和的功能 static int getSum(int x,int y) { int z = x + y; return z; } }
MethodOverload
// 方法重载 public class MethodOverloadDemo { public static void main(String[] args) { /** * 两同一不同: * 两 同: 方法必须在同一个类中,并且方法的名字相同. * 一不同: 方法各自的参数列表不同(参数类型,参数个数,参数顺序). * 遵循了两同一不同原则的多个方法,之间就属于重载关系. */ double ret = getSum(1,3.14); System.out.println(ret); // 4.140000000000001 System.out.println(); System.out.println(true); // true System.out.println('A'); // A System.out.println(123); // 123 System.out.println(3.14); // 3.14 } // 求两个整数之和 static int getSum(int x, int y) { return x + y; } // 求两个小数之和 static double getSum(double x, double y) { return x + y; } // 求一个整数和一个小数之和 static double getSum(int x, double y) { return x + y; } }
Recursion
// 递归操作 public class RecursionDemo { public static void main(String[] args) { /** * 斐波纳契数列,其通项公式为: * F(0)=0,F(1)=1,Fn=F(n-1) +F(n-2)(n>=3,n∈N*), * 现在求F(5)的值,怎么做呢? */ int ret = fn(6); System.out.println(ret); // 8 } static int fn(int n) { if (n == 0) { return 0; } else if (n == 1) { return 1; } else { return fn(n - 1) + fn(n - 2); } } }
StaticInit
// 数组的静态初始化 public class StaticInitDemo { public static void main(String[] args) { // 存储5个奇数 int[] nums = new int[]{1, 3, 5, 7, 9}; System.out.println("length="+nums.length); // 数组长度/有几个元素个数 // 创建新的数组,并赋值给nums变量 nums = new int[]{2,4,6}; System.out.println("length="+nums.length); String[] names = {"A","B","C"}; } }