Java学习路线(6)——方法

news2024/10/5 16:22:37

概念: 方法是一种语法结构,可以将一段代码封装成一个功能,方便复用。

特点:

  • 提高代码复用性
  • 提高逻辑清晰性

一、基本方法定义和调用
1、有反有参方法
修饰符 返回类型 方法名( 形参列表 ){
方法体代码;
return 返回值;
}

	public static void main(String[] args) {
        System.out.println(sum(1, 3, 5, 8, 7));
    }
    public static int sum(int... array){ //int... 效果等于 int[] 数组声明,是一种新型的同类型数据形参声明类型,其形式等于 int a1,int a2,...,int an
        int sum = 0;
        for (int i : array) {
            sum += i;
        }
        return sum;
    }

2、有反无参方法
修饰符 返回类型 方法名(){
方法体代码;
return 返回值;
}

	public static void main(String[] args) {
        System.out.println(Arrays.toString(getVerityRandom()));
    }
    public static int[] getVerityRandom(){
        int[] verity = new int[6];
        for (int i = 0; i < 6; i++) {
            verity[i] = (int) (Math.random()*8+1);
        }
        return verity;
    }

3、无反有参方法
修饰符 void 方法名( 形参列表 ){
方法体代码;
}

	public static void main(String[] args) {
        printContent("这就是有参无反型方法");
    }
    public static void printContent(String printContent){
        System.out.println(printContent);
    }

4、无反无参方法
修饰符 void 方法名(){
方法体代码;
}

	public static void main(String[] args) {
        printContent();
    }
    public static void printContent(){
        System.out.println("这就是无反无参型方法");
    }

5、调用方法
格式: 方法名(参数列表)

方法常见问题

  • 方法的编写顺序无所谓(仅限Java)
  • 方法不能嵌套
  • 方法返回类型为void,则不需要return返回数据;若写明具体返回类型,则必须使用return返回响应数据类型数据
  • return是一个方法的程序终点
  • 方法不调用不执行,调用时严格按照参数列表顺序

方法案例
1、计算1~n的和。

	public static void main(String[] args) {
        printResult(20,2);
    }
    public static void printResult(int start,int end){
        int sum = 0;
        if (start > end){
            int temp = end;
            end = start;
            start = temp;
        }
        for (int i = start; i <= end; i++) {
            sum += i;
        }
        System.out.println(sum);
    }

2、判断奇偶并找出最值

	public static void main(String[] args) {
        printResult(1,7,5,9,8,3);
    }
    public static void printResult(int... array){
        int max = array[0];
        int min = array[0];
        for (int i : array) {
            System.out.println(i%2==0?"偶数="+i:"奇数="+i);
            max = Math.max(max, i);
            min = Math.min(min, i);
        }
        System.out.println("max="+max+",min="+min);
    }
奇数=1
奇数=7
奇数=5
奇数=9
偶数=8
奇数=3
max=9,min=1

三、方法内存图
方法在未被调用时存储在方法区中。
调用时进入栈内存中执行。
结束调用后方法将从栈内存弹出,由JVM进行垃圾回收清理内存。
在这里插入图片描述
四、方法参数传递机制
Java中最常用的传递方式是值传递,是指将一个实际参数的值赋值给形式参数,在方法改变形式参数值时,并不实际改变实际参数。
1、基本数据类型传递
方法在方法区加载完毕后,当我们依次调用方法时,首先执行main函数,main函数中有变量a的声明与初始化,所以开辟了一个空间,接着执行print方法,所以需要在方法区查找print方法,在占内存中开辟print方法空间,main方法中的实参a,将值赋值给print方法的形参content,print方法继续执行方法代码。
在这里插入图片描述

2、引用数据类型传递
引用数据类型传递的是内存地址值,与基本数据类型的传递是相同的,并通过内存地址获取内存单元存储的数据,再进行执行。

注意: 引用数据类型传递的是内存地址,也就是非形式参数值,所以当我们改变引用数据类型时,也会改变实际参数。

