当前位置: 首页 > news >正文

方法的调用

自定函数(方法)

函数(方法):

给定一个具有独立功能的代码片段进行"命名",并通过该该类名调用"方法"

main主函数 

在当前类中,可以直接调用方法(因为方法使用了static关键字)

package study;import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.UUID;public class Demo01 {// 自定函数(方法)// 函数(方法):给定一个具有独立功能的代码片段进行"命名",并通过该该类名调用"方法"public static void createorderNo() {// 生成一个订单编号// 订单编号格式规则:// 当前日期+流水号(5位随机数字+字母)// 例如:20240115AX32B// 当前日期:获取当前日期,并转换成字符串// 方式1:// toString():按照默认日期个数yyyy-MM-dd,转换成字符串// String orderNo = LocalDate.now().toString();// 方式2:// format()按照指定日期格式yyyy年MM月dd日,转换成字符串// String orderNo = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy年MM月dd日"));// format()按照指定日期格式yyyyMMdd,转换成字符串String orderNo = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));System.out.println(orderNo);// 流水号:String traceId = UUID.randomUUID().toString().substring(0,5).toUpperCase();System.out.println(traceId);// 订单编号=当前日期+流水号orderNo = orderNo + traceId;System.out.println("新订单编号:" + orderNo);}// main主函数public static void main(String[] args) {// 在当前类中,可以直接调用方法(因为方法使用了static关键字)createorderNo();}
}运行结果:
20240306
93F3C
新订单编号:2024030693F3C

 Demo02调用Demo01类的createorderNo(),需要通过"类名.方法名"调用

