课时28:方法的定义

简介: 方法是编程中用于封装可重复调用代码的工具,类似于现实生活中的标准化操作流程。例如,补办身份证需要按步骤执行,而程序中的方法则可以像“关闭窗口”按钮一样被多次调用,简化代码维护。

课时28:方法的定义


在程序之中很多情况下是有可能需要重复执行一些代码的。举个简单的例子,假如你要补办身份证,需要先登记挂失,然后申请补办,最后交钱。如果把这些操作比喻成可以重复调用的代码,那么只要通过正规途径,任何人都可以按照这些代码完成补办。这些操作就是可以重复调用的代码。


比如说,在 Windows 界面中,每个窗口都有一个关闭按钮,如果每次都要单独编写关闭代码,维护起来会非常麻烦。因此, Windows把关闭操作定义成了一个特定的函数,这样大家就可以直接调用,而不用再自己编写代码。


在一些书中,方法( Method )和函数( Function )被认为是完全等价的概念,没有什么所谓的“到底什么是方法,什么是函数”的区别。需要注意的是,本次方法定义有一个前提:方法必须在主类中定义,并且由主方法直接调用。因为 Java 的语法限制较为严格。


方法的基本定义


我再次强调, Java 中的方法定义相对复杂。如果我现在直接把所有关键字都给你,你可能很难理解,所以不必急于求成,要逐步学习。首先需要理解的是,方法可以被重复调用。


本次的方法是定义在主类之中并且由主方法直接调用到的,所以方法定义的语法形式如下:

Public static 返回值类型 方法名称([参数类型 变量,—……]){
  //该方法要执行的代码
  [return[返回值];]
}

对于返回值而言就可以使用 Java 中定义的数据类型了(基本数据类型、引用数据类型),在方法之中可以进行返回数据的处理,如果要返回数据,则可以使用Return 来描述,Return 所返回的数据类型与方法的返回值类型相同,如果不返回数据,则该方法可以使用Void的进行声明。


关于方法名称与变量定义命名要求:

在进行方法名称定义的时候要求第一个单词的字母小写,而后每个单词的首字母大写;

在进行变量名称定义的时候要求第一个单词的字母小写,而后每个单词的首字母大写;


范例: 定义一个无参无返回值的方法

public class JavaDemo {
public static void main(string args[]) {
 printMessage();//执行方法调用
 printMessage();//执行方法调用
}
public static void printMessage(){//该方法包含了三行代码
  system.out.println(“********************”);
  system.out.println(“*  www.mldn.cn *”);
  system.out.println(“********************”);
}
}

计算结果:

image.png

方法的本质就是方便使用者进行重复的调用,并且所有的程序一定都是通过我们主方法开始执行的。

image.png

假设黑色方框代表一个方法,旁边是主方法,主方法中有逐行代码,这些代码按从上到下的顺序执行。如果要调用方法,调用完成后会返回并继续向下执行。简单来说,就是执行到方法调用时,跳转到方法内部执行,执行完毕后返回调用点,继续执行后续代码。这就是方法的正常执行流程。


因此,一定要记住,所有方法的执行都始于其调用处,程序从主方法开始,按顺序依次向下执行。这就是无参无返回值方法的特点。


范例:定义一个有参有返回值的方法

