java基础之函数

函数

概念

是一段具有特定功能的代码, 特点为可以多次执行.通常情况下一个函数对应一个功能

语法

访问修饰符 static 返回值类型 函数名(形参列表){//操作语句
}
public static void 函数名(){}

位置

类以内,其他函数以外,与主函数平级

调用

自定义函数必须经过调用才有可能执行

函数名(实参列表)
函数名()

位置

只要在函数内,想在哪执行,就在哪调用

执行流程

函数

概念

是一段具有特定功能的代码, 特点为可以多次执行.通常情况下一个函数对应一个功能

语法

访问修饰符 static 返回值类型 函数名(形参列表){//操作语句
}
public static void 函数名(){}

位置

类以内,其他函数以外,与主函数平级

调用

自定义函数必须经过调用才有可能执行

函数名(实参列表)
函数名()

位置

只要在函数内,想在哪执行,就在哪调用

执行流程

参数

表示函数执行中不确定的内容,特点为值可变

形参

形式上的参数. 特点为只有声明部分没有具体值,写在函数声明处的小括号内

实参

实际上的参数. 特点为是一个具体值或拥有具体值结果的表达式,写在函数调用处的小括号内

一个参数

public static void 函数名(数据类型 参数名){}
调用:函数名(值|拥有结果的表达式)
执行流程

使用
  1. 有参数时,必须通过实参给形参赋值

多个参数

public static void 函数名(数据类型 参数名1,数据类型 参数名2,..){}
调用:函数名(值1,值2,..)
使用

实参列表与形参列表必须保持一致

  • 参数列表: 个数 顺序 数据类型

public class Test1 {public static void main(String[] args) {//需求:输出一首打油诗,要求每行下方输出做分割System.out.println("太阳当空照");printLine(15,"-");//15 -System.out.println("花儿对我笑");printLine(20,"*");//20 *System.out.println("小鸟说早早早");printLine(25,"^");//25 ^System.out.println("你为什么背上java包");}
​/*** 输出指定数量的分隔符  printLine(int,String)* @param num 数量* @param str 分隔符内容*/public static void printLine(int num,String str){//int num=15for (int i = 1; i <= num; i++) {System.out.print(str);}System.out.println();}
​
}

返回值

表示函数的执行结果

public static 返回值类型 函数名(形参列表){//操作语句return 值;
}

return语句

  1. 作用: 向上返回 返回值

    • 上:调用者

  2. void表示无返回值

  3. 如果声明了返回值,则在函数内部必须通过return关键字将值向上返回

  4. 调用有返回值的函数时,必须对返回值做出处理

    • 先定义变量接收返回值,其后再操作变量

      数据类型 变量名=函数名(实参列表);
      • 变量类型由函数声明处的返回值类型决定

    • 直接操作函数调用结果

