Java学习第04天-方法

文章目录

  • 方法
    • 方法的定义、调用
    • 方法使用的常见问题
    • 方法案例
    • 方法调用的内存图
    • 方法的参数传递机制
      • 基本类型参数
      • 引用类型参数
      • 案例
    • 方法重载
    • 单独使用return关键字

方法

方法是一种语法结构,它可以把一段代码封装成一个功能,以方便重复调用

好处

  • 提高了代码的复用性
  • 程序的逻辑更加清晰

方法的定义、调用

完整格式

修饰符 返回值类型 方法名(形参列表){方法体结构(需要执行的功能代码);return 返回值;
}

案例

public class create {public static void main(String[] args) {System.out.println(add(156, 456));}public static int add(int original, int plus){return original + plus;}
}

方法使用的常见问题

Attention!

  • 方法的修饰符:暂时都使用public static 修饰
  • 方法申明了具体的返回值类型,内部必须使用return返回对应类型的数据
  • 形参列表可以有多个,甚至可以没有;如果有多个形参,多个形参必须用“,”隔开,且不能给初始化值
  • 如果方法不需要返回结果,返回值类型必须申明成void(无返回值),此时方法内部不可以使用return返回数据
  • 方法如果没有参数,或者返回值类型申明为void可以称为无参数、无返回值的方法,依次类推

方法案例

计算1-n的值并返回

public class Case1 {public static void main(String[] args) {System.out.println(sum(100));}public static int sum(int n) {if (n < 0) return 0;int sum = 0;for (int i = 1; i <= n; i++) {sum += i;}return sum;}
}

方法调用的内存图

  • 方法没有被调用的时候,在方法区中的字节码文件中存放
  • 方法被调用的时候,需要进入到栈内存中运行

方法的参数传递机制

值传递
在传输实参给方法的形参的时候,并不是传输实参变量本身,而是传输实参变量中存储的值,这就是值传递

基本类型参数

传递的是数据值

引用类型参数

传递的是地址值

案例

写一个比较两个int类型数组是否相同的方法

public class Case2 {public static void main(String[] args) {int[] arr1 = {2, 4, 5, 3, 5};int[] arr2 = {2, 4, 5, 3, 5};System.out.println(compareIntArray(arr1, arr2));}public static boolean compareIntArray(int[] arr1, int[] arr2) {if (arr1 == null && arr2 == null) return true;if (arr1 == null || arr2 == null) return false;if (arr1.length == arr2.length) {for (int i = 0; i < arr1.length; i++) {if (arr1[i] != arr2[i]) {return false;}}return true;}return false;}
}

方法重载

一个类中,出现多个方法名称相同,但是形参列表是不同的,那么这些方法就是重载方法
形参列表不同指的是:形参的个数、类型、顺序不同,不关心形参的名称
只要是同一个类中,方法名称相同、形参列表不同,那么他们就是重载的方法,其他都不管!

public class Case3 {public static void main(String[] args) {System.out.println(sum(10, 25));System.out.println(sum((byte) 2));}public static int sum(int n) {// 计算1-n的和return sum(1, n);}public static int sum(int i, int j) {// 计算i-j的和if (i > j) return 0;int sum = 0;for (int k = i; k <= j; k++) {sum += k;}return sum;}public static int sum(short a) {return 0;}
}

好像是优先调用最接近的形参,比如传的参数是byte,会优先选择short类型的参数,然后才是int类型的参数

单独使用return关键字

直接结束当前方法的执行

public class Case4 {public static void main(String[] args) {divide(10, 0);divide(9, 5);}public static void divide(int a, int b){if (b == 0){System.out.println("除数为零...");return;}System.out.println("结果是:" + (1.0 * a / b));}
}

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

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

相关文章

查看mysql数据库大小、表大小和最后修改时间

1.查看数据库表基本信息。 select * from information_schema.TABLES where information_schema.TABLES.TABLE_SCHEMA ‘数据库名’ and information_schema.TABLES.TABLE_NAME ‘表名’; 2.查看MySQL数据库大小 SELECT sum(DATA_LENGTH)sum(INDEX_LENGTH) FROM informati…

JAVA面试之MQ

如何保证消息的可靠传输&#xff1f;如果消息丢了怎么办 数据的丢失问题&#xff0c;可能出现在生产者、MQ、消费者中。 &#xff08;1&#xff09;生产者发送消息时丢失&#xff1a; ①生产者发送消息时连接MQ失败 ②生产者发送消息到达MQ后未找到Exchange(交换机) ③生产者发…

pcb沉金工艺有什么作用:为何它成为电子制造的必备工艺?

在电子制造业中&#xff0c;PCB&#xff08;印刷电路板&#xff09;的质量和性能对于产品的整体表现至关重要。沉金工艺因其能够显著提升pcb的焊接性能、耐腐蚀性和导电性能&#xff0c;已成为电子制造不可或缺的一部分。 一、沉金工艺的作用 1.焊接性能的提升&#xff1a;工…

第一次用ssh登录树莓派or linux服务器出现Permission denied (publickey)

authenticity of host ) cant be established ssh userip Permission denied (publickey) 解决办法&#xff1a; 第一步&#xff1a; PasswordAuthentication yes 第二步&#xff1a; service sshd restart 这两步一步都不能少 注意&#xff01;

游资宁波桑田路悟道心法

“书藏古今&#xff0c;港通天下”–说的是甬城。 孙中山先生说&#xff0c;“凡吾国各埠&#xff0c;莫不有币人事业&#xff0c;即欧洲各国&#xff0c;亦多雨商足迹”&#xff0c;“甬人开风气之先&#xff0c;为各省之模范”–说的是甬人。 “炒股不跟解放南&#xff0c;…

