修饰符:可选的,定义方法的访问类型、
返回值类型:返回值类型需与return类型一致
方法名:小写开头,驼峰原则
参数类型:形参,可选
方法体:定义方法功能
修饰符 返回值类型 方法名(参数类型 参数名) {
...
方法体
...
return 返回值;
}
// 示例代码 public static int add(int a, int b){ return a+b; }
调用方法:对象名.方法名(实参列表)
有返回值时
int sum = add(10, 20);
无返回值时
System.out.println("hello world!");
重载:在一个类当中,函数名相同,形参不同
重载规则:
方法名相同
参数列表不同(个数或类型,参数排列顺序不同)
返回类型可相同也可不同
返回类型不同不足以成为方法的重载
打开cmd
跳转到src目录
输入 java com.Coline.method.Demo this is coline(向main函数传参)
在参数类型后加...
注意:可变参数需要加参数最后(同python)
// 部分示例代码: public static void add(int a,int b, double... numbers){ // 代码块 }
少量代码解决一些繁琐问题(代价:基数大会消耗大量空间)
// 部分示例代码 // 递归解决:阶乘问题 public static int function(int a){ if(n == 1){ return 1; } return n * f(n-1) }
数组(引用类型):相同类型数据的有序集合
dataType[ ] arrayRefVar; 首选方法
或
dataType arrayRefVar[ ]; 效果相同,非首选方法(与c/c++创建数组一致)
Java语言中使用new操作符来创建数组
dataType[ ] arrayRefVar = new dataType[arraySize];
// 部分代码示例 int[] nums1; // 1.声明数组 nums1 = new int[10]; // 2.创建数组 //等效 int[] nums2 = new int[10]; // 声明 + 创建
初始化
静态初始化
int[] a = {1,2,3}; Student[] students = { new Student(18,"张三"), new Students(20, "李四") };
动态初始化
int[] a = new int[2]; a[0] = 1; a[1] = 2;
默认初始化
动态初始化未完全赋值,数组未赋值部分默认赋值为0(八大基本类型赋值为 0,其他类型赋值为null)
内存解释:内存中,声明数组在栈中压入数组名,创建数组在堆中划分内存创建数组赋默认值。
通过for循环遍历
二维数组:
// 声明创建 + 赋值 int[][] a = { {1, 2}, {3, 4}, {5, 6} }; // 三行两列的数组
Arrays类常用方法:
int[] a = {1, 23, 324, 5} System.out.println(Arrays.toString(a)) // 打印数组 Arrays.sort(a) // 数组排序,升序,在原数组上直接排序 Arrays.fill(a, formIndex: 2, toIndex: 4, val: 0); // 给指定数组赋值,取的下标**前开后闭** equals(a, b) // 比较两个数组,若顺序数量都相同,则返回true,否则返回false Arrays.binarySearch(a, val: 1) // 二分法查数据,调用前需使用sort方法排序,输出后返回数组下标
数组:
0 1 0 0 0
0 0 42 0 0
0 0 0 0 0
0 0 0 23 0
稀疏数组:
行(row) | 列(col) | 值(value) | |
---|---|---|---|
[0] | 4 | 5 | 3 |
[1] | 1 | 2 | 1 |
[2] | 2 | 3 | 42 |
[3] | 4 | 4 | 23 |
第0行储存总行数和总列数和有多少个非0项