五、方法常见形式与技术
1、方法重载
概念: 同一个类出现多个名称相同参数列表不同(个数、类型、顺序的不同) 的方法,被称为方法重载
作用: 方法名相同表示同一类功能,根据参数列表的不同表示不同场景的调用。

2、单写return关键字
单独使用return关键字,可以立即跳出当前方法执行。

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

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

相关文章

printf串口重定向标准方法

一&#xff0c;简介 在程序调试的过程中&#xff0c;需要用到串口打印信息来判断单片机程序运行是否正确。需要使用串口对printf进行重定向&#xff0c;本文就介绍一下ARM官方推荐的一种重定向的方法&#xff0c;供参考使用。 二&#xff0c;具体步骤 主要分为两步&#xff…

leetcode 138.复制带随机指针的链表

题目链接&#xff1a;leetcode 138 1.题目 给你一个长度为 n 的链表&#xff0c;每个节点包含一个额外增加的随机指针 random &#xff0c;该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成&#xff0c;其中每个新节…

如何用Nginx实现对城市以及指定IP的访问限制?

1.前言 在【如何用Nginx代理MySQL连接&#xff0c;并限制可访问IP】一文中&#xff0c;我们实现了通过Nginx代理MySQL连接&#xff0c;并限制了指定IP才能通过Nginx进行连接&#xff0c;以提高数据安全性。 该场景适用于根据具体的IP地址来进行访问限制&#xff0c;假如我们要…

C++控制台打飞机小游戏

我终于决定还是把这个放出来。 视频在这&#xff1a;https://v.youku.com/v_show/id_XNDQxMTQwNDA3Mg.html 具体信息主界面上都有写。 按空格暂停&#xff0c;建议暂停后再升级属性。 记录最高分的文件进行了加密。 有boss&#xff08;上面视频2分47秒&#xff09;。 挺好…

LeetCode 不同路径1\2

