栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java的方法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java的方法

方法
    • 方法的基本语法:
      • 关于修饰符列表
      • 关于返回值类型
      • 方法名
      • 形式参数列表(形参)
      • 方法的调用
    • 类体
      • main方法
      • 自定义方法
      • 规则
    • 数据结构
      • 常见的数据结构:
    • jvm
      • 栈
      • 栈的术语
      • 栈的存储特点
    • 方法的执行过程
    • 方法的重载机制
    • 递归

  • 方法的本质就是一段特定的代码片段,这段代码段可以完成特定的功能,并且可以被重复的使用
  • 在Java中,方法的单词叫做Method,在C语言中,方法被叫做function
  • 方法定义在类体当中,在一个类中,可以定义多个方法,方法的位置没有先后顺序
  • 方法体当中不能再定义方法!!!!
  • 方法体当中的方法依照顺序先后执行
方法的基本语法:
修饰符列表 返回值 方法名(形式参数列表){
	方法体;
}
关于修饰符列表
  • 可选项,不是必须的;
  • 目前统一写成:public static
  • 方法中修饰符关键字中有static的时候怎么调用?
    ------类名.方法名(实际参数列表)
关于返回值类型
  • 返回值:
    就是完成方法的运算之后,所产生的结果;
  • 类型:
    只要是需要返回数据的方法,它的返回值肯定有一个固定的类型。
    这个类型只能与在方法编写的初期规定的返回值类型一致。
  • 支持的返回值类型:
    Java中规定的任何一种数据类型都是可以的,包括基本数据类型与引用数据类型。
  • 如果没有返回值:
    Java中规定,如果方法没有返回值时,返回值类型必须填写void关键字。
  • 如果方法中没有void关键字,则该方法必须有返回值。
  • 如何返回结果的值:
    使用“return 值;”。
    当返回值类型是void时,在方法体里不能使用“return 值;”这样的语句,但是可以写“return;”。
    只要执行带有return关键字的语句,“return”所在的方法结束。
方法名
  • 只要时合法标识符就可以;
  • 方法名最好见名知意;
  • 方法名最好是动词;
  • 方法名的首字母小写,遵循驼峰命名法;
形式参数列表(形参)
  • 形参是局部变量;(int a; float b ;double c…)
  • 形参的个数可以是0-N个;
  • 多个形参之间用“,”隔开;
  • 形参中起决定性作用的是形参的数据类型,形参的名字就是局部变量的名字
  • 方法在被调用的时候,传递给这个方法的实际的数据的值被称为实际参数,简称实参;
  • 实参列表和形参列表必须满足:
    • 数量相同;
    • 数据类型对应相同;
方法的调用
  • 方法只定义不调用是不会执行的;
  • 方法调用的规则(修饰符列表中有static关键字的情况下):
类名.方法名(实参列表);

(这是一条Java语句,表示调用这个类的这个方法,并传递实参)

类体
  • 类体中除了申明变量外不能直接编写Java语句
  • 方法出现在类体当中
main方法
  • public表示公开的
  • static表示静态的
  • void表示方法执行完成后不返回任何数据
  • main是方法名
  • (String[] args)是形式参数列表,其中String[]是一种引用数据类型,args是一个局部变量的变量名,所以只有args这个变量名是随意的
  • 主程序需要这样固定编写,SUN公司就是这样规定的,必须这样写
  • 自己定义的方法,不是程序的入口
自定义方法
  • 修饰符列表:public static、private、protected、final
  • 返回值类型:数据类型
  • 方法名:最好是见名知意
规则
  • 因为main方法是一定会执行的,所以在main方法的类体里面调用方法
  • 在main方法里面调用方法时,实际上main方法在这个时候已经暂停,进入到了调用的方法中
  • 调用方法不一定要在main方法里面调用,但是main方法是一切程序的入口
  • 方法的调用在不同的类里面必须加上“类名.” ,在同类里类名可以省略
  • return语句后面的代码无法执行,所以如果在编写代码时return语句后面有代码会报错
  • 方法如果只定义不调用,则不执行,jvm也不会给该方法分配运行所需的内存空间
数据结构
  • 数据结构反应的是数据的存储形态
  • 数据结构不属于任何语言的范畴,只不过大多数编程语言都要使用数据结构
  • 作为程序员需要提前精通数据结构和算法
  • Java程序员在不精通数据结构和算法的情况下也可以进行程序开发,那是因为Java拥有一套强大的类库
常见的数据结构:
    数组
	队列
	栈
	链表
	二叉树
	哈希表/散列表
jvm
  • 在jvm的内存划分上有这样三块主要的内存空间(除了这三块,还有其他的内存空间)
    * 方法区内存
    * 堆内存
    * 栈内存
栈
  • stack,一种数据结构
栈的术语
  1. 栈底元素,栈顶元素
  2. 栈帧(永远指向栈顶元素)
  3. 压栈/入栈/push
  4. 弹栈/出栈/pop
栈的存储特点
  • 先进后出;后进先出
方法的执行过程

方法中的代码片段放到了哪里?方法执行过程中需要的内存空间在哪里分配?
---------方法代码片段属于.class文件的一部分,字节码文件在类加载的时候,将其放到了方法区内存当中。所以jvm虚拟机中的三块主要存储空间中方法区里面最先有内容,存放了代码片段

  • 代码片段虽然在方法区里面只有一份,但是可以被重复调用

  • 每一次使用这个方法的时候,需要给这个方法分配独立的活动场所,在栈内存里面分配

  • 在方法被调用之前,首先由类加载器class loader将其所在的class文件装载到Java虚拟机jvm当中

  • 而后在方法调用的瞬间,会有栈内存给该方法分配运行空间,执行压栈动作,在方法调用结束后,进行弹栈操作

    • 压栈:给方法分配内存空间
    • 弹栈:释放该方法所占用的内存空间
  • 局部变量在方法体中声明,局部变量运行过程中的内存空间在栈中分配

  • 方法在变量传递的时候实际上是传递的变量的值

方法的重载机制

在一个类当中,方法相似的时候(仅参数类型不同时),可以构成方法重载,用法是将方法名写成一样的,在里面重新定义参数列表,在调用的时候就可以使用对应的方法进行运算。

  • 参数列表不同:

    • 数量不同
    • 类型不同
    • 顺序不同
  • 如果参数列表数据类型都相同,只有形式参数列表不同,就可以考虑将方法名写成一样的,构成方法重载

  • 方法重载只与方法名和形式参数列表有关,与返回值类型以及修饰符列表无关

递归
  • 递归的原理就是在方法的内部调用方法自身
  • 递归的使用要注意会出现栈内存溢出错误,一般情况下不使用递归
  • 有些问题需要用递归解决(例如索引的拷贝,但是一般情况尽量不用)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/922015.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号