    public static void main(String[] args) {//接收调用结果int sum=add(1, 2);System.out.println(sum % 2 == 0 ? "偶数" : "不是偶数");System.out.println(sum *10);//直接操作调用结果System.out.println(add(2, 4) % 2 == 0 ? "偶数" : "不是偶数");System.out.println(add(2, 4) *10);}
    ​//定义一个函数,传入整型参数a和b,计算参数之和. 要求在主函数中调用测试并判断和是否为偶数public static int add(int a,int b){//System.out.println(a+b);return a+b;}

  5. 必须保证每种分支情况都有可被执行的return语句

  6. 函数内存在分支时建议的书写套路:

    1. 在函数最上方定义用来返回的变量并赋初始值

    2. 在操作过程中根据情况更改变量的值

    3. 在函数最下方return该变量

  7. 执行流程:

  8. 同一作用范围内,return语句的下方不能存在其他有效语句

    • 无法执行

  9. 扩展: 可以直接使用return;强制截止当前程序的执行

函数高级

函数的嵌套调用

  1. 嵌套调用时调用顺序与向上返回顺序相反

  2. 最先被调用的最后执行结束,最后调用的最先执行结束

JVM内存结构

  1. 栈的特点:永远操作栈顶元素. 存从栈顶存,取从栈顶取

  2. 每调用一次函数都会生成一条对应的栈帧, 函数的执行流程与栈的执行特点一致

掌握

  1. 函数的完整语法

  2. 形参和实参的区别

  3. return的使用

  4. 参数列表都有哪些内容

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

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

相关文章

Linux操作系统——进程控制(三) 进程程序替换

前言 目前我们接触到我们所创建的所有的子进程&#xff0c;它执行的代码都是父进程代码的一部分&#xff01;那么如果我们想让子进程执行新的程序呢&#xff1f;&#xff1f;&#xff1f;执行全新的代码和访问全新的数据&#xff0c;不在和父进程有瓜葛&#xff0c;我们该怎么…

Redis缓存使用问题

数据一致性 只要使用到缓存,无论是本地内存做缓存还是使用 redis 做缓存,那么就会存在数据同步的问题。 以 Tomcat 向 MySQL 中写入和删改数据为例,来解释数据的增删改操作具体是如何进行的。 我们分析一下几种解决方案, 1、先更新缓存,再更新数据库 2、先更新数据库,…

【JVM】本地方法接口 Native Interface

一、JNI简介 JVM本地方法接口&#xff08;Java Native Interface&#xff0c;JNI&#xff09;是一种允许Java代码调用本地方法&#xff08;如C或C编写的方法&#xff09;的机制。这种技术通常用于实现高性能的计算密集型任务&#xff0c;或者与底层系统库进行交互。 二、JNI组…

Zynq 电源

ZYNQ芯片的电源分PS系统部分和PL逻辑部分&#xff0c;两部分的电源分别是独立工作。PS系统部分的电源和PL逻辑部分的电源都有上电顺序&#xff0c;不正常的上电顺序可能会导致ARM系统和FPGA系统无法正常工作。 PS部分的电源有VCCPINT、VCCPAUX、VCCPLL和PS VCCO。 VCCPINT为PS内…

【GoLang入门教程】Go语言几种标准库介绍(六)

文章目录 前言几种库Net库 (网络库&#xff0c;支持 Socket、HTTP、邮件、RPC、SMTP 等)重要的子包和功能&#xff1a;示例 OS库&#xff08;操作系统平台不依赖平台操作封装&#xff09;主要功能&#xff1a;示例 path库(兼容各操作系统的路径操作实用函数)常用函数&#xff1…

Elasticsearch 地理空间搜索 - 远超 OpenSearch

作者&#xff1a;来自 Elastic Nathan_Reese 2021 年&#xff0c;OpenSearch 和 OpenSearch Dashboards 开始作为 Elasticsearch 和 Kibana 的分支。 尽管 OpenSearch 和 OpenSearch Dashboards 具有相似的血统&#xff0c;但它们不提供相同的功能。 在分叉时&#xff0c;只能克…

【ArcGIS微课1000例】0087:经纬度格式转换(度分秒转度、度转度分秒)

ArcGIS软件可以很方便的直接实现度分秒转度、度转度分秒。 文章目录 一、转换预览二、工具介绍三、案例解析一、转换预览 借助ArcGIS快速实现度分秒与度及其他格式的坐标转换。例如:度分秒→度 度分秒: 度: 二、工具介绍 转换坐标记法:将一个或两个字段包含的坐标记法从一…

uniapp项目怎么删除顶部导航栏

uniapp去掉顶部导航的方法&#xff1a; 1、去掉所有导航栏 "globalStyle": { "navigationBarTextStyle": "white", "navigationBarTitleText": "uni-app", "navigationBarBackgroundColor": "#007AFF"…

Digital Audio (HDMI)未插入 用Hdmi连接电脑 显示高清数字音频未插入 win10电脑没声音,喇叭上一个叉❌

先说结论&#xff0c;出现这些问题的原因&#xff1a; 未插入音频设备或者硬件问题&#xff08;10%&#xff09;设置错误&#xff0c;未使用显示器音频 &#xff08;30%&#xff09;音频驱动不兼容或者没有驱动&#xff08;50%&#xff09;其他驱动有问题 &#xff08;10%&…

OpenCV——多分辨率LBP的计算方法

目录 一、算法原理1、原理概述2、参考文献 二、代码实现三、结果展示 OpenCV——多分辨率LBP的计算方法由CSDN点云侠原创&#xff0c;爬虫自重。如果你不是在点云侠的博客中看到该文章&#xff0c;那么此处便是不要脸的爬虫。 一、算法原理 1、原理概述 基本LBP算子虽然在早期…

TensorFlow相关组件的安装

安装Anaconda3 安装Anaconda3的时候可以安装在任意磁盘中&#xff0c;在勾选path的时候全部勾选即可。更换Anaconda3的下载源为清华大学源&#xff0c;在此期间不要打开Anaconda3&#xff0c;在cmd中依次输入以下即可&#xff1a; conda config --add channels https://mirro…

Vue3 子传父 暴露数据 defineExpose

defineExpose 属性&#xff1a;用于将子组件中的数据和方法&#xff0c;暴露给父组件&#xff0c;父组件再配合 ref 属性使用。 语法格式 // 子组件&#xff1a;暴露数据和方法 defineExpose({ 数据, 数据, 方法 });// 父组件&#xff1a;使用数据和方法 ref名称.value.数据 …