java之 方法调用机制

分析

请添加图片描述
方法调用小结
1.当程序执行到方法时,就会开辟一个独立的空间(栈空间)
2.当方法执行完毕,或者执行到return语句时,就会返回到调用方法的地方,
并销毁该方法的栈空间
3.当程序继续执行下去,则栈中的main栈也会销毁,程序退出

例子

	
public class text {
	
	public  static  void main(String[] args) {
		
		//方法使用
		  person  p1 =new person(); // 创建一个对象p1
		  p1.speak();  //对象p1调用方法speak()
		  p1.calculate();
		  p1.cale(100);//调用cale方法,将100传参给cale成员方法的int n 中
		    int   returnSum = p1.Sum(1,2); // 调用  Sum方法 ,同时传参  num1=1,num2=2  ,将SUm返回值结果赋给returnSum 
			System.out.println("Sum的返回值"+returnSum);
		  System.out.println("Sum的返回值+64的结果是"+(p1.Sum(1,2)+64));
		
	}
}

class person {     //创建一个类person
	
	//定义成员属性name,age
	String  name;
	int age;
	
	
	//定义一个公开的speak成员方法
		 public   void   speak () {		 
			 System.out.println("you are good  girl");
		 } 
	 	 
		 

//定义一个公开的calculate成员方法,用于打印1到10的和
		public  void    calculate () {
			int   sum =0;
			for (int i =1; i <= 10;i++) {
				sum = sum + i;
			}
			System.out.println("总和是"+sum);
		} 


//定义一个公开的cale 成员方法,用于打印1到n的和
  // (int n) 形参列表,表示当前有一个形参  , 可以接收用户传入1个数
		public   void   cale ( int  n) {		  
			int   sum =0;
			for (int i =1; i <= n;i++) {
				sum = sum + i;
			}
			System.out.println("总和是"+sum);
		} 


//定义一个公开的,有返回值(int类型)  的sum成员方法,用于两数之和
// (int num1,int num2) 形参列表,有两个形参,可以接收用户传入2个数 
		public  int  Sum( int num1,int num2) {
			   int  res = num1+num2;
			   return  res; //方法执行后,返回一个 (int 值)res,  谁调用给谁	
  }
}

注意事项

  • 如果方法是void,则方法体中可以没有return语句,或者只写return ;
  • 方法名要用驼峰法则来命名 ,eg:andSum
  • 成员方法的参数类型可以是任一类型,包括基本类型引用类型
  • 方法体中的语句可以是 【输入、输出、变量、运算、分支、循环、方法调用】,
    但注意 里面不能再定义方法,但可以调用方法
  • 实参和形参的类型要一致或兼容、个数、顺序必须一致
  • 一个方法最多有一个返回值,但成员方法是可以有多个返回值的(数组)

public class text {
	public  static  void main(String[] args) {
	
	      Cale cale = new Cale(); //创建一个对象,用来引用gerSumAndSub方法
		  //创建一个数组用来接收getSumAndSub方法的   两数之间的和与差 ,并依次赋予数组的元素
		  int Outarr[] =  cale.getSumAndSUb(3,2);              
		  for (int i = 0; i<Outarr.length;i++) {
			  System.out.print(Outarr[i] +"\t") ;
		  }
	}		  	
}


class   Cale {
	
	 public   int []  getSumAndSUb(int num1,int num2) {
				int [] arr = new int[2];
				arr[0] = num1+num2;
				arr[1] = num1-num2;
   		      return   arr; //返回arr数组
			
	    }
		 
	 }
	

  • 如果方法要求有返回值,则方法体最后的执行语句是return语句 ,
    而且两者的数据类型得一致
public class text {
	public  static  void main(String[] args) {
	}
}

  class  At { 
	public  double  f1() {
	double d1 = 1.1 * 3;
	int n = 100;
	return n;     //可以的,int值传给double 
	}

}

  • 同一个类中,方法之间可以互相调用
public class text {
	public  static  void main(String[] args) {
		A    a  =new A();
		a.getOut();
	}
}

  class  A  { 
		public  void  out () {
				System.out.println("嘿嘿");
		}
				public  void    getOut(){
			out();  //调用同类中的其他方法		
		}	
}

  • 跨类之间调用方法
public class text {
	public  static  void main(String[] args) {
		
	B b = new B();
	b.getOut();
	}
}

  class  A  { 
		public  void  out () {
				System.out.println("嘿嘿");
		}
   }		
   
	class  B { 
		public  void  getOut () {
			A    a  =new A();  ///若想B类的getOut方法调用A类的 out 方法  ,只需要在B类中创建一个A对象,就能调用
			a.out();
		}
	}	

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值