1.建议在一个java源文件当中之定义一个class,比较清晰
//分析以下结果:
main begin
m1 begin
m2 begin
m3 begin
m3 over
m2 over
m1 over
main over
对于当前程序,main方法最先被调用,main方法也是最后一个结束
最后调用m3方法,该方法最先结束
main方法结束之后,整个程序结束了【这句话只适用于当前内容】
只要记住方法中代码是自上而下执行,当前行的程序还没有结束的情况下下一行代码是无法执行的。
public class MathodTest07
{
public static void main(String[] args){
System.out.printIn("main begin");
m1();//暂停
System.out.printIn("main over");
}
public static void m1(){
System.out.printIn("m1 begin");
m2();//暂停
System.out.printIn("m1 over");
}
public static void m2(){
System.out.printIn("m2 begin");
m3();/暂停
System.out.printIn("m2 over");
}
public static void m3(){
System.out.printIn("m3 begin");
System.out.printIn("m3 over");
}
}
2.方法的返回值不是void的时候,要求方法必须保证百分之百的执行return值;这样的语句来完成
值得返回。没有这个语句程序报错
一个方法有返回值的时候,对于调用者来说这个返回值可以选择接收,也可以选择不接受,但大部分情况下
我们都是选择接收的
public class MethodTest08
{
pukblic static void main(String[] args){
divide(10,3);//这里没有接收这个方法返回数据
//接收以下方法执行结束之后的返回值,采用变量接收,变量的数据类型需要和返回值的数据类型
相同或者可以自动类型转换
int i=divide(10,3);
System.out.printIn(i);
long x=divide(10,3);//int转换long,小容量转换大容量,自动类型转换
Sydtem.out.printIn(x);
//不采用爱用变量
System.out.printIn(divide(10,3));
}
public static int divide(int a,int b){
int c=a/b;
ruturn c;
}
}
3.深入return语句:
*带有return关键字的方法只要执行,所在的方法执行结束
*在同一个作用域当中,return语句下面不能编写任何代码,因为这些语句执行不到,会报错,语句访问不到
public class MethodTest08
{
pukblic static void main(String[] args){
int retValue=m();
System.out.printIn(retValue);
}
//编译报错,缺少返回语句,一些程序编译器认为无法百分百保证return 1;能执行
/*
public static int m(){
int a=10;
if(a>3){
return 1;
}
}
*/
public static int m(){
int a=10;
if(a>3){
return 1;
}else{ //有了else白分包保证,会有一个返回语句
return 0;
}
}
public static int m(){
int a=10;
if(a>3){
return 1;
}
return 0;//if执行,方法结束,if不执行,下一句语句执行
}
//简略写法
public static int m(){
return 2>3 ? 1:0;
}
}
4.在返回值类型void的方法中使用return语句,但是不能带值,可以单独写return;
return;语句出现在void的方法当中主要输为了终止方法的执行,结束该方法
public class MethodTest08
{
pukblic static void main(String[] args){
m();
for(int i=10;i>0;i--){
if(i==2){
return; //结束的是main方法
}
System.out.printIn("data---->"+i);
}
System.out.printIn("Hello World");
}
public static void m(){
for(int i=0;i<10;i++){
if(i==5){
return;
}
System.out.printIn("i---->"+i);
}
System.out.printIn("Hello World");
//结果:没有Hello World return结束的时调用该方法
i-->0
i-->1
i-->2
i-->3
i-->4
}
}