MyDay6

文章详细介绍了Java中的静态方法,包括其含义、好处、语法规范以及不同类型的静态方法(无参数无返回值、带参数、带返回值)。接着,文章讨论了方法的重载概念,通过不同参数列表实现同一功能的不同方法。此外,还举例展示了递归方法的应用,如计算斐波那契数列。最后,文章提到了一维数组的声明、初始化和应用,包括如何获取数组中的最大值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MyDay5

静态方法

含义:具有特定功能的代码块

好处:解决了代码的冗余(减少重复性的代码)

语法规范:

​ 访问修饰符 static 返回值类型 方法名(参数列表){

​ …代码块…

​ }

注意:

​ 1、访问修饰符:给方法定义访问权限(public-公有的)

​ 2、理解参数 - 调用方法时传入的数据

​ 3、参数列表 - 可以传入多个数据

​ 4、理解返回值 - 方法执行完毕后返回的数据

方法的分类:

1、无参数无返回值的方法

​ 语法规范:

​ public static void 方法名(){

​ …代 码块…

​ }

​ 1、void - 表示无返回值(关键字)

​ 2、方法写在类中,其他的方法外面(方法与方法之间是平级关系)

​ 3、方法没有调用就是个摆设

​ 4、静态方法使用类名调用(Test01.run())

​ 5、调用方法所在的方法和调用的方法在同一个类中,可以省略类名(run())

2.带参数的方法

​ 语法结构:
​ public static void 方法名(参数列表){
​ …代码块…
​ }

​ 注意:
​ 1.形式参数:称之为形参,声明方法时规定的变量
​ 2.形参必须规定类型
​ 3.实际参数:称之为实参,调用方法时传入的数据
​ 4.形参必须和实参兼容
​ 5.局部变量:方法里的变量(作用域:该方法内)
​ 6.形参相当于该方法的局部变量
​ 7.形参和实参都可以有多个,用逗号分隔

3.带返回值的方法

​ 语法规则:
​ public static 返回值类型 方法名([参数列表]){
​ …代码块…
​ return 数据;
​ }

​ 注意:
​ 1.方法声明是规范返回值类型
​ 2.return返回具体的数据
​ 3.方法功能的单一性:方法里的功能不要过于复杂
​ 4.方法声明时的返回值类型必须和return后面的数据类

方法的重载

含义:方法与方法之间的关系

条件:
1.在同一个类中
2.方法名一致
3.参数列表的个数或者是类型不一致
4.与返回值无关(一个方法有没有返回值,不影响他们之间的重载关系)
好处:系统会根据实参类型自动匹配到对应的方法中

需求:
编写一个方法,传入两个int值,返回最大值 ----- getMax
编写一个方法,传入三个int值,返回最大值 ----- getMax
编写一个方法,传入两个double值,返回最大值 – getMax
编写一个方法,传入三个double值,返回最大值 – getMaxs

public static void main(String[] args){
		
		System.out.println(getMax(10.1,20.1,30));
	}
	
	public static int getMax(int a,int b){
		return (a>b)?a:b;
	}
	
	public static int getMax(int a,int b,int c){
		int max = (a>b)?a:b;
		max = (max>c)?max:c;
		return max;
	}
	
	public static double getMax(double a,double b){
		return (a>b)?a:b;
	}
	
	public static double getMax(double a,double b,double c){
		double max = (a>b)?a:b;
		max = (max>c)?max:c;
		return max;
	}
	
	//编译时只看方法类型,不看方法名
	//以下两个方法是重载关系(参数和参数一一对应)
	public static void method(String str,int i){}
	public static void method(int i,String str){}

}

方法的递归

含义:方法调用方法自身

public static void main(String[] args){
		
		//递归的错误示范
		//StackOverflowError -- 栈内存溢出错误
		//前言:调用方法,就会在栈内存中开辟空间,用于存放该方法的局部变量
		//错误出现原因:死循环的调用方法,栈内存装满并溢出
		method();
		
	}
	
	public static void method(){
		method();
	}
}

注意事项:
1.找规律:什么情况下方法应该调用方法自身
2.找出口:什么情况下应该返回具体的值

需求:不死神兔(斐波那契数列/黄金分割数列)
	有一对兔子,从出生第三个月起每个月都生一对兔子,小兔子长到第三个月后,每个月又生一只兔子,假如兔子都不死,问第n个月的兔子对数为多少。
	分析:
		找规律:当月的兔子对数 = 上个月 + 上上个月
		找出口:1月和2月兔子对数都是1
	*/
	public static void main(String[] args){
		int num = getRabbit(8);
		System.out.println(num);
	}
	public static int getRabbit(int n){
		if(n == 1 || n == 2){
			return 1;
		}else{
			return getRabbit(n-1) + getRabbit(n-2);
		}
	}
}

引用数据类型的分类

分类:数组、类、接口、枚举

知识点:一维数组

含义:一组数据的容器

作用:存储多个数据

数组的声明:数据类型[] 数组名/变量名;

		注意:
			1.数组是引用数据类型
			2.数组中的数据,称之为元素
			3.每个元素都有编号,称之为下标/索引
			4.下标从0开始
			5.下标的作用:通过下标可以定位到数组中的某个位置
			6.数组一旦初始化成功,长度将不可改变
			7.操作数组:
				改 - 通过下标设置元素
				查 - 通过下标获取元素
				查 - 获取元素个数
				查 - 遍历数组
					
		数组的初始化:
			静态初始化:数据由程序员给定,长度由系统分配
			动态初始化:一开始只知道长度
import java.util.Scanner;
public class Test10{
	/**
		知识点:一维数组的应用
		
		需求:创建一个int数组,长度让用户指定,数据有用户输入,获取数组中的最大值
		
		小结:
			数组中的元素可以是基本数据类型
			不管数组中存储的元素是基本数据类型还是引用数据类型,数组都是引用数据类型
	*/
	public static void main(String[] args){
	
		Scanner scan = new Scanner(System.in);
		
		System.out.println("请输入数组的长度:");
		int len = scan.nextInt();
		
		if(len <= 0){
			System.out.println("长度有误~~");
			return;
		}
	
		//动态初始化数组
		int[] is = new int[len];
		
		//循环输入
		for(int i = 0;i<is.length;i++){
			System.out.println("请输入第" + (i+1) + "个数字:");
			int num = scan.nextInt();
			is[i] = num;
		}
		
		//获取数组中的最大值
		
		int max = is[0];//假设数组第一个元素为最大值
		for(int i = 1;i<is.length;i++){
			if(max < is[i]){
				max = is[i];
			}
		}
		
		System.out.println("最大值为:" + max);
		
	}
	
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值