函数学习
最后附上全部java源码,可自行下载学习
文章目录
- 函数入门
- 函数重载
- 函数可变个数参数
- foreach输出
- 传参 基本数据类型
- 传参_引用数据类型
- 文件夹展示所有里面的文件
- 使用递归算法展示文件夹下所有文件
- 1加到100的递归调用
- 下载链接
函数入门
函数重载
public class Demo01 {
/*
函数重载原则:
方法名相同
参数列表不相同
注意:
与返回值无关
*/
public static void main(String[] args) {
f01(1.0);
f01(1);
}
public static void f01(double money) { // double
System.out.println("f01(double money) 被调用了");
}
public static int f01(int age) { // int
System.out.println("f01(int age) 被调用了");
return 100;
}
}
函数可变个数参数
import java.util.Arrays;
public class Demo02 {
/*
函数可变参数
*/
public static void main(String[] args) {
f01(new int[]{1,3,5,7,9});
f01();
f01(1);
f01(1, 2);
f01(1, 2, 3);
}
public static void f01(int... x) { // 总而言之,不管如何传参数,x最终是int[]一维数组
System.out.println("f01(int...) 被调用了");
System.out.println(Arrays.toString(x));
}
}
foreach输出
public class Demo03 {
/*
函数可变参数
*/
public static void main(String[] args) {
f01(new int[]{1,3,5,7,9});
f01();
f01(1);
f01(1, 2);
f01(1, 2, 3);
}
public static void f01(int... arr) { // 总而言之,不管如何传参数,x最终是int[]一维数组
System.out.println("f01(int...) 被调用了");
// 自动循环arr数组,也知道何时结束,每次取出一个送到变量a上
for (int a : arr) { // foreach输出(增强版for循环),没有下标了
System.out.println(a);
}
}
}
传参 基本数据类型
public class Demo04 {
public static void main(String[] args) {
int y = 10;
f01(y); // y实参。都是值传递。
System.out.println("Y:" + y);
}
/*
x,形参
*/
public static void f01(int x) {
System.out.println(x);
x++;
System.out.println(x);
}
}
传参_引用数据类型
import java.util.Arrays;
public class Demo05 {
public static void main(String[] args) {
int[] y = {10, 20, 30};
f01(y); // y实参。都是值传递。
System.out.println("y: " + Arrays.toString(y));
}
/*
x,形参
*/
public static void f01(int[] x) {
System.out.println(Arrays.toString(x));
x[1]++;
System.out.println(Arrays.toString(x));
}
}
文件夹展示所有里面的文件
使用递归算法展示文件夹下所有文件
import java.io.File;
public class Demo06 {
public static void main(String[] args) {
showFiles(new File("E:\\202203\\计科\\函数\\学习\\1"));
}
/*
展示文件夹下所有的文件,包含子文件夹下的文件
*/
public static void showFiles(File file) {
File[] files = file.listFiles(); // 枚举该文件夹file对象下的文件或文件夹对象
for (File f : files) {
if (f.isFile()) System.out.println(f.getName()); // 文件
if (f.isDirectory()) showFiles(f); // 递归调用文件夹
}
}
}
1加到100的递归调用
public class Demo07 {
public static void main(String[] args) {
System.out.println(sum(100));
}
public static int sum(int count) {
if (count == 1) return 1;// 结束条件
return sum(count-1)+count; // 递归表达式
}
}
下载链接
https://llzai.lanzoum.com/i3luM14jt6je