Java笔记——方法
1、方法
(1)概念:①解决事情的办法②实现功能的代码段。
(2)优点:①提到代码的复用性②便于后期维护。
(3)特点:①不调用不执行②方法不能嵌套,定义在类中方法外的位置。
(4)定义方法的分析步骤:①方法的需求②返回值③参数④方法名
(5)定义:有返回值类型的方法。
修饰符 返回值类型 方法名(参数列表){
实现功能的代码段;
return 返回值;}
(6)修饰符 : 访问权限修饰符,先默认定义为public static
(7)返回值类型 : 思考方法体代码执行完毕之后,是否需要得到一个结果或数据值,如果需要就定义为有返回值类型的方法,不需要就定义为没有返回值类型的方法。
(8)结果的数据类型:基本数据类型|引用数据类型。
(9)方法名 : 根据方法名调用方法。
(10)标识符: 符合标识符的规则与规范。
(11)参数列表 : 可以定义参数,可以不定义参数,可以定义多个参数,数据类型 参数名1,数据类型 参数名2.... 相当于变量的声明,在方法的定义或者实现过程中,是否存在未知的,不确定的,可能会改变的数据,如果存在定义在方法的参数列表。
(12)数据类型可以为任意数据类型{} : 方法体语句, 实现功能的代码段;
(13)return : ①提前结束方法②带出返回值 (return);在一个有返回值类型的方法必须存在return关键字。
2、方法的调用:
(1)有返回值类型的方法
①普通调用:方法名(参数列表);有返回值类型的方法调用时候需要接收返回值。
②输出调用:数据类型 变量名 = 方法名(参数列表)。
③赋值调用System.out.println(方法名(参数列表))。
(2)没有返回值类型的方法
①普通调用
修饰符 void 方法名(参数列表){
(3)方法体语句;[return]}void :标识没有返回值类型的方法②return :提前结束方法。
3、方法的参数:
①形式参数(形参) : 定义方法时()中的参数
②实际参数(实参) : 调用方法时()中的参数
形参与实参之间需要一一对应①个数一致②类型一致③不同类型的形参顺序一致。
4、return 与 兼容类型
(1)return 返回
①结束方法②在有返回值类型的方法中,return带出返回值 return 返回值③返回给方法得到调用处④在有返回值类型的方法中必须存在return。
(2)不可达语句: 没有执行时机
①能够执行到return后面的代码②while--true for(;;){} 死循环后面的代码③continue后面④break后面⑤while-->false。
(2)兼容类型:
①参数: 形参的类型>=实参的类型
②返回值: 接收返回值的变量类型>=方法的返回值类型>=return后面数据的类型,形参不赋值不存在默认值。
5、方法的重载
(1)前提: 当一个类中实现某个功能的时候,这个功能却有不同的实现方式|需要接受不同的参数,可以让这些相同功能实现的方法,构成方法的重载,就允许方法名相同。
(2)要求: 同一个类中的多个方法。
①方法名相同②参数列表不同或方法签名不同(方法名+参数列表)
(3)区分方法的唯一标识①参数列表不同:②参数个数不同③参数的类型不④不同类型的参数顺序不同。
(4)重载方法的调用
①方法名(实参);②有实参决定重载方法的调用。
(5)注意问题:①方法的重载与方法的修饰符无关关②方法的重载与方法的返回值类型无关关③方法的重载与参数的名字无关关。
总结: ①方法的重载只与方法签名有关②方法就是封装的一种体现③方法的重载就是多态的一种体现。
6、递归:
方法的自己调用自己
优点 : 合理的位置使用递归可以简化代码结构
缺点 : 在结构复杂的情况,大量的占用内存,有可能有降低效率,可能会遇到内存溢出
临界条件: 停止自己调用自己的条件
递归前进段: 不停的自己调用自己,知道临界条件之间这个过程
递归后退段: 从临界条件开始,将结果返回给调用的上一层的过程
7、方法的内存分析
(1)栈中数据的特点:①进的后出后进先出②压栈.③弹栈④一防法执行完毕 马上弹栈释放内存。
注意;不能在-个方法中使另-个方法中的局部量 因为他们不属于同-块栈帧中。
(2)寄存器(本地方法栈)
①方法区|数据共享区: class文件进入内存
②栈:方法运行期间产生的数据存在的位置
③堆:对象|数组数据
(3)步骤:①把class文件加载到内存方法区中②JVM调用主方法main,main方法压栈执行,在栈中为main方法开辟栈帧(内存空间)③逐行执行main方法中的内容④调用getArea方法,压栈执行⑤实参要为形参赋值⑥逐行执行getArea方法中的代码⑦返回值返回到方法的调用处⑧方法getArea0执完毕马上弹栈释放内存空间⑨继续执行main方法中的内容⑩把返回值赋值给int类型的变量area。
⑪执行输出语句输出变量area的值35⑫main方法执行完毕马上弹栈释放内存间。
Java笔记——方法的更多相关文章
- Java笔记 —— 方法重载和方法重写
Java笔记 -- 方法重载和方法重写 h2{ color: #4ABCDE; } a{ text-decoration: none !important; } a:hover{ color: red ...
- JAVA笔记---方法
JAVA的方法 方法的基础 1. return 语句的一些高级应用 public class Method{ public static void main(Sting[] args){ System ...
- Java学习笔记二十二:Java的方法重写
Java的方法重写 一:什么是方法的重写: 如果子类对继承父类的方法不满意,是可以重写父类继承的方法的,当调用方法时会优先调用子类的方法. 语法规则 返回值类型.方法名.参数类型及个数都要与父类继承的 ...
- Java学习笔记十二:Java中方法的重载
Java中方法的重载 什么是方法的重载呢? 如果同一个类中包含了两个或两个以上方法名相同.方法参数的个数.顺序或类型不同的方法,则称为方法的重载,也可称该方法被重载了.如下所示 4 个方法名称都为 s ...
- Effective Java笔记一 创建和销毁对象
Effective Java笔记一 创建和销毁对象 第1条 考虑用静态工厂方法代替构造器 第2条 遇到多个构造器参数时要考虑用构建器 第3条 用私有构造器或者枚举类型强化Singleton属性 第4条 ...
- java笔记整理
Java 笔记整理 包含内容 Unix Java 基础, 数据库(Oracle jdbc Hibernate pl/sql), web, JSP, Struts, Ajax Spring, E ...
- 转 Java笔记:Java内存模型
Java笔记:Java内存模型 2014.04.09 | Comments 1. 基本概念 <深入理解Java内存模型>详细讲解了java的内存模型,这里对其中的一些基本概念做个简单的笔记 ...
- servlet(6) - servlet总结 - 小易Java笔记
垂阅前必看: 这都是我总结的我觉得是学习servlet应该掌握的,我在学习期间也做了一个博客项目来让所学的知识得以巩固.下面就是博客项目链接.前面的servlet相关的笔记总汇,还有就是我把觉得在学习 ...
- Java笔记 —— 继承
Java笔记 -- 继承 h2{ color: #4ABCDE; } a{ text-decoration: none!important; } a:hover{ color: red !import ...
随机推荐
- nignx反向代理web服务器的配置与使用
一.为什么要用nignx反向代理 1.负载均衡 当一台服务器的单位时间内的访问量越大时,服务器压力就越大,大到超过自身承受能力时,服务器就会崩溃.为了避免服务器崩溃,让用户有更好的体验,我们通过负载均 ...
- Python+Selenium - js操作
js操作:日期框 本部分涉及两个知识点:DOM树和js DOM树教程链接: https://www.w3school.com.cn/htmldom/index.asp js教程链接 https://w ...
- SOLOv 2:实例分割(动态、更快、更强)
SOLOv 2:实例分割(动态.更快.更强) SOLOv2: Dynamic, Faster and Stronger 论文链接: https://arxiv.org/pdf/2003.10152. ...
- TensorFlow分布式详解
每次 TensorFlow 运算都被描述成计算图的形式,允许结构和运算操作配置所具备的自由度能够被分配到各个分布式节点上.计算图可以分成多个子图,分配给服务器集群中的不同节点. 强烈推荐读者阅读论文& ...
- GPU端到端目标检测YOLOV3全过程(下)
GPU端到端目标检测YOLOV3全过程(下) Ubuntu18.04系统下最新版GPU环境配置 安装显卡驱动 安装Cuda 10.0 安装cuDNN 1.安装显卡驱动 (1)这里采用的是PPA源的安装 ...
- ffmpeg architecture(中)
ffmpeg architecture(中) 艰苦学习FFmpeg libav 您是否不奇怪有时会发出声音和视觉? 由于FFmpeg作为命令行工具非常有用,可以对媒体文件执行基本任务,因此如何在程序中 ...
- 如何安装/导入Arduino库文件及库文件的不同位置与区别(以eFLL中嵌入式模糊逻辑库为例)
网上有数百个可在Aruduino中使用的库,这些代码集使得我们无需从0-1地搭建我们所需功能,这使得学习和使用Arduino变得更加方便简单.除此之外,平时直接从网上download下的代码也很有可能 ...
- Pandas高级教程之:Dataframe的合并
目录 简介 使用concat 使用append 使用merge 使用join 覆盖数据 简介 Pandas提供了很多合并Series和Dataframe的强大的功能,通过这些功能可以方便的进行数据分析 ...
- 十、构建memcached服务
装包-------配置----起服务---验证 装包: [root@proxy ~]# yum -y install memcached //安装软件包memcached [root@ ...
- [源码解析] 深度学习分布式训练框架 horovod (3) --- Horovodrun背后做了什么
[源码解析] 深度学习分布式训练框架 horovod (3) --- Horovodrun背后做了什么 目录 [源码解析] 深度学习分布式训练框架 horovod (3) --- Horovodrun ...