JavaSE基础(五)—— 方法(定义、调用、重载)、return关键字

news2024/9/21 14:47:51

目录

一、方法定义、调用

1. 方法完整的定义形式、调用

2. 方法的其他定义形式、调用

二、方法使用的常见问题

三、方法案例

1. 定义方法的技巧、计算 1- n的和返回

2. 数组求最值案例改方法形式

四、方法调用的内存图

五、方法的参数传递机制

基本类型和引用类型的参数在传递的时候有什么不同?

六、方法重载

方法重载的作用 

八、单独使用return关键字


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

使用方法的好处是?提高了代码的复用性;让程序的逻辑更清晰。

一、方法定义、调用

1. 方法完整的定义形式、调用

方法格式的注意点

  • 方法的修饰符:暂时都使用public static 修饰
  • 方法申明了具体的返回值类型,内部必须使用return返回对应类型的数据
  • 形参列表可以有多个,甚至可以没有; 如果有多个形参,多个形参必须用“,”隔开,且不能给初始化值

2. 方法的其他定义形式、调用

注意事项

  • 方法不需要返回结果,则申明返回值类型为void;方法不需要参数,则形参列表可以不写。
  • 方法没有申明返回值类型,内部不能使用return返回数据。
  • 方法如果没有形参列表,调用的时候则不能传入参数值,否则报错。

二、方法使用的常见问题

  • 方法的编写顺序无所谓。
  • 方法与方法之间是平级关系,不能嵌套定义。
  • 方法的返回值类型为void(无返回值),方法内则不能使用return返回数据,如果方法的返回值类型写了具体类型,方法内部则必须使用return返回对应类型的数据。
  • return语句下面,不能编写代码,因为永远执行不到,属于无效的代码。
  • 方法不调用就不执行, 调用时必须严格匹配方法的参数情况。
  • 有返回值的方法调用时可以选择定义变量接收结果,或者直接输出调用,甚至直接调用;无返回值方法的调用只能直接调用

三、方法案例

1. 定义方法的技巧、计算 1- n的和返回

需求:定义一个方法,方法中计算出 1-n的和并返回。

分析:
1.根据格式编写方法 ----> 因n不固定,故方法需要声明形参接收;要返回结果,还需申明返回值类型。
2.方法内部使用 for 循环计算出 1-n 的和并返回。

public static int sun(int n){
    int sum = 0;
    for (int i = 1; i <= n; i++) {
        sum += i;
    }
    return sum;
}

2. 数组求最值案例改方法形式

需求:把找出数组的最大值案例,改造成方法,可以支持返回任意整型数组的最大值数据。

分析:
1.根据格式编写方法

  • 要返回最大值,需要申明返回值类型。
  • 需要接收数组, 需要申明形参列表。

2. 方法内部找出数组的最大值并返回。

public class Test {
    public static void main(String[] args) {
        // 1、定义一个静态初始化的数组存储这些数据
        int[] faceScores = {15, 9000, 10000, 20000, 9500, -5};
        // 2、定义一个变量用于保存最大值数据
        int max = faceScores[0];
        / / 3、遍历数组中的每个元素
        for (int i = 1; i < faceScores.length; i++) {
            // 4、判断这个元素值是否大于最大值变量中存储的数据,若大,则替换。
            if(faceScores[i] > max){
                max = faceScores[i];
            }
        }
        // 5、输出最大值变量即可
        System.out.println("数组的元素最大值是: " + max);
    }
}

四、方法调用的内存图

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

五、方法的参数传递机制

形参和实参各指什么?

  • 形参:以方法为例,就是方法定义时的变量。
  • 实参:在方法内部定义的变量。

Java的参数传递机制是?

  • 值传递,传输的是实参存储的值

基本类型和引用类型的参数在传递的时候有什么不同?

  • 都是值传递。
  • 基本类型的参数传输存储的数据值。
  • 引用类型的参数传输存储的地址值。

六、方法重载

同一个类中,出现多个方法名称相同,但是形参列表是不同的,那么这些方法就是重载方法

方法重载的作用 

可读性好,方法名称相同提示是同一类型的功能,通过形参不同实现功能差异化的选择,这是一种专业的代码设计。