package study;public class Demo02 {public static void main(String[] args) {// 创建新订单编号// 调用Demo01类的createorderNo()// 需要通过"类名.方法名"调用Demo01.createorderNo();}
}运行结果:
20240306
C8560
新订单编号:20240306C8560

 定义方法语法结构

        访问修饰符[private/public] static 返回值类型 方法名称(参数){   }

[访问修饰符]: 代表该方法可以使用的范围

[static关键字]: 该方法通过类名调用(如果是在当前类类,可以直接调用,类名省略)

[返回值类型]:该方法调用后,产生并返回的结果类型(如果没有返回值,需要使用void)

[方法名称]: 按照该方法的作用,为方法命名

[方法参数]: 按照该方法的作用,为方法设计参数的个数和类型

方法的定义

查找3个int类型参数中的最大值

package study;public class Demo03 {// 方法的定义// 查找3个int类型参数中的最大值public static int max(int a,int b,int c) {int ret = a>b?(a>c?a:c):(b>c?b:c);return ret;}public static void main(String[] args) {// 方法的调用int val1 = max(23,11,45);System.out.println("结果1:"+val1);int val2 = max(21,17,5);System.out.println("结果2:"+val2);}
}运行结果:
结果1:45
结果2:21

动态查找

查找N个int类型整数中的最大值

package study;public class Demo04 {// 动态查找// 查找N个int类型整数中的最大值private static int maxN(int... ns) {int ret = ns[0];for(int i = 1;i < ns.length;i++) {if(ns[i] > ret) {ret = ns[i];}}return ret;}public static void main(String[] args) {// 可以传入N个整数int max = maxN(4,33,55,66,128,41);System.out.println(max);}
}运行结果:
128

两数之和参数

target : 需要查找的目标值参数

numbers : 需要查找的一组整数(动态参数)

注意: 动态参数必须是整个参数列表的最后1部分

package study;public class Demo05 {public static void main(String[] args) {String ret = twoSum(5,1,4,2,3,5,6,7,8,9);System.out.println(ret);}public static String twoSum(int target,int... numbers) {String result = "";outter:for(int i = 0;i <numbers.length-1;i++) {for(int k =i+1;k<numbers.length;k++) {if(numbers[i]+numbers[k] == target) {//1+4=5//result = numbers[i]+"+"+numbers[k]+"="+(numbers[i]+numbers[k]);//String.format():格式化拼接result = String.format("%d+%d=%d",numbers[i],numbers[k],numbers[i]+numbers[k]);//方式1//break outter;//方式2return result;}}}return result;}
}运行结果:
1+4=5

通过方法的调用逆序字符串 

package study;public class Demo06 {public static void main(String[] args) {//方法的调用String ret = reverse("忽如一夜春风来");System.out.println(ret);}//方法的定义//字符串逆序//参数s:原始字符串public static String reverse(String s) {String ret = "";
//		for(int i = 0;i <s.length();i++) {
//			char c = s.charAt(i);
//			ret = c+ret;
//		}for(int i = s.length()-1;i>=0;i--) {char c = s.charAt(i);ret = ret + c;}return ret;}
}运行结果:
来风春夜一如忽

通过循环计算整数的位数

package study;public class Demo07 {public static void main(String[] args) {int n1 = 12345;int len1 = numberLength(n1);System.out.println(n1+"的长度是"+len1+"位!");int n2 = 789456;int len2 = numberLength(n2);System.out.printf("%d的长度是%d位!",n2,len2);}public static int numberLength(int number) {//方式1:计算该整数以10为底的对数//int ret = (int)Math.log(number) + 1;//return ret;//方式2:通过循环int ret = 0;while(number != 0) {System.out.println("个位数值:" + number%10);ret++;number = number / 10;}return ret;}
}

运行结果: 

运行结果:
个位数值:5
个位数值:4
个位数值:3
个位数值:2
个位数值:1
12345的长度是5位!
个位数值:6
个位数值:5
个位数值:4
个位数值:9
个位数值:8
个位数值:7
789456的长度是6位!

方法的传参 

基本数据类型的参数:传递"值"
引用数据类型的参数:传递"内存地址"

package study;import java.util.Arrays;public class Demo09 {public static void main(String[] args) {//定义数组,保存一组"需要进行的扩容"的整数int[] array = {1,2,3,4,5};System.out.println("改变前:"+Arrays.toString(array));System.out.println("数组array的内存地址:" + array);//引用数据类型的传参//array传递的是"内存地址"grow2(array);System.out.println("改变后:"+Arrays.toString(array));}//引用数据类型的传参//参数numbers接收的是"内存地址"public static void grow2(int[] numbers) {System.out.println("数组numbers的内存地址:" + numbers);for(int i = 0;i < numbers.length;i++) {numbers[i] = numbers[i] << 1;}System.out.printf("改变中");for(int n : numbers) {System.out.println(n + "\t");}System.out.println();}
}

运行结果:

改变前:[1, 2, 3, 4, 5]
数组array的内存地址:[I@7de26db8
数组numbers的内存地址:[I@7de26db8
改变中2	
4	
6	
8	
10	改变后:[2, 4, 6, 8, 10]

通果冒泡排序和二分查找查找数组中的目标元素 

package study;import java.util.Arrays;public class Demo10 {public static void main(String[] args) {int[] arr = {4,3,1,23,12,8,17,7,5};
//		System.out.println("排序前:"+Arrays.toString(arr));
//		sort(arr);
//		System.out.println("排序后:"+Arrays.toString(arr));//查找int ret = binarySearch(arr,3);System.out.println("查找的目标值在数组的下标="+ret);}//冒泡排序public static void sort(int[] ns) {for(int i = 0,n = ns.length;i<n-1;i++) {boolean isSort = true;for(int k = 0;k < n-1-i;k++) {if(ns[k] > ns[k+1]) {ns[k] = ns[k] ^ ns[k+1];ns[k+1] = ns[k] ^ ns[k+1];ns[k] = ns[k] ^ ns[k+1];isSort = false;}}if(isSort) {break;}}}//查找(二分查找算法)//参数ns : 要查找的目标数组//参数target : 在目标数组中查找的目标值//返回值:返回目标值在目标数组中的下标,如果不存在,则返回-1public static int binarySearch(int[] ns,int target) {//先排序sort(ns);//在一个方法中调用另一个方法//再二分查找int low = 0,high = ns.length-1;while(low <= high) {int mid = (low + high) >> 1;if(ns[mid] == target) {return mid;}else if(ns[mid] < target) {low = mid+1;}else if(ns[mid] >target) {high = mid-1;}			}return -1;}
}

运行结果: 

查找的目标值在数组的下标=1

 数组旋转调用方法

package study;import java.util.Arrays;public class Demo11 {public static void main(String[] args) {int[] numbers = {1,2,3,4,5,6,7};System.out.println("原始数组"+Arrays.toString(numbers));right(numbers,3);System.out.println("向左旋转"+Arrays.toString(numbers));right(numbers,2);System.out.println("向右旋转"+Arrays.toString(numbers));}// 向右旋转:把尾元素,通过不断交换,移动到数组的"头部"public static void right(int[] ns,int n) {// 向右旋转几次for(int i = 1;i <= n;i++) {for(int k = ns.length-1;k >0;k--) {//每次向右旋转1位ns[k] = ns[k] ^ ns[k-1];ns[k-1] = ns[k] ^ ns[k-1];ns[k] = ns[k] ^ ns[k-1];}}}//向左旋转:把头元素,通过不断交换,移动到数组的"尾部"public static void left(int[] ns,int n) {for(int i = 1;i <= n;i++) {for(int k = 0;k < ns.length-1;k++) {ns[k] = ns[k] ^ ns[k+1];ns[k+1] = ns[k] ^ ns[k+1];ns[k] = ns[k] ^ ns[k+1];}}}
}

运行结果: 

原始数组[1, 2, 3, 4, 5, 6, 7]
向左旋转[5, 6, 7, 1, 2, 3, 4]
向右旋转[3, 4, 5, 6, 7, 1, 2]

使用数组,返回查找到的两个下标 

package study;import java.util.Arrays;public class Demo12 {public static void main(String[] args) {int[] retArr = twoSum(5,1,4,2,3,5,6,7,8,9);System.out.println(Arrays.toString(retArr));}//使用数组,返回查找到的两个下标public static int[] twoSum(int target,int... numbers) {int[] rets = {-1,-1};outter:for(int i = 0;i <numbers.length-1;i++) {for(int k =i+1;k<numbers.length;k++) {if(numbers[i]+numbers[k] == target) {rets[0] = i;rets[1] = k;break outter;}}}return rets;}
}

运行结果: 

[0, 1]

 

 

 

相关文章:

方法的调用

自定函数(方法) 函数(方法): 给定一个具有独立功能的代码片段进行"命名",并通过该该类名调用"方法" main主函数 在当前类中,可以直接调用方法(因为方法使用了static关键字) package study;import java.time.LocalDate; import java.time.format.Date…...

VGW在 Windows 平台上局域网就绪的旁路由器程序

在查阅本篇文章之前可以查看下&#xff0c;本人前两年写的关于VGW软件路由器的文章 Linux 平台上面单网卡 TUN/TAP实现局域网其它设备上网_linux 物理网卡与tun同网段-CSDN博客 VGW软件路由器是一个工作IEEE以太网&#xff08;L2&#xff09;链路层的路由器程序&#xff0c;它…...

能源大数据采集,为您提供专业数据采集服务

随着经济的不断发展&#xff0c;能源产业也逐渐成为国民经济的支柱产业之一。而对于能源行业来说&#xff0c;数据采集是一项至关重要的工作。以往&#xff0c;能源企业采集数据主要依靠人工收集、整理&#xff0c;但是这种方式不仅效率低下&#xff0c;而且容易出现数据不准确…...

01_Maven

文章目录 Maven安装MavenMaven的工作流程配置MavenMaven的使用module和project的关系如何用Maven导包 如何用Maven进行项目构建指令介绍clean指令compile指令package指令install指令 Maven的依赖管理如何导包scope作用域依赖传递依赖冲突 使用Maven开发项目Junit如何使用Junit …...

C语言题目练习

目录 前言 1、转置矩阵 1.1 题目 描述 输入描述&#xff1a; 输出描述&#xff1a; 1.2解题 分析&#xff1a; 程序&#xff1a; 2、KiKi判断上三角矩阵 2.1 题目 描述 输入描述&#xff1a; 输出描述&#xff1a; 2.2 解题 分析&#xff1a; 程序&#xff1a; 3、…...

物联网安全|TrustAsia助力PSWG应对全球物联网产品安全合规挑战

万物互联时代&#xff0c;随着物联网连接数快速增长&#xff0c;物联网设备的潜在网络安全隐患也日益增长&#xff0c;可能导致设备故障、数据被盗、篡改、隐私泄露等问题的发生&#xff0c;甚至成为网络攻击的跳板&#xff0c;对互联网基础设施构成严重威胁。 我们看到&#…...

基于单片机的医院输液系统设计

目 录 摘 要 Ⅰ Abstract Ⅱ 引 言 1 1系统方案设计与论证 3 1.1系统硬件结构总体设计方案 3 1.2点滴速度测量电路方案的选择与论证 3 1.3液面检测电路方案的选择与论证 4 1.4通过电机控制滴速电路的方案与论证 4 1.5显示器接口电路方案选择与论证 5 1.6键盘接口电路方案选择与…...

安卓简单登录

注意 有的朋友不知道登录咋写&#xff0c;这里我就简单给出相应代码&#xff0c;用的本地存储&#xff0c;没用网络请求&#xff0c;有需要可以替换成想要的&#xff0c;废话不多上代码 登录 import androidx.appcompat.app.AppCompatActivity;import android.content.Context…...

【计算机网络】DNS/ICMP协议/NAT技术

文章目录 一、DNS(Domain Name System)1.DNS背景2.域名3.浏览器中输入url后,发生的事情 二、ICMP协议1.什么是ICMP协议2.ICM功能3.ICMP的报文格式4.ping命令5.traceroute命令 三、NAT技术1.NAT技术背景2.NAT IP转换过程3.NAPT4.NAT技术的缺陷5.NAT和代理服务器 四、TCP/IP五层模…...

2403C++,C++20协程通道

原文 通道是一个可用来连接协程,实现不同协程间通信的并发安全队列. Test fun test know channel() runBlocking<Unit> {val channel Channel<Int>()//生产者val producer GlobalScope.launch {var i 0while (true) {delay(1000)channel.send(i)println("…...

C语言从入门到实战——预处理详解

预处理详解 前言一、预定义符号1.1 __FILE__1.2__LINE__1.3 __DATE__1.4__TIME__1.5__STDC__ 二、 #define定义常量三、 #define定义宏四、 带有副作用的宏参数五、 宏替换的规则六、宏函数的对比七、 #和##7.1 #运算符7.2 ##运算符 八、 命名约定九、 #undef十、命令行定义十一…...

【LabVIEW FPGA】CIC滤波器

一、CIC滤波器应用概述 在通信数字信号上下变频时&#xff0c;经常会用到对数字信号的升采样和降采样&#xff0c;即通过CIC数字速率器实现变采样率。 二、滤波器IP 首先设置滤波器基本参数&#xff08;filter specification&#xff09; 滤波器类型&#xff08;Filter Type…...

砝码称重 蓝桥杯

在C中&#xff0c;fabs()和abs()都用于计算数字的绝对值&#xff0c;但它们之间有一些区别。 fabs(double x)&#xff1a;计算浮点数x的绝对值&#xff0c;返回一个double类型的结果。 abs(int x)&#xff1a;计算整数x的绝对值&#xff0c;返回一个int类型的结果。 数组的默…...

AmzTrends x TiDB Serverless:通过云原生改造实现全局成本降低 80%

本文介绍了厦门笛卡尔数据&#xff08;AmzTrends&#xff09;在面临数据存储挑战时&#xff0c;选择将其数据分析服务迁移到 TiDB Serverless 的思路和实践。通过全托管的数据库服务&#xff0c;AmzTrends 实现了全局成本降低 80% 的效果&#xff0c;同时也充分展示了 TiDB Ser…...

[最佳实践] Windows上构建一个和Linux类似的Terminal

感谢大佬批评指正&#xff0c;现已更新 preview Target&#xff1a;致力打造最赏心悦目Window下的终端&#xff0c;同时能够很接近Linux的使用习惯 key word&#xff1a;windows终端美化 windows terminal windows powershell 类似Linux下的Window终端 Window也能用ll windows…...

租赁系统|手机租赁软件|租赁系统功能开发

当如今的生活用品越来越多、交流更加便捷时&#xff0c;人们的消费需求也变得越来越丰富。不可避免地&#xff0c;我们会遇到这样一种情况&#xff1a;需要新的手机&#xff0c;但资金有限。此时&#xff0c;手机租赁小程序呼之欲出。这种创意不仅使我们能够充分利用各类闲置物…...

【设计模式 04】建造者模式

如果要构建的对象很复杂&#xff0c;那么可以将整个构建过程拆分成多个步骤&#xff0c;并为每一个步骤定义一个抽象的接口。并添加一个指导者用来控制构建产品的顺序和步骤。 Java实现&#xff1a; // 产品类 class Product {private String part1;private String part2;pub…...

Python使用错误总结

【1】cannot import name ‘ParameterSource’ from ‘click.core’ 其根本原因在于是black模块&#xff0c;其模块版本可能过时&#xff0c;升级black模块版本即可&#xff1a; pip install black --upgrade【2】partially initialized module ‘charset_normalizer’ has n…...

【Java EE初阶三十】JVM的简单学习

1. JVM 内存区域划分 一个运行起来的 Java 进程&#xff0c;就是一个 JVM 虚拟机&#xff0c;需要从操作系统申请一大块内存&#xff0c;就会把这个内存&#xff0c;划分成不同的区域&#xff0c;每个区域都有不同的作用. JVM 申请了一大块内存之后,也会划分成不同的内…...

thinkphp5水平分割表partition,以及查询操作

前言 先交代下背景,在一个项目中,有一个数据表有水平分表的需求。当时想找到一种方法&#xff0c;把对数据库的操作&#xff0c;写到一个模型里&#xff0c;通过去换模型属性中的table来达到代码不变操作的数据表变化的效果。 我们都知道&#xff0c;模型要想关联数据表的话&a…...

从一道CTF赛题出发:手把手教你用火眼取证分析手机APP数据(附雷电模拟器实战)

从一道CTF赛题出发&#xff1a;手把手教你用火眼取证分析手机APP数据&#xff08;附雷电模拟器实战&#xff09; 在网络安全竞赛和电子数据取证领域&#xff0c;手机取证一直是技术含量高且实用性强的核心技能。本文将从一个真实的CTF赛题切入&#xff0c;带您完整走通手机镜像…...

基于MATLAB RVC与Simulink的ABB-IRB-1200运动学建模及轨迹规划实战

1. ABB-IRB-1200机械臂与MATLAB RVC工具箱初探 第一次接触ABB-IRB-1200这款机械臂时&#xff0c;我就被它精巧的设计所吸引。这款机械臂有两种型号&#xff0c;工作范围分别是700mm和900mm&#xff0c;最大有效负载分别为7kg和5kg。别看它体积小&#xff0c;在狭小空间内作业时…...

DownKyi:解决B站视频下载痛点的创新方案——从低效操作到高效管理的完整实践

DownKyi&#xff1a;解决B站视频下载痛点的创新方案——从低效操作到高效管理的完整实践 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频…...

Gin 框架中的规范响应格式设计与实现

为什么需要统一的响应格式&#xff1f;首先&#xff0c;让我们思考一个问题&#xff1a;为什么要统一API响应格式&#xff1f;前后端协作效率&#xff1a;一致的响应格式让前端开发者能以统一的方式处理服务端响应错误处理简化&#xff1a;标准化的错误码和消息便于统一处理各种…...

保姆级教程:用Project AirSim的Python脚本,5分钟复现无人机深度图避障Demo

5分钟实战&#xff1a;用Project AirSim实现无人机深度图避障全流程指南 刚接触无人机仿真的开发者常会遇到一个困境&#xff1a;想快速验证某个算法效果&#xff0c;却被复杂的配置和代码绊住脚步。本文将带你用Project AirSim提供的Python脚本&#xff0c;在5分钟内跑通完整的…...

3步实现Axure RP本地化界面优化:开源工具助力中文设计环境构建

3步实现Axure RP本地化界面优化&#xff1a;开源工具助力中文设计环境构建 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包&#xff0c;不定期更新。支持 Axure 9、Axure 10。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-c…...

AppleRa1n开源工具:iOS 15-16激活锁绕过完整解决方案

AppleRa1n开源工具&#xff1a;iOS 15-16激活锁绕过完整解决方案 【免费下载链接】applera1n icloud bypass for ios 15-16 项目地址: https://gitcode.com/gh_mirrors/ap/applera1n 激活锁&#xff08;Activation Lock&#xff09;作为iOS设备的重要安全机制&#xff0…...

Notion-Enhancer模块注册表:扩展发现、加载和管理的完整机制

Notion-Enhancer模块注册表&#xff1a;扩展发现、加载和管理的完整机制 【免费下载链接】notion-enhancer an enhancer/customiser for the all-in-one productivity workspace notion.so 项目地址: https://gitcode.com/gh_mirrors/no/notion-enhancer Notion-Enhance…...

如何快速创建专业图表:Mermaid数据可视化的完整指南

如何快速创建专业图表&#xff1a;Mermaid数据可视化的完整指南 【免费下载链接】mermaid mermaid-js/mermaid: 是一个用于生成图表和流程图的 Markdown 渲染器&#xff0c;支持多种图表类型和丰富的样式。适合对 Markdown、图表和流程图以及想要使用 Markdown 绘制图表和流程图…...

解决设计开发断层:Figma Code Connect的7个革新性实践

解决设计开发断层&#xff1a;Figma Code Connect的7个革新性实践 【免费下载链接】code-connect A tool for connecting your design system components in code with your design system in Figma 项目地址: https://gitcode.com/GitHub_Trending/co/code-connect 设计…...