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=15
        for (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. 参数列表都有哪些内容

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

web缓存之nginx缓存

一、nginx缓存知识 网络缓存位于客户端和 "源服务器 "之间&#xff0c;保存着所有可见内容的副本。当客户端请求缓存中存储的内容时&#xff0c;它可以直接从缓存中检索内容&#xff0c;而无需与服务器通信。这样&#xff0c;网络缓存就 "接近 "了客户端&a…

Tomcat-快速使用

关于Tomcat的概念及来由在Tomcat基本知识中进行了介绍&#xff0c;下面我们直接上手快速使用起来。 一、快速使用 &#xff08;1&#xff09;tomcat下载 &#xff08;2&#xff09;解压缩 &#xff08;3&#xff09;启动程序 &#xff08;4&#xff09;访问tomcat&#xff1a…

牛刀小试---二分查找(C语言)

题目&#xff1a;在给定的升序数组中查找指定的数字n&#xff0c;并输出其下标 代码举例&#xff1a; #include <stdio.h> int main() {int arr[] { 1,2,3,4,5,6,7,8,9,10 };//给定的升序数组int left 0;//定义左下标int right sizeof(arr) / sizeof(arr[0]) - 1;//…

JS 高频面试题

JS 的数据类型有哪些&#xff0c;有什么区别 基本数据类型&#xff08;Undefined、Null、Boolean、Number、String、Symbol&#xff09; 引用数据类型&#xff08;对象、数组和函数&#xff09; 区别&#xff1a; 原始数据类型直接存储在栈&#xff08;stack&#xff09;中的简…

Oracle 19c OCP 1z0 082考场真题解析第27题

考试科目&#xff1a;1Z0-082 考试题量&#xff1a;90 通过分数&#xff1a;60% 考试时间&#xff1a;150min本文为云贝教育郭一军&#xff08;微信&#xff1a;guoyJoe&#xff09;原创&#xff0c;请尊重知识产权&#xff0c;转发请注明出处&#xff0c;不接受任何抄袭、演绎…

前端开发Docker了解

1&#xff0c;docker简介 docker主要解决了最初软件开发环境配置的困难&#xff0c;完善了虚拟机部署的资源占用多&#xff0c;启动慢等缺点&#xff0c;保证了一致的运行环境&#xff0c;可以更轻松的维护和扩展。docker在linux容器的基础上进行了进一步的封装&#xff0c;提…

模板 BIEE(三)如何直接查看表示层列获取的sql语句

举例 想查看如下数据 SELECT 0 s_0, “Financials - AR Overview”.“Facts - AR Turnover”.“Days Sales Outstanding” s_1 FROM “Financials - AR Overview” web查看结果 日志内容如何查看请见《模板 BIEE&#xff08;二&#xff09;》 如下是不勾选高速缓存的结果&am…

研发日记,Matlab/Simulink避坑指南(一)——Data Store Memory模块执行时序Bug

文章目录 背景 问题 排查 解决 总结 背景 在一个嵌入式软件项目中&#xff0c;客户要求高度可控的时序流&#xff0c;我使用一个全局工步&#xff0c;对整个软件进行控制调度。由于子任务比较多&#xff0c;分门别类放在几个嵌套的子系统中&#xff0c;不能使用Goto模块引…

Python 面向对象之单例模式

【一】单例模式概念 单例模式是一种设计模式&#xff0c;其核心思想是确保一个类只有一个实例&#xff0c;并提供一个全局访问点。单例模式通常用于管理共享的资源&#xff0c;例如配置信息、数据库连接、线程池等。关键点在于如何判断这个类是否已经实例化 通过模块导入&…

机器人制作开源方案 | 乒乓球自动拾取机器人

作者&#xff1a;刘众森、王森、王绘东、崔岳震、宋维鑫 单位&#xff1a;山东农业工程学院 指导老师&#xff1a;潘莹月、廖希杰 1. 场景调研 我们小组选择项目的任务方向乒乓球的捡取与存放&#xff0c;针对此问题我们研发了一款乒乓球自动拾取机器人。众所周知&#xff0…

[算法与数据结构][c++]:Static关键字和全局变量

Static关键字和全局变量 1. 生命周期、作用域和初始化时机2. 全局变量3. Static 关键字3.1 面向过程3.1.1 静态全局变量3.1.2 静态局部变量&#xff08;单例中会使用&#xff09;3.1.3 静态函数 3.2 面向对象3.2.1 类内静态成员变量3.2.2 类内静态成员函数 Reference 写在前面&…

查看Linux磁盘空间

(1)、该命令会列出当前系统所有挂载的文件系统以及它们的使用情况&#xff0c;包括总容量、已用空间、可用空间、使用百分比等信息 df -h如果查看某一个文件夹的,可以 df -h folderName (2)、计算指定目录下所有文件和子目录所占用的磁盘空间大小&#xff0c;并以人类可读的格…

自动化创建ETX用户帐号

在芯片设计行业&#xff0c;ETX是常见的远程访问环境。用户在通过ETX访问远程环境前必须首先加入ETX系统&#xff0c;然后通过profile分配相关的环境的访问权限。 通常这些操作在ETX WEB页面手工操作&#xff0c;如果我们期望实现用户帐号注册全自动化&#xff0c;就需要将以上…

Deepin操作系统SSH开启与配置文件修改,结合内网穿透实现公网远程连接

文章目录 前言1. 开启SSH服务2. Deppin安装Cpolar3. 配置ssh公网地址4. 公网远程SSH连接5. 固定连接SSH公网地址6. SSH固定地址连接测试 前言 Deepin操作系统是一个基于Debian的Linux操作系统&#xff0c;专注于使用者对日常办公、学习、生活和娱乐的操作体验的极致&#xff0…

基于Vue组合式API的实用工具集

简介 今天,给大家分享一个很实用的工具库 VueUse,它是基于 Vue Composition Api,也就是组合式API。支持在Vue2和Vue3项目中进行使用,据说是目前世界上Star最高的同类型库之一。 图片 官方地址:https://vueuse.org/ 中文地址:https://www.vueusejs.com/ github:https…

SD-WAN对企业网络升级的价值

在当今数字化飞速发展的时代&#xff0c;企业对网络的依赖越来越深&#xff0c;如何在确保IT正常运行的同时降低成本成为企业CIO和业务经理共同关注的焦点。SD-WAN的出现为企业组网带来了崭新的可能性&#xff0c;成为降低开支、提高效率和改善用户体验的重要工具。 企业在数字…

代码随想录-刷题第五十三天

1143. 最长公共子序列 题目链接&#xff1a;1143. 最长公共子序列 思路&#xff1a;动态规划五步曲&#xff1a; dp[i][j]&#xff1a;长度为[0, i - 1]的字符串text1与长度为[0, j - 1]的字符串text2的最长公共子序列的长度为dp[i][j]。 递推公式&#xff1a; 主要是两种情…

Java学习,一文掌握Java之SpringBoot框架学习文集(6)

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

C语言可变参数输入

本博文源于笔者正在学习的可变参数输入&#xff0c;可变参数是c语言函数中的一部分&#xff0c;下面本文就以一个很小的demo演示可变参数的编写 问题来源 想要用可变参数进行多个整数相加 方法源码 #include<stdio.h> #include<stdlib.h> #include<stdarg.h…

10个提高 Python Web 开发效率的VS Code插件

VS Code具有灵活、便捷和丰富的可用插件库&#xff0c;是Web开发人员中非常受欢迎的代码编辑器。 本文介绍10个VS Code插件&#xff0c;它们可以提高你作为Web开发人员的工作效率。 1. Live Preview Live Preview插件支持在VS Code的小型浏览器中查看网站。因此&#xff0c;无…