一、方法的基本用法

什么是方法

方法就是一个代码片段,类似于 C 语言中的函数。它是一个语句的集合,它们在一起执行一个功能

1)能够模块化的组织代码
2) 做到让代码被重复使用,一份代码可以用在多个位置
3) 让代码更好理解、更简单
4) 直接调用现有方法,不必重复造轮子

语法定义

  • 定义

  • 方法的调用

1)定义方法时,不会执行代码,调用时才执行
2)当方法被调用时,会将实参赋值给形参
3) 参数传递完毕后,就会执行到方法体代码
4)当方法执行完毕后护(遇到return 语句),就会回到方法调用位置继续往下执行

  • 示例:整数相加方法实现和调用
public class Test{public static void main(String[] args){int a = 10;int b = 20;int ret = add(a, b);System.out.println("ret = " + ret);}public static int add(int a, int b){return a + b;     } } // 结果为 ret = 30这里是引用
  • 注意事项

二、实参和形参的关系

先来看一个代码:

public class Test{public static void main(String[] args){int a = 10;int b = 20;swap(a,b);System.out.println("a = "  + a " b = " + b);}public static void swap(int a, int b){int tmp = a;int a = b;int b = tmp;}
}
// 运行结果为 a = 10 b = 20

为啥没有实现交互呢?在 C 语言里这样写也是错的,因为形参只是实参的一份临时拷贝,swap 方法里只将形参的值互换了,但是实参的值没有互换。

那么就使用指针传值吧!可惜 Java 中没有指针,那怎么办呢?我们可以使用引用类型,如数组实行两个数的交换,如

示例:使用数组来实现交换数值
public class Test{public static void main(String[] args){int[] arr = {10, 20};swap(arr);System.out.println("a = "  + arr[0] " b = " + arr[1]);}public static void swap(int[] arr){int tmp = arr[0];arr[0] = arr[1];arr[1] = tmp;}
}
// 运行结果为 a = 20 b = 10

三、方法的重载

定义:

同一个方法名字相同,提供不同类型的实现,称为重载

要求

1)方法名相同
2)参数列表不同(参数的个数或者参数的类型不同)
3)返回值不作要求

注意事项

重载不是必须在一个类当中(继承)

解决什么问题

public class Test{public static void main(String[] args){//当我们求两个整数和时int a1 = 10;int b1 = 20;int ret1 = add(a1, b1);System.out.println("ret1 = " + ret1);//当我们求两个浮点数和时double a2 = 1.5;double b2 = 2.4;double ret2 = a2 + b2;System.ouy.println("ret2 =" + ret2);}public static int addInt(int a, int b){return a + b;}public static double addDouble(double a, double b){return a + b;}
}

分别对整数和浮点数求和都写了一个方法,这个做法也是对的。但是 Java 认为 addInt 这样的名字不友好,不如直接就叫 add
细心的可以发现我们把方法名都叫作了 add,这个就叫做重载

public class Test{public static void main(String[] args){//当我们求两个整数和时int a1 = 10;int b1 = 20;int ret1 = add(a1, b1);System.out.println("ret1 = " + ret1);//当我们求两个浮点数和时double a2 = 1.5;double b2 = 2.4;double ret2 = a2 + b2;System.ouy.println("ret2 =" + ret2);}public static int add(int a, int b){return a + b;}public static double add(double a, double b){return a + b;}
}

四、方法递归

概念

一个方法在执行过程中调用自身,就称为“递归”

实行条件

简单来看递归即是"递推和回归":满足条件时进行递推调用方法,不满足时开始回归

对于没有限制条件的方法调用,则会出现栈溢出(方法的调用会开辟空间,而内存是有限的)

什么时候使用

问题递归非递归都能写且没有多大的问题时,选择递归

java学习(方法)相关推荐

  1. Java学习----方法的重载

    一个类中有多个同名的参数不一样的方法. 作用:可以根据不同的条件调用不同的方法. 注意:java不会因为方法的返回类型或者权限的不同而判断为不同的两个方法. public class Student ...

  2. Java学习 -- 方法

    文章目录 方法概述 什么是方法? 方法的结构 方法使用 方法定义和调用 方法调用注意 方法三种调用格式 方法重载 方法重载前 方法重载后 重载练习 练习1 练习2 方法递归 递归常见应用 求n的阶乘 ...

  3. Java学习--方法总结

