以下是一个典型的定义一个方法的示例:

public double calculateAnswer(double wingSpan, int numberOfEngines,

double length, double grossTons) {

//do the calculation here

}

方法声明的唯一必需元素是方法的返回类型,名称,一对括号()和大括号{}之间的正文。

更一般地说,方法声明有六个组件,按顺序:

修饰语 - 比如公共,私有和其他你以后会学到的。

返回类型 - 方法返回的值的数据类型,如果方法不返回值,则返回void。

方法名称 - 字段名称的规则也适用于方法名称,但约定有所不同。比如,方法,更倾向于使用动词作为开头的单词。

括号中的参数列表(以逗号分隔的输入参数列表),前面是其数据类型,由括号()括起来。如果没有参数,则必须使用空括号。

一个例外列表 - 稍后讨论。

方法体,括在大括号之间 - 方法的代码,包括局部变量的声明,都在这里。

注意:

定义:方法声明的两个组件包括方法签名——(方法的名称和参数类型)

上述方法的签名是:

calculateAnswer(double, int, double, double)

命名

虽然方法名称可以是任何合法的标识符,但代码约定限制方法名称。按照惯例,方法名称应该是小写的动词或以小写开头的多字词名称,后跟形容词,名词等。在多字名称中,第二个和后面的每一个单词的第一个字母应该大写。这里有些例子:

run

runFast

getBackground

getFinalData

compareTo

setX

isEmpty

通常,方法在其类中具有唯一的名称。但是,由于方法重载,方法可能与其他方法具有相同的名称。

重载

Java编程语言支持重载方法,Java可以区分不同方法签名的方法。这意味着如果一个类中的方法具有不同的参数列表,那么类中的方法可以具有相同的名称(有一些资格将在题为“接口和继承”的课程中讨论)。

假设你有一个类可以使用书法绘制各种类型的数据(字符串,整数等等),并且包含绘制每个数据类型的方法。为每个方法使用一个新的名称是麻烦的,例如drawString,drawInteger,drawFloat等等。在Java编程语言中,您可以对所有绘图方法使用相同的名称,但会向每个方法传递不同的参数列表。因此,数据绘图类可能会声明四个名为draw的方法,每个方法具有不同的参数列表。

public class DataArtist {

...

public void draw(String s) {

...

}

public void draw(int i) {

...

}

public void draw(double f) {

...

}

public void draw(int i, double f) {

...

}

}

重载方法的区别在于传递给方法的参数的数量和类型。在代码示例中,draw(String s)和draw(int i)是不同的和唯一的方法,因为它们需要不同的参数类型。

您不能声明具有相同名称和相同数量和类型的参数的多个方法,因为编译器无法将它们分开。

当区分方法时,编译器不会考虑返回类型,因此即使有不同的返回类型,也不能声明具有相同签名的两个方法。

注意:重载的方法应该谨慎使用,因为它们可以使代码的可读性降低

