java基础Day6 java方法

news/2025/1/23 11:56:01/文章来源:https://www.cnblogs.com/tse121/p/18687477

一、什么是方法?

System.out.println()//System是一个类,out是一个对象,println()就是一个方法

方法是语句的集合

命名规则:首字母小写+驼峰命名规则

Ex. 加法

Demo01

//加法public int add(int a, int b) {return a + b;}

此时在main方法里直接调用不了,改为:

public class Demo01 {//main方法public static void main(String[] args) {int sum = add(1, 2);System.out.println(sum);}//加法public static int add(int a, int b) {return a + b;}
}

设计方法的原则:一个方法只完成一个功能(原子性)

二、方法的定义

修饰符 返回值类型 方法名(参数类型 参数名){...方法体...return 返回值;//return还用来终止方法
}

方法名中的参数是形参,用来定义,等同于占位符

三、方法的调用

对象名.方法名(实参列表)

java都是值传递

四、方法的重载

Demo01

重载就是在一个类中,有相同的函数名称,但形参不同的函数

public class Demo01 {public static void main(String[] args) {int sum1 = add(1, 2);System.out.println(sum1);double sum2 = add(1.1, 2.2);System.out.println(sum2);}public static int add(int a, int b) {return a + b;}public static double add(double a, double b) {return a + b;}public static int add(int a, int b, int c) {}...
}

方法的重载的规则:

  • 方法名称必须相同;
  • 参数列表必须不同(个数不同、类型不同或参数排列顺序不同等);
  • 方法的返回类型可以相同也可以不相同;
  • 仅仅返回类型不同不足以成为方法的重载。

实现理论:方法名称相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法;如果匹配失败,则编译器报错。

五、命令行传递参数

CommandLine

在cmd中
C:\Users\xieyueting\Desktop\javaSE\code\JavaSE\Method\src>javac -encoding UTF-8 CommandLine.javaC:\Users\xieyueting\Desktop\javaSE\code\JavaSE\Method\src>java CommandLineC:\Users\xieyueting\Desktop\javaSE\code\JavaSE\Method\src>java CommandLine this is
args[0]: this
args[1]: is

六、可变参数

也可以叫作不定项参数

在方法声明中,在指定参数类型后加一个省略号(...)

一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。

public class Demo03 {public static void main(String[] args) {Demo03 demo03 = new Demo03();demo03.test(1,2,3,4,5);}public void test(int x,int... i){System.out.println(i[0]);//输出2}
}

Ex. 排序

Demo03

public class Demo03 {public static void main(String[] args) {printMax(5.2,4,9,6.3,12.2,7.0);printMax(new double[]{1,2,3});}//排序public static void printMax(double... numbers){if(numbers.length == 0){System.out.println("No argument passed!");return;}double result = numbers[0];for(int i = 1; i < numbers.length; i++){if(result < numbers[i]){result = numbers[i];}}System.out.println(result);}}

七、递归

方法自己调用自己

递归结构包含两个部分:

  • 递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。