public class JavaDemo {
public static void main(string args[]) {
 system.out.println(get(20.0));
 system.out.println(get(1.0));
public static string get(double money){
 if(money>=10.0){
  return“给你带一份快餐,找零:”+(money-10.0);
  }else{
   Return“对不起,您的余额不足,请先充值,或者捡漏。”
}
}
}
public class JavaDemo {
public static void main(string args[]) {
 string result =get(20.0);
 system.out.println(result);
 system.out.println(get(1.0));//返回值可以直接输出
public static string get(double money){
 if(money>=10.0){
  return“给你带一份快餐,找零:”+(money-10.0);
  }else{
   Return“对不起,您的余额不足,请先充值,或者捡漏。”
}
}
}

计算结果:

image.png

对于方法本身而言,其意义非常简单,但你们可能会问:“老师,我该用什么来定义方法?”记住,设计方法的最简单过程是:在编写代码的过程中,如果发现某些代码片段不断被复制和粘贴,那么你应该考虑将其定义为一个方法,以便下次使用。


在进行方法定义的时候,如果方法的返回值类型为 Void ,那么可以利用Return来结束调用。我们在循环控制中使用两个语句: Break 和 Continue 。 Continue 的作用是结束当前循环的这一次迭代。实际上, Return 可以实现类似的效果。


范例:使用Return结束方法调用

public class JavaDemo {
public static void main(string args[]) {
 sale(3);
 sale(-3);
public static void sale(int money){
 if(money<=0){ //余额不足
  return;//后续代码不执行了
for(int x =0;x<miney;x++){
   system.out.println(”王健开笑,第“+x+”次”);
}
}
}

计算结果:

王健开笑,第1次

王健开笑,第1次

王健开笑,第1次


从定义的语法来讲方法并不是一个难以理解的概念,就是一段可以被重复调用的一一块代码而已。但是良好的方法设计是需要根据你实际的开发经验慢慢累积的,但是请千万记住一点:在 Java 定义方法的时候,一般都不可能太长。很少会看到一个方法有几百行代码,因此,我们通常不要把方法写得过于复杂,而应该在方法层面进行进一步的拆分。

相关文章
如何将Markdown文章轻松地搬运到微信公众号并完美地呈现代码内容
相信有很多童鞋跟我一样,热衷于用Markdown来编写文章。由于其简单的语法和清晰的渲染效果,受到广大码农朋友们的推崇。但是,当我们想维护起自己的公众号时,公众号编辑器往往让我们费劲了脑汁。本人尝试了各种工具,比如:秀米一些在线提供多种不同样式的编辑器。虽然这些编辑器都能够完成编辑任务,但是效果并不理想。与我们所追求的简洁、清晰风格总是格格不入,尤其是对于代码的展示非常的不友好。所以,这里给大家推荐一个本站的在线工具,可以帮助大家快速地把Markdown文章转换成微信公众号支持的漂亮格式。
706 0
如何将Markdown文章轻松地搬运到微信公众号并完美地呈现代码内容
|
机器学习/深度学习 数据采集 算法
大数据分析案例-基于随机森林模型对北京房价进行预测
大数据分析案例-基于随机森林模型对北京房价进行预测
1347 0
大数据分析案例-基于随机森林模型对北京房价进行预测
|
9月前
|
人工智能 数据可视化 Linux
插件发布新特性,让运动适配更简单。
AI运动识别插件已迭代至1.5.5版本,新增两大特性助力开发者轻松适配健身、体育等AI运动场景。一是相对位置检测,新增手部等肢体的相对位置判断,减少适配工作量;二是骨骼图绘制器偏移优化,解决全屏模式适配问题。我们致力于提供简洁、灵活的解决方案,支持AI体育、体测、AR互动等应用开发,后续还将推出UNI APP插件、私有化部署服务及可视化工具,助力全景式AI运动应用构建。
|
9月前
|
人工智能 Java 数据安全/隐私保护
[oeasy]python081_ai编程最佳实践_ai辅助编程_提出要求_解决问题
本文介绍了如何利用AI辅助编程解决实际问题,以猫屎咖啡的购买为例,逐步实现将购买斤数换算成人民币金额的功能。文章强调了与AI协作时的三个要点:1) 去除无关信息,聚焦目标;2) 将复杂任务拆解为小步骤,逐步完成;3) 巩固已有成果后再推进。最终代码实现了输入验证、单位转换和价格计算,并保留两位小数。总结指出,在AI时代,人类负责明确目标、拆分任务和确认结果,AI则负责生成代码、解释含义和提供优化建议,编程不会被取代,而是会更广泛地融入各领域。
288 29
|
9月前
|
人工智能 数据挖掘 物联网
智能穿戴设备市场竞争的内卷与突围
智能穿戴设备市场竞争的内卷与突围
244 19
|
9月前
|
人工智能 安全 搜索推荐
阿里云采购季:短信服务低至 0.01 元/条!
阿里云“上云采购季”,短信服务低至 0.01 元/条
363 3
|
9月前
|
JSON API 开发者
1688店铺所有商品API接口(1688API系列)
1688店铺所有商品API接口允许开发者通过输入店铺ID,获取指定店铺内的全部商品信息,包括名称、价格、库存、图片和销售数据等。该接口支持排序和分页参数,返回JSON格式数据,便于解析和应用。Python示例展示了如何使用requests库发送GET请求并处理响应,助力电商数据分析与业务拓展。
|
9月前
|
算法 测试技术
北大李戈团队提出新代码模型对齐方法 CodeDPO:显著提升代码准确性与执行效率
北京大学李戈团队提出CodeDPO,一种新型代码模型对齐方法,通过整合偏好学习提升代码生成的准确性和执行效率。该方法采用自我生成和验证机制,基于PageRank算法迭代优化代码片段排名,构建偏好优化数据集。CodeDPO在HumanEval基准测试中实现83.5%的通过率,显著优于现有方法,并能提高代码执行效率。其灵活性和可扩展性使其适用于多种编程任务,但训练资源需求较大,且依赖于生成测试用例的质量。论文链接:https://arxiv.org/pdf/2410.05605。
238 2
|
9月前
|
人工智能 人机交互
清华、面壁提出创新AI Agent交互:能主动思考、预测需求
清华大学与面壁智能团队提出了一种创新的AI Agent交互模式,将基于大型语言模型的智能体从被动响应转变为主动协助。通过数据驱动的方法,研究团队开发了能够预测和主动发起任务的智能体,并创建了ProactiveBench数据集。实验结果显示,经过微调的模型在主动性方面取得了66.47%的F1分数,展示了该方法在人机协作中的潜力。论文链接:https://arxiv.org/abs/2410.12361
372 2
|
缓存 关系型数据库 MySQL
面试题目总结
面试题目总结
344 6

热门文章

最新文章