import java.util.Scanner;
/*
参数:将方法外部的数据传入方法内部,参数就是变量
形参:形式上的参数,出现在方法定义处必须通过接受实参才能工作
实参:实际的参数,出现在方法调用处
参数赋值过程:
1、形参的个数和实参的个数是一定一样的
2、赋值时是第一个实参赋值给第一个形参,以此类推
3、形参和实参的数据类型要对应,如果不是对应的,我们要保证形参的等级比实参的高
4、要求形参与实参的位置必须一一对应
关于定义和调用
1、定义和调用是一对
只有定义、没有调用、语法不报错、但没有意义。
只有调用、没有定义、错误。
在java中方法的定义不允许嵌套
调用可以嵌套,在其他方法中调用当前方法
特例:在自己里面调用自己,行不行?行、形成死循环
定义一次调用多次。
*/
public class Dome2 {
public static void main(String[] args) {
/*
求两个数的和
*/
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个数:");
int num1 = scanner.nextInt();
System.out.println("请输入第二个数:");
int num2 = scanner.nextInt();
//方法的调用
//num1,num2是实参,就是方法调用处的参数
//这里直接接受的是返回值类型位置的值
int sum = mysum(num1,num2);
System.out.println(sum);
}
//方法的定义
//a、b就是形参:方法定义处的参数
//形参也是局部变量
//static 后面就是返回值类型的位置
//void 代表不需要返回值
static int mysum(int a,int b) {//隐式赋值 :a=num1,b=num2
//sum 给了int
int sum = a + b;
//return 会将数据返后到返回值类型的位置
return sum;
}
/*
return:
两个意思:
1、实现返回值的功能:要与返回值类型配合
2.方法结束
return 本身就是有结束的意思,跟return后面的值无关
>return后面不能写其他代码
>要保证方法中所有分支都能执行return
>无返回值的方法也可以通过return结束
*/
public void playl(){
System.out.println("hello");
//只是结束的意思
return;
}
public int run(int a){
if (a>5){
System.out.println("ok");
}else{
System.out.println("");
}
return a;
}
//必须保证任何必须保证在任何情况下都可以执行到return
// public int show(){
// while (true){
//
// }return
// }
}
1.方法的定义可不可以放在main方法里面?
答:类是java工作的基本单位,在类中可以定义多个方法,方法的定义之间是平级的,没有包含关系,不过方法在类中的前后位置是可以任意的
3.定义的方法一定要通过调用执行吗?
答:是
原因:main方法与其他的方法不同,main方法是程序的唯一入口(程序默认执行),只要main方法执行完毕,我们就认为程序执行完毕.
4.方法调用
(1)方法调用时很简单 ,在main方法中使用方法名+(),注意()必须加,即使没有参数也要加
(2)方法可以调用多次,就像我们叫一个人的名字,可以在多个地方叫他.
5.方法定义
(1)方法的定义也叫声明
(2)方法的命名遵守驼峰原则---小驼峰原则(当方法名由多个单词组成时,除第一个单词,其他单词的首字母大写)
6.方法的简单构成:
修饰词 返回值类型 方法名 (参数列表) {
方法体
}
7. 方法的注意点:
(1)方法可以只有定义,没有调用,但是没有意义,相当于写了功能没有用
(2)方法不能没有定义,只有调用.调用是在使用方法,没有方法无法调用.
(3)方法必须放在类里面,方法定义之间不能嵌套
(4)同一个类中,方法不能重名.
(5)重载--了解(允许方法同名,但是参数必须不同)作用:让我们多个方法可以使用同一个名字
提问:在方法中定义的变量是否可以在其他方法中使用?
不可以,因为a在mySum中是局部变量,作用域就是mySum方法,出了方法就会释放(消失)
8.return的作用
(1)向外传递方法的数据
>return后面的类型,返回值类型处的数据类型,调用处的数据类型要一致
如果类型不一致,必须遵守自动类型转换
>return后面只能跟一个数,想返回多个怎么办???--后面会学习数组,对象都可以
>如果有分支,要保证每一个分支都可以执行到return
(1)结束方法
注意:方法默认到右大括号结束,但是写了return立刻结束.Unreachable statement