package methods;
public class Methods {
/*
* Java的方法和其他语言的函数是一样的
* 方法包含方法头和方法体:主要成分有:
* 修饰符:可选,告诉编译器如何调用方法,定义了访问方法的类型
* 返回值类型: 方法可能会返回值也有可能不会返回值,返回值为空是void
* 方法名: 是方法的实际名称,方法名和参数表共同
* 参数类型:参数是可选的,参数类型规定的参数的类型
* 方法体: 定义该方法的功能
* */
/*
* 方法的重载:重载就是再一个类中,方法的名称可以相同,用形参来进行区分
* //这和javaScript是有区别的,JS里明确规定函数的名称不能重复不能重载,原因就是在于JS的函数没有函数标签,所谓的函数标指的就是参数类型以及参数个数
* 重载的规则如下:
* 方法名称必须相同
* 参数列表必须不同(个数、类型)
* 方法的返回类型可以相同或者不相同
* 仅返回类型不同不足以成为方法的重载
* 实现理论: 方法名称相同时,编译器会根据参数的个数和类型去匹配,来选择对应的方法,如果匹配失败,编译报错
* */
public static void main(String[] args) {
int sum = getSum(2,3);
System.out.println(sum);
int temp = getFei(5);
System.out.println(temp);
// 方法重载
int mul1 = getMultiple(2);
//8
System.out.println(mul1);
int mul2 = getMultiple(2,9);
//18
System.out.println(mul2);
print(1,2,3);
print(1,2,3,4,5,6);
}
// 两数求和
public static int getSum(int a, int b){
return a+b;
}
// 递归求阶乘
public static int getFei(int num){
if(num <= 1){
return 1;
}else{
return num * getFei(num -1);
}
}
// 方法重载
public static int getMultiple(int num){
return num * 4;
}
public static int getMultiple(int num,int num2){
return num * num2;
}
// 可变参数:可变参数一定放在最后其他参数之后,一个方法只可以有一个可变参数
public static void print(int ...num){
for (int item: num) {
System.out.print(item);
}
System.out.println();
}
}
数组:
package methods;
import java.util.Arrays;
import java.util.List;
public class Array {
/*
* 数组: 相同类型的数据的有序集合
* 与js去别的是: JS的数组可以存放各种数据类型的数据,一个数组中,里面的元素既可以是字符串,也可以是对象等其他类型
* 定义和访问: java采用new操作符来定义数组,通过下标来设置以及访问数组,下标从0开始,通过array.length来获取数组长度
* 下标的合法区间是[0,length-1]
* 数组的长度是确定的,下标不能越界,否则会报错: ArrayIndexOutOfBandsException:数组下标越界
* 特点:
* 长度是确定的,一旦被创建,长度就是不可更改的
* 同一数组中的元素必须是相同类型,不能出现混合类型
* 数组中的元素可以是基本类型也可已是引用类型
* 数组变量属于引用类型,本身就是对象,JAVA中对象是存在于堆中的,因此无论数组中保存的是引用或者基本类型,都是存在于堆中的
* 常用方法:
* fill():填充数组
* sort(): 排序
* toString(): 返回数组元素的字符串拼接方式
* asList(): 转换为链表(不可使用基本类型的数据进行转换)
*
*后续方法继续补充~
*
* */
public static void main(String[] args) {
defineArray();
getList();
getTwoDirArray();
sparseArray();
}
public static void defineArray(){
// 第一种方法:
int [] array1 = {1,2,3,4,5};
for (int item: array1) {
System.out.println(item);
}
// 第二种
int [] array = new int[10];
array[8] = 12;
for (int item: array) {
System.out.println(item);
}
}
// 转换为链表
public static void getList(){
Integer [] aa = {1,2,3,4,5,6,67,7};
List<Integer> listaa = Arrays.asList(aa);
System.out.println(listaa);
}
// 遍历二维数组
public static void getTwoDirArray(){
int [][] temp = new int[5][5];
for ( int[] item: temp) {
for (int child:item) {
System.out.print(child);
System.out.println();
}
}
}
// 稀疏数组
public static void sparseArray(){
int [][] temp = new int [5][5];
temp[2][3] = 6;
temp[3][4] = 12;
// 打印数组
for(int i = 0; i< temp.length; i++){
for(int j = 0;j<temp[i].length;j++){
System.out.print(temp[i][j]);
System.out.print(" ");
}
System.out.println();
}
}
}
本来想写一下稀疏数组的,看来得明天写了呀!