day04—java基础之方法详解

方法概述

方法是具有特定功能的代码集合,由于我们是把重复的代码写到方法当中,以后要用直接调用方法即可,不需要再写一遍了。代码相当于只写了一遍。所以以提高代码的复用性。如果要修改代码,我们也只要修改一处即可,所以方法还可以提高代码的可维护性

方法到底要学什么?

方法需要先定义,才能使用,方法的定义,也叫做创建方法。

方法里面的代码不会主动执行,需要手动调用,才能执行。

学方法就是学两个:

  • 方法如何定义

  • 方法如何调用

定义格式:

public static void 方法名 () {// 方法体;
}调用格式:方法名();

注:方法与方法之间是平级关系,不能嵌套调用。

public class Demo1 {//入口方法public static void main(String[] args) {//方法调用eat();System.out.println("主方法执行");}//方法定义public static void eat() {//方法调用sleep();System.out.println("吃饭");}//方法定义public static void sleep() {System.out.println("睡觉");}
}

方法的调用过程

  • 方法没被调用前在方法区中的字节码文件中,调用后进入栈内存。

  • 栈内存有什么特点?先进后出。

方法1 方法2 方法3 依次进栈,然后是 方法3 方法2 方法1 依次出栈。

方法调用1:

方法调用2:

有参数无返回值方法的定义和调用

定义格式:参数:由数据类型和变量名组成

public static void 方法名 (参数1) {方法体;
}
// 当有多个参数时,通过逗号分隔。
public static void 方法名 (参数1, 参数2, 参数3...) {方法体;
}

调用格式:

方法名(参数);方法名(参数1,参数2);===========================
isEvenNumber(10);getMax(10,20);

​注:方法调用时,参数的数量和类型必须与方法定义中的设置相匹配,否则程序将报错

public class Demo2 {public static void main(String[] args) {//带参数方法调用isEvenNumber(10);}//定义带参数的方法public static void isEvenNumber(int num) {if (num % 2 == 0) {System.out.println("偶数");} else {System.out.println("奇数");}}
}

形参和实参

  1. 形参:方法定义中的参数

​ 等同于变量定义格式,例如:int number

  1. 实参:方法调用中的参数

​ 等同于使用变量或常量,例如: 10 number

public class Example {  public void printMessage(String message) { // String message 是形参  System.out.println(message);  }  
}
​
public class Main {  public static void main(String[] args) {  Example example = new Example();  example.printMessage("Hello, World!"); // "Hello, World!" 是实参  }  
}

方法练习-打印n-m之间所有的奇数

  • 需求:定义一个方法(print) 用于打印 n 到 m 之间所有的奇数

  • 思路:

    ​ 1:定义方法,名称为print​ 2:为方法添加两个int类型的形参,准备接受调用者传递过来的实参​ 3:方法中设计for循环,循环从n开始,到m结束​ 4:循环中加入if判断,是奇数,则打印​ 5:main方法中调用print方法,传入两个实际参数

public class Demo2Method {public static void main(String[] args) {// 5:main方法中调用print方法,传入两个实际参数print(10,20);}//1:定义方法,名称为print// 2:为方法添加两个int类型的形参,准备接受调用者传递过来的实参public static void print(int n, int m){//健壮性if(n>m){System.out.println("参数有误");return;}System.out.println(n + "到" + m + "之间的奇数为:");// 3:方法中设计for循环,循环从n开始,到m结束for(int i = n; i <= m; i++){// 4:循环中加入if判断,是奇数,则打印if(i % 2 == 1){System.out.println(i);}}}
}

有参数有返回方法的定义和调用

  • 为什么要有带返回值的方法

    我们需要根据一个方法产出的结果来组织另外一段代码的逻辑,为了拿到这个方法产出的结果,就需要定义带返回值的方法。

  • 定义格式

public static 返回值数据类型  方法名 ( 参数 ) {return 数据 ;
}public static boolean isEvenNumber( int number ) {           return true ;
}
public static int getMax( int a, int b ) {return  100 ;
}

​注:方法定义时return后面的返回值与方法定义上的返回值数据类型要匹配,否则程序将报错

调用格式:

方法名 ( 参数 ) ;
数据类型 变量名 = 方法名 ( 参数 ) ;isEvenNumber ( 5 ) ;
boolean  flag =  isEvenNumber ( 5 ); 

方法的通用格式(掌握)

 

public static void/返回值数据类型 方法名(参数) {方法体; return 数据 ;
}
  • 解释:

    • public static 修饰符,目前先记住这个格式

      返回值数据类型 方法操作完毕之后返回的数据的数据类型

      ​ 如果方法操作完毕,没有数据返回,这里写void,而且方法体中一般不写return

      方法名 调用方法时候使用的标识

      参数 由数据类型和变量名组成,多个参数之间用逗号隔开

      方法体 完成功能的代码块

      return 如果方法操作完毕,有数据返回,用于把数据返回给调用者

  • 定义方法时,要做到三个明确

    • 方法要干什么? 对应我们的方法体。

    • 明确参数:我们要干这件事,需要什么材料。

  • 明确返回值类型:主要是明确方法操作完毕之后是否有数据返回,如果没有,写void;如果有,写对应的数据类型

  • 调用方法时的注意:

    • void类型的方法,直接调用即可

    • 非void类型的方法,推荐用变量接收调用

方法重载

  • 概念

    二同三不同二无关。

    同一个类中的同名方法;

    参数的个数、类型、顺序不同;

    与返回值无关,与形参的名称无关;

  • 作用

    针对于方法的编写者而言:相同功能的方法,只要起一个名字即可。

    针对于方法的使用者而言:相同功能的方法,也只要记忆一个名字就可以了。

  • 正确范例:

public class MethodDemo {public static void fn(int a) {//方法体}public static void fn(int b) {//方法体}public static int fn(double a) {//方法体}
}public class MethodDemo {public static float fn(int a) {//方法体}public static int fn(int a , int b) {//方法体}
}

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

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

相关文章

Qt常用基础控件总结

一、按钮部件 按钮部件共同特性 Qt 用于描述按钮部件的类、继承关系、各按钮的名称和样式,如下图: 助记符:使用字符"&“可在为按钮指定文本标签时设置快捷键,在&之后的字符将作为快捷键。比如 “A&BC” 则 Alt+B 将成为该按钮的快捷键,使用”&&qu…

springcloud整合网关(springcloud-gateway)

pom引入依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><!-- 服务注册 --><dependency><groupId>com.alibaba.cloud</groupId&…

Linux增加硬盘分区并挂载(各个云平台操作)

第一部分&#xff0c;增加硬盘 1.购买硬盘并选择云服务器 输入lsblk 命令后即可看到刚刚添加的硬盘了 vdb就是新添加的硬盘名称了 第二部分 对硬盘进行分区处理 然后对新建磁盘进行分区 输入命令fdisk /dev/vdb 输入lsblk -f 命令查看刚刚建好的分区(看到多余的sdc不用在意…

设计模式Java实现-工厂模式

✨这里是第七人格的博客✨小七&#xff0c;欢迎您的到来~✨ &#x1f345;系列专栏&#xff1a;设计模式&#x1f345; ✈️本篇内容: 工厂模式✈️ &#x1f371;本篇收录完整代码地址&#xff1a;https://gitee.com/diqirenge/design-pattern &#x1f371; 楔子 记得刚…

WAGO系统 远程代码执行漏洞复现(CVE-2023-1698)

0x01 产品简介 WAGO是一家专业从事电气互连、自动化和接口电子技术的公司。 0x02 漏洞概述 在 WAGO 的多个产品中,一个漏洞允许未经身份验证的远程攻击者创建新用户并更改设备配置,可导致远程RCE、拒绝服务等使整个系统受损。 0x03 影响范围 751-9301 Compact Controll…

2W,3KVDC隔离 定电压输入,稳压单、双路输出DC-DC模块电源——TPI-2W 系列

TPI-2W系列产品是专门针对PCB上需要与输入电源隔离的电源应用场合而设计的。该产品适用于&#xff1a;1&#xff09;输入电源的电压变化≤5%&#xff1b;2&#xff09;输入输出之间要求隔离电压≥3000VDC&#xff1b;3&#xff09;对输出电压稳定和输出纹波噪声要求高.

达梦数据刷盘测试

达梦数据库为了保证数据故障恢复的一致性&#xff0c;REDO 日志的刷盘必须在数据页刷盘之前进行。 下面我们通过测试来验证是不是这样 执行我们事先准备的SHELL脚本 可以看到第一次strings文件没有输出&#xff0c;说明刚写的数据在数据库的BUFFER缓冲区内&#xff0c;还没有刷…

Screeps工程化之配置化

目录 前言一、抽取配置项二、读取配置项 前言 Screeps中所有代码都会在一个tick&#xff08;游戏内的世间&#xff09;内执行完成&#xff0c;想要做到代码的高度复用&#xff0c;和隔离各个房间creep的行为就需要将部分代码进行配置化&#xff0c;本文仅为作者本人的游戏思路…

机器学习算法 - 逻辑回归

逻辑回归是一种广泛应用于统计学和机器学习领域的回归分析方法&#xff0c;主要用于处理二分类问题。它的目的是找到一个最佳拟合模型来预测一个事件的发生概率。以下是逻辑回归的一些核心要点&#xff1a; 基本概念 输出&#xff1a;逻辑回归模型的输出是一个介于0和1之间的…

翻译《The Old New Thing》 - The performance cost of reading a registry key

The performance cost of reading a registry key - The Old New Thing (microsoft.com)https://devblogs.microsoft.com/oldnewthing/20060222-11/?p32193 Raymond Chen 2006年2月22日 读取注册表键的性能成本 注册表是一个方便的场所&#xff0c;它以统一且多线程安全的方式…

使用 MSYS2 Qt6 发布绿色版的SDR软件无线电应用

文章目录 概要整体架构流程技术名词解释技术细节在启动器中为子进程设置路径和环境。如何迅速找齐所有的DLL 小结附件 概要 新接触软件定义无线电&#xff08;SDR&#xff09;的朋友一般都会一股脑的安装一些现有的SDR平台。无论是GNURadio还是SDR、SDRSharp、SDRAngel&#x…

C++map和set(个人笔记)

Cmap和set 1.set1.1set的使用1.1.1 set的模板参数列表1.1.2set的构造1.1.3set的迭代器1.1.4 set的容量1.1.5 set修改操作1.1.6 set的具体使用例子 2.map2.1map的使用2.1.1map的模板参数列表2.1.2map的构造2.1.3map的迭代器2.1.4 map的容量与元素访问2.1.5 map中元素的修改2.1.6…

模电·基本共基放大电路

基本共集放大电路 图1.(a)所示为基本共基放大电路&#xff0c;根据放大电路的组成原则&#xff0c;为使晶体管发射结正向偏置且 U B E &#xff1e; U o n {U\tiny BE}&#xff1e;{U\tiny on} UBE&#xff1e;Uon&#xff0c;在其输入回路加电源 V B B V\tiny BB VBB&#xf…

Photoshop中绘图及图像修饰工具的应用

Photoshop中绘图及图像修饰工具的应用 Photoshop中的颜色设置与取样前景色与背景色颜色取样 Photoshop中的颜色替换工具Photoshop中的渐变工具Photoshop中的描边命令Photoshop中的填充工具采用油漆桶进行填充采用填充命令进行填充 Photoshop中的擦除工具 Photoshop中的颜色设置…

SQL子查询练习

学习链接&#xff1a;https://sqlzoo.net/wiki/Window_LAG ● 【题目1】查询在欧洲(Europe)人均gdp大于英国 (United Kingdom)的国家名。人均国内生产总值&#xff08;人均GDP&#xff09;国内生产总值&#xff08;GDP&#xff09;/人口&#xff08;populaiton&#xff09;。…

智能奶柜:健康生活新风尚

智能奶柜&#xff1a;健康生活新风尚 在快节奏的都市生活中&#xff0c;健康与便利成为了现代人的双重追求。而在这两者交汇之处&#xff0c;智能奶柜应运而生&#xff0c;它不仅是科技与生活的完美融合&#xff0c;更是日常营养补给的智慧之选。 清晨的第一缕温暖 —— 新鲜…

pycharm编译器背景设置

最近&#xff0c;瞎逛的时候发现个好玩的&#xff0c;pycharm竟然可以设置背景了&#xff0c;也不知道是不是我太out了&#xff0c;觉得很有意思&#xff0c;略微记录一下 如下步骤&#xff1a; 第五步&#xff1a;选择自己的图片路径 第六步&#xff1a;设置图片透明度&…

【讲解下迭代加深搜索】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

自动驾驶系统中的数据闭环:挑战与前景

目录 自动驾驶概况 1.1自动驾驶分级 1.2自动驾驶国内发展 ​1.3自动驾驶架构模型 数据闭环的意义 2.1 搜集corner case的数据 2.2 提高模型的泛化能力 2.3 驱动算法迭代 数据闭环落地的痛点及对策 3.1 数据采集和使用的合规性问题 3.2 数据确权问题 3.3 数据采集…