    Java笔记 2022/03/27 1.类总结 类的组成:属性和方法 属性:成员变量,写在方法之外,类之内,系统会提供默认的初始值 默认初始值: - 整型:0 - 浮点型:0.0 - 字符型:空字符 ...

  4. Java学习----方法的覆盖

    方法的覆盖:子类继承父类,子类重写父类的同名方法. 覆盖的原则: 1. 方法的参数必须跟父类保持一致 2. 子类方法的修饰符的范围必须大于等于父类方法同名的修饰符(public > privat ...

  5. java学习——方法

    文章目录 方法 方法的概念 使用方法的好处 方法的定义格式 完整格式 其他格式 调用方法 方法调用的内存图 方法的参数传递机制 基本类型的参数传递 引用类型的参数传递 方法重载 return的用法 方 ...

  6. 零基础全方位学习java的方法

    java技术岗是一个就业率非常高的岗位,因此有很多人都想要学习java技术,其中不乏一些零基础同学,零基础小白都不清楚自己该如何学习java,那么下面小编就为大家详细的介绍一下零基础全方位学习java ...

  7. java学习笔记5--类的方法

    接着前面的学习: java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) java学习笔记2--数据类型.数组 java学习笔记1--开发环境平台总结 本文地址 ...

  8. Java学习笔记:创建线程的两种方法

    Java学习笔记:创建线程的两种方法 一.预备工作 1.创建Maven项目ThreadDemo 2.在pom.xml里添加依赖 二.继承Thread类创建子线程

  9. Java学习之代码扫描工具的使用方法

    有些刚进行Java学习的小伙伴对Java代码扫描工具还不是很了解,不知道该如何使用,下面千锋重庆的小编就来告诉大家使用方法. 1.插件的安装 由于使用的mac所有以Mac下idea插件安装流程为例,首 ...

  10. Java学习中遇到的中文乱码问题的整理和解决方法

    目录 前言 1. 学习SpringMVC框架的时候遇到的中文乱码(一)  2. 学习SpringMVC框架的时候遇到的中文乱码(二)  3. 学习Servlet的时候可能会遇到的中文乱码(一)  4. ...

最新文章

  1. C++递归与非递归实现全排列
  2. nuke linux 插件,Nuke 插件:镜头光晕 Optical Flares v1.0.86(含预设)Win/Mac/Linux
  3. gprof + kprof + gprof2dot (性能 与 函数调用图)-
  4. 【教师节福利】长大后我就成了你
  5. python学全栈还是运维_Python全栈学习——Python基础及Web开发
  6. 2.页面布局示例笔记
  7. Python数模笔记-NetworkX(3)条件最短路径
  8. 算法题库 java实现_LeetCode算法题-Most Common Word(Java实现)
  9. linux 0644权限,Linux 中的权限 -- 0755 和 0644
  10. 数据结构-查找-折半查找-二叉排序树查找
  11. html keyframes无效,@ -webkit-keyframes动画为什么不起作用?
  12. redmi airdots左右耳不串联怎么办_小米Redmi AirDots蓝牙耳机只能单边连接不能串联的解决办法...
  13. 记一次VS2015安装/卸载以及编译给定程序
  14. android 混淆 minifyEnabled
  15. MQTT代理服务器的选择
  16. 华中电网项目日志:Rational version 7.0 技术会议纪要
  17. 电压放大倍数公式运放_运算放大器的放大倍数如何计算
  18. 兔子问题与斐波那契数列
  19. simulink/stateflow 纯电动+4档变速箱动力性经济性仿真模型 包含vcu控制及换档控制模型,可实现最高车速 最大爬坡度 加速时间,能耗续航仿真
  20. mysql被替换的文件如何恢复吗_文件被覆盖替换了怎么找回来

热门文章

  1. [介绍]关于我与我的未来
  2. Airbnb创始人:屌丝的逆袭之路
  3. 写在35岁,过去现在和未来
  4. 创龙基于AM5728平台的PCIe通信案例(一)
  5. 如何让你的Linux程序程序后台运行
  6. Excel PivotTable 使用心得手顺分享(三)
  7. python调用有道翻译_Python调用有道翻译
  8. 推荐一款在线免费共享云桌面
  9. 江苏智慧公厕:让厕所成为城市新名片
  10. Linux —进程间的五种通信方式—(半双工管道、命名管道、消息队列、信号、共享内存),外加信号量。直接上代码: