Java方法
方法: 解决事情的办法
-
实现功能的代码段
-
优点:
-
1)提到代码的复用性
-
2)便于后期维护
-
特点:
-
1)不调用不执行
-
2)方法不能嵌套,定义在类中方法外的位置
-
定义:
-
有返回值类型的方法
-
修饰符 返回值类型 方法名(参数列表){
-
实现功能的代码段;
-
return 返回值;
-
}
-
修饰符 : 访问权限修饰符,先默认定义为public static
-
返回值类型 : 思考方法体代码执行完毕之后,是否需要得到一个结果|数据值,如果需要就定义为有返回值类型的方法,不需要就定义为没有返回值类型的方法
-
结果的数据类型
-
基本数据类型|引用数据类型
-
方法名 : 根据方法名调用方法
-
标识符: 符合标识符的规则与规范
-
(参数列表) : 可以定义参数,可以不定义参数,可以定义多个参数
-
分析: 在方法的定义或者实现过程中,是否存在未知的,不确定的,可能会改变的数据,如果存在定义在方法的参数列表上
-
参数列表: 数据类型 参数名1,数据类型 参数名2.... --> 相当于变量的声明
-
数据类型可以为任意数据类型
-
{} : 方法体语句, 实现功能的代码段;
-
return : 1)提前结束方法 2)带出返回值 return 返回值;
-
在一个有返回值类型的方法必须 存在return关键字
-
没有返回值类型的
-
方法修饰符 void 方法名(参数列表){
-
方法体语句;
-
[return]
-
}
-
void : 标识没有返回值类型的方法
-
return : 1)提前结束方法
-
方法的调用:
-
有返回值类型的方法:
-
1.普通调用
-
2.输出调用
-
3.赋值调用
-
没有返回值类型的方法;
-
1.普通调用
-
方法的参数:
-
1.形式参数(形参) : 定义方法时()中的参数
-
2.实际参数(实参) : 调用方法时()中的参数
-
形参与实参之间需要一一对应
-
个数一致
-
类型一致
-
不同类型的形参顺序一致
-
调用:
-
执行方法中的代码
-
普通调用: 方法名(参数列表);
-
有返回值类型的方法调用时候需要接收返回值:
-
1)赋值调用
-
数据类型 变量名 = 方法名(参数列表);
-
2)输出调用
-
System.out.println(方法名(参数列表));
-
没有返回值类型的方法
-
3)普通调用
-
方法名();
-
形参不赋值是否存在默认值
-
方法的形参相当于局部变量的声明
-
不存在默认值,所有形参与实参之间要求一一对应
public class Class001_Method { //类中方法外的位置 public static void main(String[] args) { //赋值调用 double d = getPI(); System.out.println(d); //输出调用 System.out.println(getPI()); System.out.println(getSum(3,5)); //普通调用:无法接受返回值 getPI(); print(); } //需求 : 定义一个功能: 返回PI的值 //返回值: 需求 double //参数: 不需要 //方法名: getPI() public static double getPI(){ System.out.println("有返回值的,没有参数的方法"); return 3.1415926; } //需求: 求两个整数的和 //返回值: 需要 int //参数: 两个整数 int x,int y //方法名: getSum public static int getSum( int x,int y){ System.out.println("有返回值的,有参数的方法"); return x+y; } //封装一个99乘法表输出 //返回值: 不需要 //参数: 不需要 public static void print(){ for(int i=1;i<=9;i++){ for(int j=1;j<=i;j++){ System.out.print(j+"*"+i+"="+i*j+"\t");//没有返回值和参数的方法 } System.out.println(); } } }
-
return 与 兼容类型 :
-
return 返回
-
1)提前结束方法
-
2)在有返回值类型的方法中,return带出返回值 return 返回值
-
返回给方法得到调用处
-
在有返回值类型的方法中必须存在return
-
不可达语句: 没有执行时机
-
1)能够执行到return后面的代码
-
2)while--true for(;;){} 死循环后面的代码
-
3)continue后面
-
4)break后面
-
5)while-->false
-
兼容类型:
-
参数: 形参的类型>=实参的类型
-
返回值: 接收返回值的变量类型>=方法的返回值类型>=return后面数据的类型
-
方法的重载:
-
前提: 当一个类中实现某个功能的时候,这个功能却有不同的实现方式|需要接受不同的参数,可以让这些相同功能实现的方法,构成方法的重载,就允许方法名相同
-
要求
-
同一个类中的多个方法 方法名相同 参数列表不同|方法签名不同
-
方法签名 : 方法名+参数列表 区分方法的唯一标识
-
注意:
-
参数列表不同:
-
参数个数不同
-
数的类型不同
-
不同类型的参数顺序不同
-
重载方法如何调用:
-
方法名(实参);
-
有实参决定重载方法的调用
-
注意问题
-
1.方法的重载与方法的修饰符是否有关? 无关
-
2.方法的重载与方法的返回值类型是否有关? 无关
-
3.方法的重载与参数的名字是否有关? 无关
-
总结:
-
方法的重载只与方法签名有关
-
方法就是封装的一种体现
-
方法的重载就是多态的一种体现
public class Class001_Overload { public static void main(String[] args) { getSum(1,1.1); } //对数求和 public static void getSum(int x,int y){ System.out.println("两个int类型参数的和"+(x+y)); } public static void getSum(int x,int y,int z){ System.out.println("三个int类型参数的和"+(x+y+z)); } public static void getSum(int x,double y){ System.out.println("一个int,一个double类型参数的和"+(x+y)); } public static void getSum(double y,int x){ System.out.println("一个double,一个int类型参数的和"+(x+y)); } }
-
方法的递归(了解)
-
定义:是一种直接或者间接调用自身的方法
-
优点:合理的位置使用递归可以简化代码结构
-
缺点:在结构复杂的情况,大量的占用内存,有可能降低效率,可能会遇到内存溢出。
-
临界条件:
-
停止自己调用自己的条件
-
递归前进段: 不停的自己调用自己,知道临界条件之间这个过程
-
递归后退段: 从临界条件开始,将结果返回给调用的上一层的过程
public class Class001_Recursion { public static void main(String[] args) { System.out.println(recursion(3));; } //递归 : 求某个数阶乘 5! = 5*4! //返回值: 需要 int //参数: int i public static int recursion(int i){ //临界条件 if(i==1){ return 1; } return i * recursion(i-1); } }