方法重载的识别技巧

  • 只要是同一个类中,方法名称相同、形参列表不同,那么他们就是重载的方法,其他都不管!(如:修饰符,返回值类型都无所谓)
  • 形参列表不同指的是:形参的个数、类型、顺序不同,不关心形参的名称。

八、单独使用return关键字

可以立即跳出并结束当前方法的执行; return关键字单独使用可以放在任何方法中 

如果要直接结束当前方法的执行,怎么解决

  • return; 跳出并立即结束所在方法的执行。
  • break; 跳出并结束当前所在循环的执行。
  • continue; 结束当前所在循环的当次继续,进入下一次执行。

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

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

相关文章

携带信息的Ajax GET请求

前端页面代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>ajax get请求</title><script type"text/javascript">window.onload function () {document.getEle…

Spring管理数据库事务

Spring编程式事务和声明式事务的验证 1、工程目录pom.xml 2、在resources目录创建配置文件applicationContext_1.xmlapplicationContext_2.xmlapplicationContext_3.xmljdbc.properties 3、创建数据表accountaccount 4、创建dao类5、创建service类6、创建测试类7、实验结果图1 …

基于python的点云处理库总结

想对于PCL&#xff0c;python处理点云的库还是比较多的&#xff0c;下面对此进行简单的总结&#xff1a; 一、Open3D A Modern Library for 3D Data Processing&#xff0c;Intel出品&#xff0c;MIT协议。 Open3D是一个支持3D数据处理软件快速开发的开源库。Open3D使用C和P…

CSS - 垂直菜单(鼠标移入时显示右侧容器)

效果图 示例源码 <body><section class="content"><ul class=

OpenVINO 2022.3之四:OpenVINO模型转换

OpenVINO 2022.3之四&#xff1a;OpenVINO模型转换 OpenVINO 2022.3 支持的模型格式: OpenVINO IR&#xff08;中间表示&#xff09; - OpenVINO™的专有格式&#xff0c;可以完全利用其全部功能。 ONNX和PaddlePaddle - 直接支持的格式&#xff0c;这意味着它们可以在OpenVI…

DT7遥控DBUS协议解析

文章目录 运行环境&#xff1a;1.1 DBUS协议解析1)DT7遥控2)配置串口引脚3)配置串口接收DMA 2.1例程代码移植1)例程移动到 Inc 和 Src2)makefile添加.c文件 3.1核心代码解释4.1代码修改1)bsp_rc.c 和 remote_control.c2)调用代码 5.1调试1)硬件接线2)串口工具监视拨杆数据 运行…

【C进阶】-- 字符串函数(1)

目录 0. 前言 1. 函数介绍 1.1 strlen 1.1.1主动改变\0的位置 ✅"strlen函数的返回类型是size_t - 无符号整型"✅ 当使用strlen函数但不引用头文件时&#xff0c;执行结果超出预料: 求字符串长度的方法&#x1f4a5; 1.计数器 2.递归 3.指针 - 指针 1.2 st…

HBase安装下载与集群(高可用)

一、准备 1.1 安装zookeeper zookeeper 安装下载与集群 1.2 安装HADOOP hadoop搭建集群搭建 1.3下载HBase https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/ 二、正常部署 2.1 检查是否正常启动 2.2解压 tar -zvxf hbase-2.4.11-bin.tar.gz2.3配置环境变量 vim /…

高效的工作团队都在使用什么工具?

、 移动互联网时代&#xff0c;企业需要开源节流&#xff0c;需要提高员工整体工作效率。尤其对于互联网公司来说&#xff0c;要快速发展业务&#xff0c;更需要让团队工作简单、方便、高效。然而大多公司都面临以下低效阻碍&#xff1a;跨公司、跨部门沟通合作困难。不同部门和…

2、Flutter布局和状态管理

一、Flutter布局之Row&Column 1.1 Container的center属性: 让子控件在父控件的中间显示 Container(color: Colors.yellow,//1.Center让子部件在父控件中间child: Center(child: Text(Layout Center)),); 1.2 alignment让子控件相对父控件位置,取值范围在-1&#xff5e;1…

Mysql索引(1):索引概述

1 介绍 索引&#xff08;index&#xff09;是帮助MySQL高效获取数据的数据结构(有序)。在数据之外&#xff0c;数据库系统还维护着满足特定查找算法的数据结构&#xff0c;这些数据结构以某种方式引用&#xff08;指向&#xff09;数据&#xff0c; 这样就可以在这些数据结构上…

【半监督学习】Match系列.1

半监督学习(SSL) 半监督学习(SSL). 让学习器不依赖外界交互、自动地利用未标记样本来提升学习性能. 即在少量样本标签的引导下, 能够充分利用大量无标签样本提高学习性能, 避免了数据资源的浪费, 同时解决了有标签样本较少时监督学习方法泛化能力不强和缺少样本标签引导时无监…

YoloV8涨点神器:CFPNet-ECVBlock的小目标检测,即插即用,助力检测涨点

1.Centralized Feature Pyramid for Object Detection 论文地址: https://arxiv.org/abs/2210.02093 1.摘要: CFPNet简介 CFPNet即插即用,助力检测涨点,YOLOX/YOLOv5/YOLOV7均有效 1.3 Centralized Feature Pyramid (CFP) 如图2所示,CFP主要由以下部分组成:输入图像、…

<IBM AIX><ERRPT><No.001>《出现E86653C3、49183216、8003764C告警的处理 20230506》

《出现E86653C3、49183216、8003764C告警的处理 20230506》 1 现象2 分析3 结论4 引申 1 现象 服务器出现errpt告警&#xff0c;告警为E86653C3、49183216、8003764C。 2 分析 1、hdisk1对应的VG&#xff0c;为rootvg。 lspv |grep hdisk12、查看VG状态 lsvg rootvg说明…

聊聊压电材料高温介电温谱仪所知道的那些事(GWJDN-600A)

GWJDN-600A型压电材料高温介电温谱仪 关键词&#xff1a;单通道&#xff0c;双通道&#xff0c;四通道&#xff0c;高低温 GWJDN-600A压电材料高温介电温谱仪本高频介电温谱系统主要用于绝缘材料在不同温度不同频率下的电学性能测试&#xff0c;系统包含高温炉膛&#xff0c;阻…

【云原生】k8s集群部署Rook+Ceph云原生存储

文章目录 一、Rook介绍二、Ceph介绍三、部署Rook和Ceph3.1 前置准备3.2 部署Rook3.3 部署Ceph集群3.4 部署ceph dashboard 四、部署Rook工具箱五、部署RBD StorageClass 一、Rook介绍 Rook 官网地址&#xff1a;https://rook.io 是一个自管理的分布式存储编排系统&#xff0c;…

c++基础学习Num04

目录 基于for循环 一维数组 二维数组理解 c语言的null和c的null 基于for循环 for(ELEMTYPE val:array){}ELEMTYPE:是范围变量的类型。通常使用auto自动转换范围变量类型 val:范围变量的名称。通过迭代依次接收数组中的元素值 array:容器&#xff0c;注意这里的array必须是…

ctfshow 每周大挑战 RCE极限挑战 2

目录 题目解题步骤1.跑一下正则2.变量自增3.最终解题payload 一点多余的思考 题目 解题步骤 1.跑一下正则 本着能懒就懒的原则&#xff0c;就不写Python了&#xff08;提一下这个主要是我一开始想的是写Python呜呜呜&#xff09;&#xff0c;直接写php&#xff0c;还能复制粘…

C生万物 | 指针入门到进阶就看这篇了【十万字吐血整理,收藏学习】

文章篇幅较长&#xff0c;可前往电脑端进行学习&#x1f4bb; 之前很多粉丝私信我说C语言指针怎么这么难&#xff0c;看了很多视频都学不懂&#xff0c;于是我写了一篇有关指针从入门到进阶的教学&#xff0c;帮助那些对指针很困扰的同学有一个好的学习途径&#xff0c;下面是本…

基于JavaWeb实现的学生宿舍管理系统

【简介】 本系统是基于Java实现的学生宿舍管理系统&#xff0c;前端&#xff1a;Vue&#xff1b;后端&#xff1a;SpringBoot Mybatis Redis Mysql&#xff1b;系统环境&#xff1a;jdk1.8 | mysql | redis | nodejs14。有包含登录在内的十大功能模块&#xff0c;三个访问角…