java se5和8_javaSE_8系列博客——Java语言的特性(三)--类和对象(5)--定义方法...相关推荐

  1. c语言程序设计教程博客,C语言教程第三章: C语言程序设计初步

    if(表达式1) 语句1: else if(表达式2) 语句2: else if(表达式3) 语句3: - else if(表达式m) 语句m: else 语句n:其语义是:依次判断表达式的值,当出现 ...

  2. 大牛_博客Java方面链接总结

    大牛_博客Java方面链接总结找找差距 源码分析 The IoC container – Spring                     http://thinkinginjavablog.si ...

  3. java基于ssm的个人博客系统个人博客网站个人博客项目源码

    简介 Java ssm开发的个人博客系统,可以发布博客,照片,站长留言. 演示视频 https://www.bilibili.com/video/BV1sf4y1y7Ne/?share_source= ...

  4. JAVA计算机毕业设计抑郁症患者博客交流平台Mybatis+源码+数据库+lw文档+系统+调试部署

    JAVA计算机毕业设计抑郁症患者博客交流平台Mybatis+源码+数据库+lw文档+系统+调试部署 JAVA计算机毕业设计抑郁症患者博客交流平台Mybatis+源码+数据库+lw文档+系统+调试部署 ...

  5. JAVA计算机毕业设计大学生个人博客网站Mybatis+系统+数据库+调试部署

    JAVA计算机毕业设计大学生个人博客网站Mybatis+系统+数据库+调试部署 JAVA计算机毕业设计大学生个人博客网站Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B/S架构 开 ...

  6. Java网络聊天室---个人博客

    Java网络聊天室 ---个人博客 一.项目简介 功能描述: 使用图形用户界面和socket通信,能实现一个聊天室中多人聊天,可以两人私聊,可以发送文件. 实现类似QQ用户注册.登录.聊天等功能. 参 ...

  7. java毕业设计基于网络平台个人博客系统Mybatis+系统+数据库+调试部署

    java毕业设计基于网络平台个人博客系统Mybatis+系统+数据库+调试部署 java毕业设计基于网络平台个人博客系统Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B/S架构 开 ...

  8. java毕业生设计抑郁症患者博客交流平台计算机源码+系统+mysql+调试部署+lw

    java毕业生设计抑郁症患者博客交流平台计算机源码+系统+mysql+调试部署+lw java毕业生设计抑郁症患者博客交流平台计算机源码+系统+mysql+调试部署+lw 本源码技术栈: 项目架构:B ...

  9. JAVA相关的深度技术博客链接

    JAVA相关的深度技术博客链接 深入聊聊Java 垃圾回收机制[附原理图及调优方法] 说说Java 多线程之悲观锁与乐观锁 深入JAVA 的JVM核心原理解决线上各种故障[附案例] 谈谈你对volat ...

最新文章

  1. 2022-2028年中国氧化铟锡薄膜行业市场深度分析及前瞻研究报告
  2. mysql处理上百万条的数据库如何优化语句来提高处理查询效率
  3. 关联规则概念、啤酒加尿布引出购物篮分析、频繁项集、支持度+置信度+提升度
  4. SpringBoot 自动配置
  5. LeetCode-73. Set Matrix Zeroes
  6. Tensorflow学习笔记:多项式拟合
  7. 物联卡的使用_物联卡在手机上使用有什么影响?网友:寿命分别是3个月,16天,9天...
  8. jpg无损压缩 java_使用FreeImage对JPEG进行无损优化
  9. 【ES】ES检索的时候特殊字符该怎么处理
  10. OL6.5操作系统安装Mysql5.6
  11. 点击链接元素出现蓝色边框或者出现半透明蓝色背景
  12. java中spilt()方法解释
  13. 三星A5显示服务器未响应,三星A5手机死机了 屏幕一直亮着 按什么键都没反应==求解答...
  14. d盘格式化了能正常使用吗
  15. 经常打电话的人用什么耳机好?通话质量好的蓝牙耳机推荐
  16. linux环境下解压rar文件
  17. 文件及文件夹 压缩 下载
  18. php实现二级下拉菜单,jquery,_用jquery实现二级下拉菜单,jquery - phpStudy
  19. 支持m3u8的php视频cms,赤兔CMS后台添加M3U8播放器
  20. 《深入理解Windows操作系统》笔记4

热门文章

  1. 深入解读:获Forrester大数据能力高评价的阿里云DataWorks思路与能力
  2. HTTPS 协议到底比 HTTP 协议多些什么?
  3. 可信云十年,重磅研究成果与2021云计算十大关键词悉数发布
  4. 这 10 行比较字符串相等的代码给我整懵了,不信你也来看看
  5. 鸿蒙关键技术研究,鸿蒙内核源码分析(静态链接篇) | 完整小项目看透静态链接过程 | 百篇博客分析HarmonyOS源码 | v54.02...
  6. brew安装指定版本mysql,Mac 系统为 Valet 开发环境安装指定版本 MySQL
  7. flowable 表名sql mysql和oracle
  8. Springboot/Cloud集成Sentinel 和 入门实战
  9. pom.xml中添加阿里云Maven中央仓库配置
  10. flowable 实现多实例-会签-动态配置人员 参考demo