如何搭建本地的 NPM 私有仓库 Nexus

NPM 本地私有仓库&#xff0c;是在本地搭建NPM私有仓库&#xff0c;对公司级别的组件库进行管理。在日常开发中&#xff0c;经常会遇到抽象公共组件的场景&#xff0c;在项目内部进行公用。新的项目开始时&#xff0c;也会拷贝一份创建一个新的项目&#xff0c;这样做不易于管理…

k8s部署maven项目

failed to verify certificate: x509: certificate signed by unknown authority 今天在执行kubectl get nodes的时候报的证书验证问题&#xff0c;看了一圈首次搭建k8s的都是高频出现的问题。 couldn’t get current server API group list: Get “https://kubernetes.docker…

虚拟机网络桥接模式无法通信,获取到的ip为169.254.X.X

原因&#xff1a;VMware自动选择的网卡可能不对 解决&#xff1a;编辑-虚拟网络编辑器-更改桥接模式-选择宿主机物理网卡&#xff0c;断开虚拟机网络连接后重新连接即可

能源监控新方案:IEC104转MQTT网关在新能源发电中的应用

需求背景 近些年&#xff0c;我国新能源产业快速发展&#xff0c;光伏、风电等新能源项目高速增长&#xff0c;新能源发电已经成为国家能源结构的重要组成部分。 打造数字化、智能化、信息化的电力物联网系统&#xff0c;实现光伏风电等新能源发电站的远程监控、远程维护是新能…

每日一题-贪心算法

目录 前言 买入股票的最佳时机(1) 买入股票的最好时机(2) 前言 当你踏上贪心算法的旅程&#xff0c;仿佛置身于一场智慧的盛宴&#xff0c;每一步都是对问题解决方案的审慎选择&#xff0c;每一次决策都是对最优解的向往。贪心算法以其简洁高效的特性&#xff0c;被广泛运用于…

【golang学习之旅】Go的 switch 分支语句

系列文章 【golang学习之旅】报错&#xff1a;a declared but not used 【golang学习之旅】Go 的基本数据类型 【golang学习之旅】Go 的循环结构 【golang学习之旅】Go里面 if 条件判断语句 目录 系列文章switch 分支fallthrough 关键字无条件 switch switch 分支 有些时候需…

esp32-cam 1. 出厂固件编译与测试

0. 环境 - ubuntu18 - esp32-cam - usb转ttl ch340 硬件连接 esp32-camch340板子U0RTXDU0TRXDGNDGND5V5V 1. 安装依赖 sudo apt-get install vim sudo apt install git sudo apt-get install git wget flex bison gperf python python-pip python-setuptools python-serial p…

Qt 信号槽中信号重名解决办法

1、类似与Qt4中的写法&#xff1a; 2、函数指针 3、泛型 connect(ui->combox, QOverload<int>::of(&QCombox::currentIndexChanged), this ,&mainwindow::onindexchange);

LLM应用:让大模型prompt总结生成Mermaid流程图

生成内容、总结文章让大模型Mermaid流程图展示&#xff1a; mermaid 美人鱼, 是一个类似 markdown&#xff0c;用文本语法来描述文档图形(流程图、 时序图、甘特图)的工具&#xff0c;您可以在文档中嵌入一段 mermaid 文本来生成 SVG 形式的图形 Prompt 示例&#xff1a;用横向…

33.Docker安装

Docker由CE和EE两个版本&#xff0c;CE是社区版免费&#xff0c;EE企业版收费。 Docker CE支持64位版本centos7,内核版本不低于3.10&#xff0c;Centos7满足最低内核要求&#xff0c;所以在centos7安装docker。 前期准备工作 使用虚拟机上安装Centos7系统&#xff0c;再安装…

001_Langchain

LangChain LangChain 是一个开源框架,旨在帮助开发者使用大型语言模型(LLMs)和聊天模型构建端到端的应用程序。它提供了一套工具、组件和接口,以简化创建由这些模型支持的应用程序的过程。LangChain 的核心概念包括组件(Components)、链(Chains)、模型输入/输出(Mode…

赶紧收藏!2024 年最常见 100道 Java 基础面试题(二十五)

上一篇地址&#xff1a;赶紧收藏&#xff01;2024 年最常见 100道 Java 基础面试题&#xff08;二十四&#xff09;-CSDN博客 四十九、什么是死锁&#xff1f; 死锁是计算机科学中一个重要的概念&#xff0c;尤其在并发编程和多线程环境中。在Java中&#xff0c;死锁同样是一…

《汇编语言》- 读书笔记 - 附注

《汇编语言》- 读书笔记 - 附注 附注1&#xff1a;Intel 系列微处理器的3种工作模式1. 实模式2. 保护模式保护模式 与 实模式 的主要区别寻址能力内存保护特权级别任务管理和虚拟内存 为何需要保护模式访问受保护资源 3. 虚拟 8086 模式4. 长模式&#xff08;Long Mode&#xf…

R语言学习—6—多元相关与回归分析

1、引子 xc(171,175,159,155,152,158,154,164,168,166,159,164) #身高 yc(57,64,41,38,35,44,41,51,57,49,47,46) #体重 par(marc(5,4,2,1)) #设定图距离画布边缘的距离&#xff1a;下5&#xff0c;左4&#xff0c;上2&#xff0c;右1 plot(x,y) 2、相关…

【C语言实现贪吃蛇】(内含源码)

前言&#xff1a;首先在实现贪吃蛇小游戏之前&#xff0c;我们要先了解Win32 API的有关知识 1.Win32 API Windows这个多作业系统除了协调应用程序的执行、分配内存、管理资源之外&#xff0c;它同时也是一个很大的服务中心&#xff0c;调佣这个中心的各种服务&#xff08;每一…