不同路径1和2 题目在上面 这两个题目都是简单的动态规划问题 对不同路径最初始的问题举个例子 因为我们的机器人只能向右或者向下走一步 因此这个矩形的第一行和第一列都可以初始化为1 然后我们就可以得到动态规划的方程 f i , j f i − 1 , j f i , j − 1 f_{i,j} f_{i…

【C++模板】

目录 一、什么是泛型编程二、函数模板2.1函数模板概念2.2函数模板格式2.3函数模板的原理2.4函数模板的实例化 三、类模板3.1类模板的定义格式3.2类模板的成员函数的声明与定义分开的写法 一、什么是泛型编程 问题&#xff1a;如何实现一个加法函数呢&#xff1f;假设加法函数的…

LeetCode94. 二叉树的中序遍历(递归与非递归)

写在前面&#xff1a; 题目链接&#xff1a;添加链接描述 编程语言&#xff1a;c 题目难度&#xff1a;简单 一、题目描述 给定一个二叉树的根节点 root &#xff0c;返回 它的 中序 遍历 。 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,3,2] 示例 2&#xff1a;…

chatgpt赋能Python-python3_6怎么保存

Python3.6的保存方式简介 Python3.6是一种高级编程语言&#xff0c;由于其易读性和清晰性&#xff0c;成为了广泛使用的编程语言之一。Python3.6提供了丰富的特性和功能&#xff0c;使其成为了开发各种网站和Web应用程序的完美选择。在这篇文章中&#xff0c;我们将介绍Python…

8.2 综合案例2.0-远程遥控智能锁

综合案例2.0-远程遥控智能锁 案例说明1.硬件2.连线图3.dvr8833电机驱动使用说明 搭建云平台环境1.添加设备2.创建设备类型3.功能定义&#xff08;创建物模型&#xff09;4.ThingsX App 配置5.生成用户应用 App 代码1.更改MQTT信息2.测试 案例说明 生活中很多场景需要用到锁&am…

一、预约挂号微服务模块搭建

文章目录 一、预约挂号微服务模块搭建1、项目模块构建2、sql资源3、构建父工程&#xff08;yygh-parent&#xff09;3.1、添加配置pom.xml 4、搭建common父模块4.1、搭建common4.2、修改配置pom.xml 5、搭建common-util模块5.1、搭建common-util5.2、修改配置pom.xml5.3、添加公…

运筹优化求解迭代过程案例:图解法、单纯形法、单纯形表

运筹优化求解迭代过程案例:图解法、单纯形法、单纯形表 题目来自于清华大学出版的《运筹学》第四版。 一、问题描述 二、图解法 三、单纯形法 第一次迭代&#xff1a; 第二次迭代&#xff1a; 第三次迭代&#xff1a; 下面描述一下第三次迭代的详细过程&#xff1a; 从表达式…

【进阶】MySQL索引介绍

半个月没写mysql了&#xff0c;今天记录一下。。 了解到的索引有Btree&#xff0c;Hash表&#xff08;Memory存储引擎中&#xff09;&#xff0c;R-tree&#xff0c;Full-text等 MySql用的索引结构是Btree&#xff0c;B树所有节点都会出现在叶子节点中 目录 索引介绍&#…

容器目录挂载原理

前言 就我目前的对容器的了解, 使用namespace技术实现隔离, 使用cgroups技术实现资源限制. 但是具体是如何实现却从未深究过. 闲来无事, 挑其中的Mount Namespace来康康, 容器是如何实现目录隔离的. 目录隔离 在耗子叔的这篇文章中对此技术进行了介绍. 在c函数库中, 可通过…

Linux Audio (4) ASOC代码分析-基于kernel3.4.2

ASOC代码分析-基于kernel3.4.2 OverviewPlatformCPU DAICPU DMA CodecMechine Linux kernel版本&#xff1a;3.4.2 Overview linux ASoC音频设备驱动 ASoC是ALSA在SoC方面的发展和演变&#xff0c;它的本质仍然属于ALSA&#xff0c;但是在ALSA架构基础上对CPU相关的代码和Cod…

【python之django1.11框架一】django环境搭建及基本操作

1. 环境准备 开发环境&#xff1a;windows 11先安装好miniconda3。镜像地址&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/ 选择windows 64位下载。 下载地址&#xff1a; https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-lates…

JIRA的数据备份与恢复教程

目录 一、简介 二、数据备份&#xff08;默认系统会自动备份&#xff0c;不需要手动&#xff09; 1、使用管理员账号登录JIRA。 2、点击左上角的设置按钮&#xff0c;选择“系统”选项。 3、选择“备份系统”选项 4、开始手动备份 5、查看备份进度 三、数据恢复 1、使用…

MyBatisPlus入门案例

文章目录 1 入门案例步骤1:创建数据库及表步骤2:创建SpringBoot工程步骤3:勾选配置使用技术步骤4:pom.xml补全依赖步骤5:添加MP的相关配置信息步骤6:根据数据库表创建实体类步骤7:创建Dao接口步骤8:编写引导类步骤9:编写测试类 2 MybatisPlus简介 MyBatisPlus主要是对MyBatis的…

SQL注入 - Part 1

前置知识&#xff1a;sql前置的软件环境&#xff1a;预装了phpstudy_prodvwa&#xff0c;花了好长时间……时间主要浪费在听从chatgpt的建议装xampp上&#xff0c;卸载了mysql&#xff0c;重置了密码。其实使用xampp搭建环境也成功了&#xff0c;但是由于phpstudy教程比较多&am…

了解物理层下的传输媒体

1.了解物理层下的传输媒体 声明&#xff1a;该学习笔记来自湖科大教书匠&#xff0c;笔记仅做学习参考 笔记来源&#xff1a; 湖科大教书匠&#xff1a;物理层的基本概念 湖科大教书匠&#xff1a;物理层下面的传输媒体 1.1 物理层的基本概念 物理层考虑在连接各计算机的传输…

JQuery原理剖析——自己手写简易版JQuery

目录 为什么需要JQuery 在此之前回顾JavaScript对象知识&#xff1a; 自己手写的简易JQuery&#xff1a; 为什么需要JQuery 在我们之前写的JS代码中经常会遇见document.getElementById等等获取元素的对象&#xff0c;当大量的元素对象需要被获取时&#xff0c;就会有很多相似…