06Java基础之方法
什么是方法
Java方法是语句的集合,他们在一起执行一个功能。
- 方法是解决一类问题的步骤的有序组合
- 方法包含于类或者对象中
- 方法在程序中被创建,在其他地方被吸引
设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只能完成一个功能,这样有利于我们后期的拓展。
方法的命名规则,采用的是小驼峰命名法,而且要见名知意。
方法的定义
- Java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,一般情况下,定义一个方法包含以下的语法:
- 方法包含一个方法头和方法体。下面是一个方法的所有部分:
- 修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
- 返回值类型:方法可能会返回值。returnValueType是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType是关键字void。
- 方法名:是方法的实际名称。方法名和参数表共同构成方法签名。
- 参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
- 形式参数:在方法被调用时用于接受外界输入的数据。
- 实参:调用方法时实际传给方法的数据。
- 方法体:方法体包含具体的语句,定义该方法的功能。
![]()
- 方法包含一个方法头和方法体。下面是一个方法的所有部分:
方法的调用
- 调用方法:对象名 方法名(实参列表)
- Java支持两种调用方法的方式,根据方法是否有返回值来选择。
- 当方法有返回值的时候,方法调用通常被当作一个值。例如:
int larger = max(30, 40);
- 如果方法返回值是void,方法调用一定是一条语句。
System.out.println("hello, world!");
方法的重载
- 重载就是在一个类中,有相同函数名称,但是形参不同的函数。
- 方法的重载规则:
- 方法名称必须相同。
- 参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等)
- 方法的返回类型可以相同也可以不同。
- 仅仅返回类型不同不足以成为方法的重载。
- 实现理论:
- 方法名称相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错。
命令行传参
- 有时候我们希望运行一个程序时在传递给它消息。这要靠传递命令行参数给main()函数实现。
public class CommandLine{
public static void main(String args[]){
for(int i = 0; i < args.length; i++){
System.out.println("args[ " + i +"]: "+ args[i]);
}
}
}
可变参数
- JDK1.5开始,Java支持传递同类型的可变参数给一个方法。
- 在方法声明中,在指定参数类型后加一个省略号(...)
- 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。
public class Demo02 {
public static void main(String[] args) {
printMax(15.2, 14.8, 42.55, 6.10, 83.14);
}
public static void printMax(double... numbers){
if(numbers.length == 0){
System.out.println("No argument paassed");
return;
}
double result = numbers[0];
//排序
for(int i = 1; i < numbers.length; i++){
if(numbers[i] > result){
result = numbers[i];
}
}
System.out.println("The max value is " + result);
}
}
递归
- A方法调用B方法,我们很容易理解。
- 递归就是:A方法调用A方法,就是我们自己调用我们自己。
- 利用递归,我们可以用简单的程序来解决一些复杂的问题。它通常把一个大型复杂的问题层层转化一个与原问题相似的规模较小的问题来求解,递归策略只需少量的代码就可以描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用优先的语句来定义对象的无限集合。
- 递归结构包括两个部分:
- 递归头: 什么时候不调用自身方法。如果没有头,将陷入死循环。
- 递归体: 什么时候需要调用自身方法。
案例:
public class Demo03 {
public static void main(String[] args) {
int t = factorial(5);
System.out.println(t);
}
// 求一个数的阶乘
public static int factorial(int n){
if (n == 1)
return 1;
return n * factorial(n-1);
}
}
注意:计算量小的时候可以选择递归,如果计算量大的话,非常不建议使用递归的方法,我们在这里只是学习递归的思想即可。
06Java基础之方法的更多相关文章
- C#基础之方法和参数
C#基础之方法和参数 接上一篇<C#基础之类型和成员基础以及常量.字段.属性> 实例方法.静态方法 C#中的方法分为两类,一种是属于对象(类型的实例)的,称之为实例方法,另一种是属于类型的 ...
- laravel获取当前的url以及当前的基础域名方法汇总
原文地址:https://phpartisan.cn/news/58.html 来源于:laravel获取当前的url以及当前的基础域名方法汇总 - Laravel学习网 laravel中我们常常需要 ...
- 千锋教育Vue组件--vue基础的方法
课程地址: https://ke.qq.com/course/251029#term_id=100295989 <!DOCTYPE html> <html> <head& ...
- SaltStack介绍——SaltStack是一种新的基础设施管理方法开发软件,简单易部署,可伸缩的足以管理成千上万的服务器,和足够快的速度控制,与他们交流
SaltStack介绍和架构解析 简介 SaltStack是一种新的基础设施管理方法开发软件,简单易部署,可伸缩的足以管理成千上万的服务器,和足够快的速度控制,与他们交流,以毫秒为单位.SaltSta ...
- [UWP开发]NavigationView基础使用方法
原文:[UWP开发]NavigationView基础使用方法 [UWP开发]NavigationView基础使用方法 NavigationView是秋季创意者更新(16299)引入的新控件,用于生成W ...
- Scrapy里Selectors 四种基础的方法
在Scrapy里面,Selectors 有四种基础的方法xpath():返回一系列的selectors,每一个select表示一个xpath参数表达式选择的节点css():返回一系列的selector ...
- java在acm中常用基础技巧方法
java在acm中常用基础技巧方法 如果学到了新的技巧,本博客会更新~ input input-std @Frosero import java.util.*; public class Main { ...
- 2019-1-29-Moq基础-判断方法被执行
title author date CreateTime categories Moq基础 判断方法被执行 lindexi 2019-01-29 16:29:57 +0800 2019-01-17 1 ...
- Quartz.Net的基础使用方法,多任务执行继续扩展
前一篇随笔讲了Quartz多任务的简单实现 Quartz.Net的基础使用方法,多任务执行 这一篇,来简单对前一篇进行一下简单的扩展 看了前一篇的代码会发现,每次新增一个任务还要去GetJobs方法里 ...
- Markdown基础使用方法
Markdown基础使用方法 标题的几种用法 * 选中标题(Ctrl+1~Crtl+6),分别为标题1-6.* #+空格+内容 为一级标题##+空格+内容为二级标题:以此类推. 字体快捷键及使用方法 ...
随机推荐
- CUDA:页锁定内存(pinned memory)和按页分配内存(pageable memory )
CUDA架构而言,主机端的内存分为两种,一种是可分页内存(pageable memroy), 一种是页锁定内存(page-lock或 pinned). 可分页内存是由操作系统API malloc()在 ...
- ASP.NET Core相关下载资源汇总
1.Net.6的Host Bundle的下载地址(IIS)服务配套组件: https://dotnet.microsoft.com/zh-cn/download/dotnet/6.0 2.docker ...
- k维背包
题目链接:E - Product Development (atcoder.jp) 因为最多为5,因此可以暴力枚举 int dp[10][10][10][10][10]; int a[110][10] ...
- PHP代码学习
在php传参过程中,如果服务器运行的Linux环境,可以加入命令的执行,比如参数名是a,命令可以是:a=ls,通过用:,&&,|| 来分割,还可以同时执行多个命令.在Windows环境 ...
- CKA考试笔记
题目一:etcd升级 1.从内置快照中备份数据 ETCDCTL_API=3 etcdctl --endpoints=https://master:2379 \ --cert=/etc/kubernet ...
- 测试人员在 Scrum 中的角色是什么?
测试人员在Scrum团队中到底担任什么样的角色?Scrum团队有测试角色吗?测试人员是Scrum团队的正式成员吗? 一.<Scrum指南>对测试的看法 很多人认为Scrum团队中的三个角色 ...
- 总决赛定档!“天翼云息壤杯”高校AI大赛巅峰之战即将打响!
近日,为梦想添翼,让AI发光--"天翼云息壤杯"高校AI大赛总决赛时间正式揭晓.总决赛将于2025年7月1日至7月17日在北京举办.届时,来自全国各地上百支成功晋级的优秀队伍和特邀 ...
- Java IO<4>Java io与装饰器模式
Java io与装饰器模式 装饰器模式 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构.这种类型的设计模式属于结构型模式,它是作为现有的类的一个包 ...
- 使用Spread控件构建Checkbook工程的技术指南
引言 在现代Web应用开发中,电子表格控件已成为处理财务数据.报表展示等场景的重要工具.葡萄城的Spread控件作为一款功能强大的ASP.NET表格组件,为开发者提供了丰富的API和灵活的定制能力.本 ...
- 【闲话 No.4】 wqs 二分
你呀你呀 很好听的派蒙歌,6.1 要备战期末没法放歌所以在 5 月底放了每日一歌,希望可以让大家开心一些,也希望派蒙生日快乐! 你呀你呀 快给我休息一下 长了颗痘又 掉了好几根头发 怎么不说话 是不是 ...
