小言_互联网的博客

学习JAVA第六天—————方法

312人阅读  评论(0)
  • 方法的基础语法:
  •   【方法修饰列表】 返回值类型 方法名 (方法参数列表){
    
  •   		方法体
    
  •   }
    
  •   方法修饰列表
    
  •   	是可选项,方法的修饰符可以包括:public protected private abstract static final synchronized,其中public protected private 不能同时存在
    
  •   返回值类型
    
  •   	如果没有返回值使用void关键字,如果存在返回值可以是基本类型和引用类型
    
  •   	如果存在返回值,使用return语句,Return语句后面不能再执行语句,因为不可能会执行到,编译器会发生错误。
    
  •   方法名
    
  •   	任何合法的标识符
    
  •   方法参数列表
    
  •   	参数列表可以多个,如:method1(int a, int b),多个采用逗号分割
    
  •   方法的作用:使某一功能代码只需要写一遍,就可以重复使用,使用时只需要传递具体的数据。
    
  •   方法定义在类体当中,在一个类当中可以定义多个方法,方法编写的位置没有先后顺序,可以随意。
    
  •   方法体当中不能再定义方法!!!!!!!!!
    
  •   方法的调用
    
  •   	类型.方法名(实际参数列表);
    
  •   返回值类型
    
  •   	什么是返回值?	一个方法可以完成某个特定功能,这个功能结束之后大多需要返回一个最终执行结果,执行结果可能是一个具体存在的数据。而这个具体存在的数据就是返回值。
    
  •   返回值类型?	返回值是一个具体存在的数据,数据都是有类型的,此处需要指定的返回值的具体类型。
    
  •   返回值类型都可以指定哪些类型呢?	java任何一种类型都可以,包括基本数据类型和所有引用数据类型。
    
  •   也可能这个方法执行结束之后不返回任何数据,java中规定,当一个方法执行结束之后不返回任何数据的话,返回值类型位置必须编写:void关键字。
    
  •   return 值,必须要和方法返回值类型一致不然编译报错
    
  •   方法名:
    
  •   	只要是合法的标识符就行
    
  •   	方法名最好见名知意
    
  •   	方法名最好是动词
    
  •   	方法名首字母要求小写,后面每个单词首字母大写
    
  •   形式参数列表:简称形参
    
  •   	形参是局部变量: int a; doublie b;......
    
  •   	形参的个数可以是:0~N个
    
  •   	多个形参之间用“逗号”隔开
    
  •   	形参中起决定性作用的是形参的数据类型,形参的名字就是局部变量的名字。
    
  •   	方法在调用的时候,实际给这个方法传递的真是数据被称为:实际参数,简称实参
    
  •   	实参和形参必须满足:数量相同	类型相同
    
public class main(){
	public static void main(String[] args) {
	main.sum(100,20);
	}
	public static void sum(int a , int b) {
		int c = a+b;
		System.out.println(c);
	}
}
//控制台打印输出 120
  • 方法在执行过程中,在jvm中的内存是如何分配的呢,内存是如何变化的?

  •   	1、方法只定义,不调用,是不会执行的,并且在jvm中也不会给该方法分配“运行所属”的内存空间。只有在调用这个方法的时候,才会动态的给这个方法分配所属的内存空间。
    
  •   	2、在jvm内存划分上有这样三块主要的内存空间:
    
  •   			方法区内存
    
  •   				方法代码片段属于.class字节码文件的一部分,字节码文件在类加载的时候,
    
  • 将其放到了方法区当中。所以jvm中的三块主要的内存空间中方法区内存最先有数据。

  • 存放了代码片段

  •   			堆内存
    
  •   			栈内存
    
  •   				栈:stack,是一种数据结构,数据结构反应的是数据的存储形态。
    
  •   				数据结构是独立的学科,不属于任何编程语言的范畴,只不过在大多数编程语言当中要使用数据结构。
    
  •   				作为程序员需要提前精通:数据结构+算法。	但是java有一套庞大的类库可供使用,所以java程序员也可以在不精通数据结构的情况下进行编程。
    
  •   				代码片段虽然在方法区内存当中只有一份,但是可以被重复调用。每一次调用
    
  • 这个方法的时候,需要给该方法分配独立的活动场所,在栈内存中分配。【栈内存中分配

  • 方法运行的所属内存空间】

  •   				局部变量在“方法体”中声明。局部变量运行阶段内存在栈中分配。
      			![在这里插入图片描述](https://img-blog.csdnimg.cn/20191003152003654.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzk3MzY4NA==,size_16,color_FFFFFF,t_70)
    
  • 方法的重载

  •   方法存重载机制的作用是?
    
  •   	为了使程序编写简单,不需要记忆大量的方法名。
    
  •   什么时候考虑使用方法重载?
    
  •   	功能相似的时候,方法名可以相同,但是功能不同时候,尽可能让这两个方法名不同
    
  •   什么条件满足之后构成了方法的重载?
    
  •   	在同一个类中
    
  •   	方法名相同
    
  •   	参数列表不同:
    
  •   		数量不同		顺寻不同		类型不同
    
  •   方法重载和什么有关系,和什么没有关系?
    
  •   	方法重载和方法名+参数列表有关系
    
  •   	方法重载和返回值类型无关
    
  •   	方法重载和返回值类型无关
    
public class main(){
	public static void main(String[] args) {
		main.工具1(100,20);
		main.工具1();
	}
	public static void 工具1() {
		System.out.println("我是工具1");
	}
	public static void 工具1(int a , int b ) {
		int c = a+b;
		System.out.println(c);	
	}
}
//120
//我是工具1
	

转载:https://blog.csdn.net/weixin_43973684/article/details/101989317
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场