JAVA那些事(三)方法

目录:

方法声明

方法调用

 参数传递

递归

正文:

方法是完成特定功能的、相对独立的程序段。方法一旦定义,就可以在不同的程序段中多次调用

方法声明

格式;

[修饰符] 返回值类型 方法名 [(参数表)]
{声明部分语句部分
}
  • 方法在Java中通过关键字 void 或者一个具体的返回类型、方法名、参数列表和方法体来定义。
  • 方法的返回类型表示方法执行后返回的结果的数据类型,如果方法不返回任何值,则使用 void 关键字。
  • 方法名是标识方法的唯一名称,遵循Java的命名规则。
  • 参数列表是一个逗号分隔的变量列表,这些变量被称为形式参数或简称参数,它们用于接收调用方法时传递的实际值。
  • 参数表指定在调用该方法时,应该传递的参数的个数和数据类型
  • 对于有返回值的方法,其方法体中至少有一条return语句。
  • 方法声明不能嵌套,即不能在方法中再声明其它的方法。
  • 修饰符可以是公共访问控制符public、私有访问控制符private、保护访问控制符 protected
    • Java提供了四种访问修饰符:publicprotectedprivate 和默认(无修饰符)
    • public 表示方法可以在任何类中被访问。
    • protected 表示方法可以在同一个包中的其他类以及不同包中的子类中被访问。
    • private 表示方法只能在定义该方法的类中被访问。
    • 如果没有指定访问修饰符,默认为包访问权限,表示方法只能在同一个包中的类中被访问。

e,g

public int addNumbers(int a, int b) {int sum = a + b;return sum;
}

方法调用

  • 调用方法是指在程序中使用方法名和适当的参数列表来执行方法的功能。
  • 方法调用通常发生在主程序或其他方法中,通过将方法名、括号和传递给方法的实际参数值组合在一起。
int result = addNumbers(3, 5);
System.out.println("The sum is: " + result);

方法语句,即以独立语句的方式调用方法。

class AreaC{  static void area(int  a , int  b ){int s; s = a * b;     System.out.println(s);  }public static void main(String[] args){  int x = 5;int y=3;  area(x, y);   }} 

 参数传递

在调用一个带有形式参数的方法时,必须为方法提供实际参数,完成实际参数与形式参数的结合,称为参数传递,然后用实际参数执行所调用的方法体

  • 方法可以有零个、一个或多个参数,每个参数都有其自己的数据类型和名称。
  • 方法可以返回一个值,也可以不返回值。如果没有返回值,方法的返回类型必须是 void
  • 如果方法有返回值,那么在方法体中需要使用 return 关键字返回一个与返回类型匹配的值。

Java中,对于基本数据类型以及字符串,参数传递是以传值的方式进行,即将实际参数的值传递给形式参数。

而对于引用数据类型(除去字符串),参数传递传的是地址。

结论:

² 1 基本类型以及 String 类作为参数传递时,是传递值的拷贝,无论你怎么改变这个拷贝,原值是不会改变的;
²
² 2 引用类型(包括数组,对象以及接口)作为参数传递时,是把对象在内存中的地址拷贝了一份传给了参数。

递归

递归涉及到一个方法在其定义中直接或间接地调用自身。递归通常用于解决那些可以通过相同的操作重复应用来求解的问题,每次应用都会将问题规模逐渐减小,直到达到一个基本情况(也称为递归基),可以直接得出结果。

递归的基本结构:

  • 直接递归:方法直接调用自身。
  • 间接递归:一个方法调用另一个方法,而那个方法又调用了原始的方法。

递归的基本要素:

  • 基本情况(Base Case):这是递归过程的终止条件,当满足这个条件时,递归不再继续,而是返回一个确定的结果。
  • 递归情况(Recursive Case):这是递归过程中调用自身的情况,通常会包含一个问题规模更小的版本。

递归过程:

  • 当调用一个递归方法时,它首先检查是否满足基本情况。如果满足,就直接返回结果。
  • 如果不满足基本情况,方法会继续执行递归情况,通常通过调用自身并传递不同的参数来减小问题的规模。
  • 这个过程会一直持续下去,直到达到基本情况为止。