  • 递归体:什么时候需要调用自身方法。

Demo04

public class Demo04 {public static void main(String[] args) {Demo04 test = new Demo04();test.test();}public void test(){test();}
}
/*会报错死循环:
Exception in thread "main" java.lang.StackOverflowError*/

Ex. 阶乘

Demo05

public class Demo05 {public static void main(String[] args) {int result1 = f(1);int result2 = f(2);int result3 = f(5);System.out.println(result1);System.out.println(result2);System.out.println(result3);}public static int f(int n) {if(n==1){return 1;}else {return n*f(n-1);}}
}

java都是使用栈机制

能不用递归就不用递归,占大量空间内存

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

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

相关文章

查询语句-更新语句

描述查询语句->更新语句的过程:步骤0:编写查询的sql 步骤1:将 “SELECT * FROM” 修改为 “UPDATE” 步骤2:在 “WHERE” 之前新增SET关键字

2025年Rust权威指南、Rust程序设计语言中文版PDF下载

本书英文名为《The Rust Programming Language》,中文版名为《Rust权威指南》,社区翻译版名为《Rust程序设计语言》。 本书由 Rust 核心开发团队编写而成,由浅入深地探讨了 Rust 语言的方方面面。Rust程序员必读入门书籍。2025年《Rust权威指南》、《Rust程序设计语言》中文…

NocoBase 本周更新汇总:改进文件存储扩展

本周更新包括:改进文件存储扩展、缺陷修复等。汇总一周产品更新日志,最新发布可以前往我们的博客查看。 NocoBase 目前更新包括的版本更新包括三个分支:main ,next和 develop。main :截止目前最稳定的版本,推荐安装此版本。 next:包含即将发布的新功能,经过初步测试的版…

102400118 林嘉祚 集训第一专题

AC截图1、Long Loong 本题易知字符串开头为L,结尾为ng,唯一不同的是中间o的个数,于是想到用3个字符串拼接得到目标字符串。(直接用for循环输出似乎更简单) #include <iostream> #include <string> using namespace std;int main() {int n;cin >> n;string…

【Java开发】magic-api:一个Java接口快速开发框架

今天给小伙伴们介绍一个Java接口快速开发框架-magic-api 简介 magic-api 是一个基于 Java 的接口快速开发框架,编写接口将通过 magic-api 提供的 UI 界面完成,自动映射为 HTTP 接口,无需定义 Controller、Service、Dao、Mapper、XML、VO 等 Java 对象即可完成常见的 HTTP AP…

联想 ThinkPad 笔记本T14 CPU 降频解决方案

原因: 在工作中,打开多个 IDE 的情况下,会出现卡顿问题,发现是由于 CPU 降频到 0.5GHz 导致的。 环境: 笔记本是联想 ThinkPad T14 CPU:12th Gen Interl Core i7-1260P 系统为 Window10 专业版解决办法 经过搜索后,适合的方案如下:打开电源的卓越性能模式 在 Windows Po…

ASP.NET Core 中基于 Cookie 的身份鉴权实现步骤

在 ASP.NET Core 应用中,基于 Cookie 的身份鉴权是一种常见的身份验证方式,特别适用于传统的 Web 应用程序。Cookie 能够在用户的浏览器中存储身份验证数据,从而在用户访问应用的不同页面时保持登录状态。 一、配置 Cookie 身份验证 首先,在 Startup.cs 或 Program.cs 文件…

16 个 JavaScript 简写神技,提效 60%!

今天看到一片文章觉得很适合在工作中常常用得到 1. 三元运算符简化条件判断 // 传统写法 let result; if (someCondition) {result = yes; } else {result = no; }// 简写方式 const result = someCondition ? yes : no;2. 空值合并运算符 // 传统写法 const name = user.name…

.NET开源强大的高级日期和时间库

NodaTime 是一个为 .NET 设计的开源高级日期和时间库,提供了比 .NET 框架自带的 DateTime 和 DateTimeOffset 更加丰富和可靠的日期时间操作功能。 1. 安装 NodaTime 首先,通过 NuGet 安装 NodaTime 包: Install-Package NodaTime2. 基本概念 NodaTime 提供了多种日期和时间…

Python运行找不到tcl

运行程序提示如下: 说明D:/python/lib/tcl8.6找不到tcl8.6 解决办法:将D:\python\tcl下的tcl8.6和tk8.6两个文件夹复制到D:/python/lib/下问题得到解决

cad的打印到pdf 页边距处理

修改为微软的打印机, microsoft print to pdf后可以正常打印 但是测试过程中看到微软这个打印无法打印a2图纸 查询后是a2图纸不在默认的微软打印的列表中 按照网上的教程做了增加https://zhidao.baidu.com/question/988163076953180379.html我看图纸比例是按照1.8倍数来的, 按…