方法Method
在java中所有的功能使用方法来定义
方法:
定义某种功能的代码段
方法的作用:
简化代码的编写
提高代码的复用性
注意:
方法不调用不执行
方法不能嵌套,定义在类中方法外
方法的定义:
修饰符 返回值类型|void 方法名(参数列表){
实现功能的代码段;
[return 返回值;]
}
修饰符: public static 访问权限修饰符
返回值类型|void:
这个方法执行完毕之后,调用方法的位置是否要等到一个结果,一个值,如果是就定义成有返回值类型的方法,如果不是就定义成没有返回值类型的方法
void : 没有返回值类型的方法
返回值类型 : 有返回值类型的方法
返回的值的数据类型
返回值类型可以为任意类型(基本数据类型|引用数据类型)
方法名: 标识符 方法的调用的根据方法名进行调用
遵循标识符的规则或者规范
(参数列表): 可以有参数,可以没有参数,可以存在多个参数
方法在定义过程中有没有不确定的数据,未知的数据,有就定义在参数列表上
参数: 数据类型 参数名,数据类型 参数名…
方法的参数->相当于局部(当前方法内部)变量的声明,什么时候赋值,在调用方法的时候,方法的参数才有值
{} : 实现工具具体的语句体代码段
return :
1.提前结束方法 (相当于循环中的break;)
2.在有返回值类型的方法中,必须存在,return 返回值,带出一个返回值
注意: 如果是有返回值类型的方法,方法体中必须配合return关键字一起使用,作用是带出返回值
定义方法的分析步骤:
1.方法的实现需求
2.方法的名字 : 见名知意
3.返回值|void: 这个方法执行完毕之后,调用方法的位置是否要等到一个结果,一个值
4.参数:方法在定义过程中有没有不确定的数据,未知的数据,有就定义在参数列表上
方法调用: 执行方法中的代码
方法名(实参);
有返回值类型的方法:
1.输出调用 System.out.println(方法名(实参)); --1)执行方法中的所有代码 2)打印方法的返回值
2.赋值调用 数据类型 变量名 = 方法名(实参); --1)执行方法中的所有代码 2)返回值赋值给一个变量
参数:
形式参数 : 形参
定义方法时候()中的参数
实际参数 : 实参
调用方法时候()中的参数
public class MethodDemo10{
//程序的入口 逐行执行主方法中的代码
public static void main(String[] args){
//调用
System.out.println(getSum(3,5));;
int result = getSum(3,10);
System.out.println(result);;
clear();
clear();
}
//需求: 计算2个整数的和 int
//方法名: getSum
//返回值类型|void : 有返回值类型的方法 int->return
//参数: int a,int b
public static int getSum(int a,int b){
System.out.println("有返回值,有两个int参数的方法getSum");
return a+b;
}XXX
//需求: 打扫全校卫生功能
public static void clear(){
System.out.println("XXX打扫整个学校卫生!!!!");
}
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210326221452970.png#pic_center)
# 参数:
**形参**
**实参**
**要求一一对应**
**个数**
**类型**
**顺序**
**注意: 方法的形参相当于局部变量的声明,局部:当前方法**
**方法的形参没有默认,形参的值由实参决定**
****
## **return :**
**1) 提前结束方法 2)带出返回值,返回给方法的调用处**
**在有返回值类型的方法中必须存在return关键,并且必须带出带出返回值**
**没有返回值类型的方法可以存在return,不能带出返回值,只能结束方法**
****
## **不可达语句:**
**1.return后面的语句**
**2.while--false中的代码**
**3.死循环后的代码 for(;;){} while(true){}**
**4.break与continue的后面代码**
## **方法签名:**
**方法名+参数列表 ->标识方法的唯一,相当于人的身份证号**
```Java
public class MethodDemo11{
public static void main(String[] args){
//欺骗编译器
boolean flag = false;
while(flag){
System.out.println("while--false的语句");
}
//死循环
/*
while(true){
}
for(;;){}
do{}while(true);
*/
for(int i=1;i<=10;i++){
if(i==5){
break;
System.out.println("while--true的语句");
}
}
}
public static void test2(int i){ //int a = 1;
if(i==5){
return; //提前结束方法
//System.out.println("return后面的语句");
}
System.out.println("i!=5");
}
//有返回值类型的方法
public static boolean test(int i){ //int a = 1;
if(i==5){
return false; //提前结束方法
//return false;
//System.out.println("return后面的语句");
}
System.out.println("i!=5");
return true;
}
}
方法类型转换
方法的兼容类型问题:(类型转换问题)
参数类型
形参的类型>=实参的类型
返回值类型
接收返回值的变量的类型>=方法的返回值类型>=return后面数据的类型
注意:
以后的功能代码都定义在某个方法中,封装方法
```Java
public class MethodDemo12{
public static void main(String[] args){
long b = 1;
test((int)b);
int b2 = test(1);
System.out.println(test2());
}
public static int test(int i){
return 'a'; //char可以转换成为int类型
}
public static char test2(){
return 97; //char类型的表现形式之一: 可以使用0~65535之间的整数来表示一个字符
}
}