e,g采用递归算法求n!

public class Factorial{public static long fac(int n){if(n<=1) return 1;else return fac(n-1)*n;		}public static void main(String[] args){int k  ;long f;k = Integer.parseInt(args[0]);f = fac(k);System.out.println(f);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/238857.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

标准地址门牌管理系统:提升地址管理效率与准确性的关键

在信息化社会的今天&#xff0c;地址管理的重要性日益凸显。无论是商业活动、物流配送&#xff0c;还是公共安全&#xff0c;都需要精确、高效的地址管理。然而&#xff0c;传统地址管理方式往往存在地址不规范、信息不全等问题&#xff0c;这无疑增加了管理难度和工作量。为此…

接口测试用例设计实践

引言&#xff1a; 在软件开发过程中&#xff0c;接口测试是确保系统各个模块之间正常交互的重要环节。本文将介绍一个接口测试用例的设计实践&#xff0c;包括用例ID、模块、接口名称、请求URL、前置条件、请求类型、请求参数类型、请求参数、预期结果、实际结果、备注、是否运…

linux 中 C++的环境搭建以及测试工具的简单介绍

文章目录 makefleCMakegdb调试 与 coredumpValgrind 内存检测gtest 单元测试 makefile 介绍 安装 : sudo apt install make makefile 的规则: 举例说明 包括&#xff1a;目标文件 、 依赖文件 、 生成规则 使用 &#xff1a; make make clean CMake : CMake是一个…

qt 中sqlite的性能优化与使用问题

SQLite 只支持一个并发的写入操作&#xff0c;但是多个进程可以同时连接和查询相同的数据库。 通过一些简单的配置和操作&#xff0c;我们完全可以使用 SQLite 创建 GB 级别的数据库并且支持高达每秒 10 万次的并发查询。 优化 SQLite 性能的配置如下&#xff1a; pragma jo…

046.Python包和模块_导入相关

我 的 个 人 主 页&#xff1a;&#x1f449;&#x1f449; 失心疯的个人主页 &#x1f448;&#x1f448; 入 门 教 程 推 荐 &#xff1a;&#x1f449;&#x1f449; Python零基础入门教程合集 &#x1f448;&#x1f448; 虚 拟 环 境 搭 建 &#xff1a;&#x1f449;&…

2.Redis10大数据类型

文章目录 Redis Key&#xff08;键&#xff09;操作命令1.redis字符串 (String)案例&#xff1a;最常用&#xff1a;同时设置/获取多个键值&#xff1a;获取指定区间范围内的值&#xff1a;数值增减&#xff1a;获取字符串长度和内容追加&#xff1a;分布式锁&#xff1a;getse…

『番外篇五』SwiftUI 进阶之如何动态获取任意视图的 tag 和 id 值

概览 在某些场景下,我们需要用代码动态去探查 SwiftUI 视图的信息。比如任意视图的 id 或 tag 值: 如上图所示:我们通过动态探查技术在运行时将 SwiftUI 特定视图的 tag 和 id 值显示在了屏幕上。 这是如何做到的呢? 在本篇博文,您将学到如下内容: 概览1. “如意如意,…

手敲MyBatis(十三章)-返回Insert操作自增索引值

1.目的 这一章的目的主要是插入语句以后返回插入记录的id&#xff0c;因为插入语句可分为要返回记录id&#xff0c;不要返回记录id的以及不同数据源类型执行的时机也不同&#xff08;如&#xff1a;oracle不支持主键&#xff0c;需要先插入序列再增加&#xff0c;Mysql支持主键…

SQL指南:掌握日期函数来查询和管理数据

文章目录 1. 引言2. 建立数据库表2.1 建表语句2.2 数据插入 查询案例3.1 查询当前日期的订单3.2 查询过去一周内的订单3.3 查询明天的日期3.4 查询今年的订单3.5 查询特定月份的订单 总结 1. 引言 在数据库管理中&#xff0c;处理日期和时间是一项基本但重要的任务。本指南将通…

设计模式之模板方法模式,通俗易懂快速理解,以及模板方法模式的使用场景

文章目录 前言一、使用场景通常二、通过一个故事来更好地理解它当谈到模板方法模式时&#xff0c;我们可以通过一个故事来更好地理解它。以下是对应于故事的代码示例&#xff1a; 前言 当谈到模板方法模式时&#xff0c;在面向对象的编程中&#xff0c;它是一种行为设计模式。…

数智金融技术峰会|数新网络受邀分享《金融信创湖仓一体数据平台架构实践》,敬请期待

12月23日&#xff0c;数新网络参加DataFunSummit 2023&#xff1a;数智金融技术峰会。会上&#xff0c;数新CTO原攀峰将为大家带来《金融信创湖仓一体数据平台架构实践》 主题分享。 本次峰会由DataFun联合火山引擎、蓝驰等知名企业举办&#xff0c;将共同为大家带来一场数智金…

玩转Instagram Shop只需要学会这些功能

Instagram Shop作为Instagram下属的电商购物平台。用户可以通过浏览Instagram上的推荐产品和品牌&#xff0c;在无需离开应用的情况下了解并购买新的商品。对于经常使用Instagram的用户来说是个很便捷的购物渠道。面对这个新渠道&#xff0c;我们又该如何玩转它呢。这篇文章就会…

【沐风老师】3dMax篮球建模方法详解

3dMax足球、排球和篮球建模系列之&#xff1a;篮球建模。对于足球和排球建模&#xff0c;思路是从一个基础模型开始&#xff0c;利用这个基础模型与最终的足球&#xff08;或排球&#xff09;模型的某些相似之处&#xff0c;经过修改编辑&#xff0c;最终完成目标模型的建模。但…

ansible的playbook

1、playbook的组成部分 &#xff08;1&#xff09;task任务&#xff1a;在目标主机上执行的操作&#xff0c;使用模块定义这些操作&#xff0c;每个任务都是一个模块的调用 &#xff08;2&#xff09;variables变量&#xff1a;存储和传递数据&#xff08;变量可以自定义&…

Nginx conf文件配置

正常地址配置&#xff08;vue打包dist项目&#xff09; server {listen 端口号;server_name localhost;#charset koi8-r;#access_log logs/host.access.log main;location / {root 绝对路径地址;index index.html index.htm;}#error_page 404 /404.h…

Java可变参数(学习推荐版,通俗易懂)

定义 可变参数本质还是一个数组 示例代码 注意事项 1.形参列表中&#xff0c;可变参数只能有一个 2.可变参数必须放在形参列表的最后面 注意是最后面。 name也可以为int类型

【C#】TimeSpan

文章目录 概述属性时间计算拓展来源 概述 TimeSpan结构&#xff1a;表示一个时间间隔。 它含有以下四个构造函数&#xff1a; TimeSpan(Int64)将 TimeSpan结构的新实例初始化为指定的刻度数。&#xff08;DateTime.Tick:是计算机的一个计时周期&#xff0c;单位是一百纳秒&…

3. 行为模式 - 迭代器模式

亦称&#xff1a; Iterator 意图 迭代器模式是一种行为设计模式&#xff0c; 让你能在不暴露集合底层表现形式 &#xff08;列表、 栈和树等&#xff09; 的情况下遍历集合中所有的元素。 问题 集合是编程中最常使用的数据类型之一。 尽管如此&#xff0c; 集合只是一组对象的…

数据结构(八):图介绍及面试常考算法

一、图介绍 1、定义 图由结点的有穷集合V和边的集合E组成。其中&#xff0c;结点也称为顶点。一对结点&#xff08;x&#xff0c; y&#xff09;称为边&#xff08;edge&#xff09;&#xff0c;表示顶点x连接到顶点y。边可以包含权重/成本&#xff0c;显示从顶点x到y所需的成…

【python将txt转16进制】

python将txt转16进制 直接上代码 import time print("begin")#读取的txt文件 infile open("xxx.txt","r"); # outfile open("xxx.hex","wb");#开始读文件 a infile.read(1); _combine ""; i0; while a ! \n:i…