Day 5 Java 方法
定义
语句的集合,一起执行一个功能
本意是功能块,实现某个功能的 语句块的集合
eg:
点击查看代码
package methods;
public class Demo1 {
// main 方法: 主要的方法,用于运行调用,给程序管的
public static void main(String[] args) {
// int sum = add(1, 2);//实际参数
// System.out.println(sum); // sum = 3
test();
}
//我们自己写的方法
// 加法
// 返回值 起名 参数
public static int add(int a, int b) //形式参数
{
return a + b; //方法,本质就是功能块: 一个方法只完成一个功能
}
public static void test(){
for(int i =0; i<= 1000; i++){
if ( i % 5==0){
System.out.print(i+ "\n");
if (i%(5*3)==0) {
System.out.println();
}
}
}
}
}
方法的定义和调用
组成部分
修饰符:告诉编译器如何调用方法,定义方法的访问类型
返回值:有的有具体类型,有的没有(用void)
eg: public static void main
方法名:给方法起的名字
参数类型:一个占位符,方法被调用的时候传递值给参数
形式参数
eg: public static int sum (int a, int b) _ 这个就是形式参数,不会赋值
实际参数
eg: public static void main(String[] args){
int sum = add(1, 2) } 实际参数,赋了具体的值了
组成:
修饰符 返回值类型 方法名 (参数类型 参数名){
......
方法体(写的一些结构啥的)
.......
return 返回值;
}
点击查看代码
package methods;
public class Demo1 {
// main 方法: 主要的方法,用于运行调用,给程序管的
public static void main(String[] args) {
// int sum = add(1, 2);//实际参数
// System.out.println(sum); // sum = 3
test();
}
//我们自己写的方法
// 加法
// 返回值 起名 参数
public static int add(int a, int b) //形式参数
{
return a + b; //方法,本质就是功能块: 一个方法只完成一个功能
}
public static void test(){
for(int i =0; i<= 1000; i++){
if ( i % 5==0){
System.out.print(i+ "\n");
if (i%(5*3)==0) {
System.out.println();
}
}
}
}
}
方法的重载
即在一个类中,有相同的函数名称,但是不同的参数
方法的名称必须相同
参数列表必须不同(个数不同,或者类型不同,参数排列顺序不同等)
可以使得实现不同要求输出
点击查看代码
package methods;
public class Demo02 {
public static void main(String[] args) {
double max = max(10.0, 12.0);
System.out.println(max);
}
//double _其实就是方法重载,改变了参数
public static double max(double number1, double number2){
double result =0;
if(number1 == number2){
System.out.println("number1= number2");
return 0; //终止方法
}
if(number1>number2){
result = number1;
}
else {
result = number2;
}
return result;
}
//比大小
public static int max(int number1, int number2){
int result =0;
if(number1 == number2){
System.out.println("number1= number2");
return 0; //终止方法
}
if(number1>number2){
result = number1;
}
else {
result = number2;
}
return result;
}
}
//方法重载: 名字都是一样,就是参数不同,例如上面的参数int 变成 double 其他都不变,这样就是方法重载
/*
* 方法名称必须相同
* 参数必须不同(个数不同,或者类型不同,参数排列顺序不同)
* */
可变参数
在方法声明中,在指定参数类型后加一个省略号(...)
但是它必须放在最后面,即是方法的最后一个参数
点击查看代码
package methods;
//可变参数
public class Demo3 {
public static void main(String[] args) {
Demo3 demo3 = new Demo3();
demo3.test(1, 2, 3, 4, 5, 6);
}
//参数类型必须一样,比如如下不可以是double + int
//可变参数必须放在最后
public void test(int x, int... i){
System.out.println(i[0]); //输出2
System.out.println(i[1]); //输出 3
System.out.println(i[2]); //输出4
System.out.println(i[3]); //输出5
}
}
递归概念
结构:递归头:什么时候不调用自身方法,最开始的数
递归体:什么时候调用自身方法
只适用于小范围情况,因为它属于栈结构,需要很大的空间
点击查看代码
package methods;
//递归:只能用在小范围的情况,但是思路很重要
public class Demo5 {
public static void main(String[] args) {
//阶乘
System.out.println(f(2));
}
public static int f(int n){
if (n == 1){
return 1; //递归头
}else{
return n*f(n-1); //递归体
}
}
}
posted on 2025-09-12 14:03 escapedlili 阅读(6) 评论(0) 收藏 举报
浙公网安备 33010602011771号