方法

简介: 方法

一、方法的定义和调用


1、方法的定义


方法:完成某一特定功能(如:求和,统计数量等)的代码块

定义方法,语法格式:

[修饰符] 返回值类型 方法名称(参数类型 参数名1,参数类型 参数名2,…)
{
    方法体;
    [return 返回值;]
}


看看最熟悉的main方法的定义。


image.png

image.png


格式分析:


修饰符:public、static等,static修饰的方法直接使用类名调用即可,目前都使用static修饰

返回类型:限定返回值的类型,方法在完成一个功能后,是否需要给调用者返回一个结果?


如果需要给调用者返回结果,就写上返回数据的类型


如果不需要给调用者返回结果,此时使用关键字void,表示无返回

方法名称:用于调用方法,遵循标识符规范,使用动词表示,首字母小写,采用用驼峰表示法


形式参数:括号方法圆括号中的变量,可以有多个

方法体:方法的{}中的代码,编写如何完成该功能的代码

return关键字:在方法体中使用return关键字


  • 功能1:把值返回给该方法调用者,此时该方法不能使用void修饰
  • 功能2:结束当前方法
  • 注意:方法体没有return时,方法的返回类型声明为void,表示无返回。
    注意事项:
  • 方法必须定义在类中,在Java中最小的程序单元是类,必须先有类
  • 一个类中可以定义多个方法
  • 方法和方法是平行的,不能在方法中定义另一个方法
  • 方法的定义没有先后顺序


2、方法的调用


invoke:调用

方法调用格式:因为方法是static修饰的,可以直接用方法所在类的名称调用。

如果方法有返回类型,此时需要返回类型定义变量,接受方法返回的结果,并打印,这才有意义。

调用方法的地方,可以称之为调用者


二、方法的设计


1、方法设计


如何定义一个方法,主要是确定有没有参数,是什么参数,有没有返回,返回什么,这得结合具体需求来确定。


形式参数:完成一个功能,存在哪些未知的因素,把它们作为参数

返回类型:完成一个功能,要不要给调用者返回一个结果?

如果需要给调用者返回结果,就写上返回数据的类型

如果不需要给调用者返回结果,此时使用关键字void,表示无返回


2、方法可变参数


在方法中传递数组有一种更简单的方式——方法的可变参数,其本质是一个语法糖,目的是让开发者写代码更简单。


方法的可变参数其底层是就是一个一维数组类型


可变参数必须作为方法的最后一个参数,避免多个参数的歧义性


推论:方法最多只有一个可变参数


需求:定义一个方法,传入两个参数,一个double数组表示多个货品的价格,一个double类型的折扣,返回货品总价格(使用可变参数)

static double getTotalPrice(double cutOff, double... arr) {
    double total = 0;
    for (double ele : arr) {
        total = total + ele;
    }
    return total * cutOff;
}


调用方法:

public static void main(String[] args) {  
  double[] arr = new double[] { 10.0, 20.0, 30.0, 50.0, 30.0, 70.0, 90.0 };  
  double totalPrice = getTotalPrice(0.8, arr);   
 double totalPrice2 = getTotalPrice(0.8, 10.0, 20.0, 30.0, 50.0, 30.0, 70.0, 90.0);  
  System.out.println(totalPrice);}


3、方法重载


参数列表:参数的类型 + 参数的个数  + 参数的顺序


方法签名:方法名称  +  方法参数列表,在同一个类中,方法签名是唯一的,否则编译报错


方法的重载设计(Overload),表示在同一个类中,允许某方法存在一个以上的同名方法,只要它们的参数列表不同即可。


方法重载判断原则:“两同一不同”


两同:在同一个类中,方法名是相同的


一不同:方法参数列表不同(参数类型、参数个数、参数顺序)

只要参数类型、参数个数、参数顺序任意一个不同,就叫参数列表不同

方法重载的作用:屏蔽了同一功能的方法由于参数不同所造成方法名称不同。

注意:方法重载和方法的返回值类型无关,只是一般要求返回值类型相同。


三、方法参数的值传递机制


传递基本类型参数:传递参数值

传递引用类型参数:传递参数所引用的堆空间地址值



相关文章
|
6天前
|
敏捷开发 安全 Java
论软件维护方法及其应用
【11月更文挑战第16天】在软件开发的整个生命周期中,软件维护阶段占据了超过60%的时间。本文旨在深入探讨软件维护方法及其应用,通过笔者参与的一个实际Java项目为例,详细阐述软件维护的重要性、影响因素以及具体实践。
12 1
|
6月前
|
算法 数据安全/隐私保护
常用的有限元网格生成方法
本文介绍了三种常见的有限元网格生成方法:映射法、四(八)叉树法和Delaunay三角化法。映射法通过坐标变换将物理域映射到规则参数域,适合生成结构化和非结构化网格,但处理复杂区域时较困难。四(八)叉树法基于栅格,通过递归细分逼近边界,适用于非结构化网格,但内部和边界网格的相容剖分较复杂。Delaunay三角化法通过保证外接圆特性生成高质量网格,适用于凸区域,但在凹区域需进行边界恢复。前沿推进法则从边界开始逐步向内生成网格,边界质量好,但数据结构设计和推进规则制定有一定挑战。这些方法各有优缺点,常结合使用以优化网格剖分。
653 1
|
SQL 数据库
SqlCommand.ExecuteNonQuery 方法
SqlCommand的一个类,用于包含update、insert、delete、select的Transact-sql 语句中来修改数据库中的数据,并返回结果。
v-for的四种方法
v-for的四种使用方法分别是: 1.使用v-for循环一个简单的数组 2.使用v-for循环一个复杂的数组 3.使用v-for循环对象 4.v-for循环一个迭代的数字
|
存储 数据处理 数据库
结构化分析方法
1.概述 结构化方法是世界上第一个软件开发方法学,用来指导从需求分析、到设计开发各个阶段该怎么样做,采用什么样的方法,产出什么样的结果,从而保证整个软件开发周期可控。
162 0
|
Python 容器
强大的 accessor 方法
强大的 accessor 方法
|
数据安全/隐私保护
方法
方法就是函数:一个功能的包装,方法就是包装代码的壳子,为这片代码起一个名字,就可以通过名字调用。                        1.代码重复问题                        2.功能的封装                        3.团队的合作 main方法:程序入口方法,运行一个操作类的时候 第一找的就是main方法,public static void main(String[] args){} 。
734 0
Egiht(八种方法)
Problem Description The 15-puzzle has been around for over 100 years; even if you don't know it by that name, you've seen it.
1330 0
|
存储 算法 搜索推荐
常用的外部排序方法
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34173549/article/details/81158566 定义问题       外部排序指的是大文件的排序,即待排序的记录存储在外存储器上,待排序的文件无法一次装入内存,需要在内存和外部存储器之间进行多次数据交换,以达到排序整个文件的目的。
1830 0