Day 6 : 方法

1. 方法

1.1. 方法(函数,过程)

各种语言都有方法的概念(有的语言称其为函数或过程),java中也一样。方法常常用于封装一段特定的逻辑功能,例如:执行计算或操作

方法可以在程序中反复被调用,这样,就可以减少代码的重复,更便于程序的维护。

1.2. 方法(函数、过程)

一个排序的功能,你也需要排,我也需要排,他也需要排,难道每次都要重新写吗?显然很麻烦,后期修改维护也很麻烦,每个地方都需要改,并且有大量的代码重复,有没有一种方式可以解决这个问题呢?那就是方法。

各种语言都有方法的概念(有的语言称其为函数或过程),其主要实现对一段特定逻辑功能的封装,如:执行计算或操作。若想要使用这段功能,只需调用一下即可。

方法可以在程序中反复被调用,这样可大大减少代码的重复,从而便于程序维护。

1.2.1. 定义方法(函数、过程)的功能

方法用于封装一个特定的功能,定义时需要考虑五个要素:修饰词、返回值类型、方法名、参数列表、方法体。通过下面的代码进行讲解:

public  static int  sum ( int  num1 , int  num2 ) {
           // 方法体
}

其中,public static为修饰词(后续课程详细介绍这两个关键字),int为返回值类型,sum为方法名(见名知义),int num1,int num2为参数列表。一对大括号{}中的为方法体(具体的业务功能实现)。

1.2.2. 定义参数和返回值

方法的参数是指:在调用时传递给方法,需要被方法处理的数据。方法可以有参数也可以没有参数,绝大部分方法为有参数的,因为方法有参数可使方法的处理更加灵活;在方法定义时,需要声明该方法所需要的参数变量(注意:声明该参数变量时需添加数据类型信息);

在方法调用时,会将实际的参数值(数据)传递给方法的参数变量,同时必须保证传递参数的类型和个数符合方法的声明(后面详细介绍)。如下为几个方法定义的实例:

void say() {   }       //无参方法
void say( string name ) {   }  //1个参数方法
int   sum ( int   num1 , int   num2 ) {   }      //2个参数方法

上面的示例主要演示的是方法的参数信息,下面看一下方法的返回值。方法调用结束后可以返回一个数据,称之为返回值。当然,方法调用结束后也可以不返回数据,但不管是返回数据也好不返回数据也好,java语法规定,方法在声明时必须指定返回值类型,可分如下的两种情况进行处理:

  • 若方法不需要返回数据,将返回值类型声明为void。
  • 若方法需要返回数据,将返回值类型声明为特定数据类型。

1.3. 方法的调用

1.3.1. return语句

在方法体中可通过return语句返回,return语句的作用在于结束方法且将数据返回给调用方。

若方法定义的返回值类型为非void,则方法体中必须使用return返回,并且return后的表达式类型必须与方法定义的返回类型匹配,如下代码所示。

return  num1 +num2 ; 

若方法定义的返回值类型为void,则方法体中可以不使用return返回,也可以使用return返回,若使用return ,则它的作用仅在于结束方法调用而返回调用方。

return;

1.3.2. 调用方法时的参数传递

下面将通过几个实例演示调用方法时如何传递参数:

示例一,定义方法:

public  static int  sum ( int  num1 , int num2 ) {  }

main方法中调用:

int result = sum(5,6);
int  a = 50, b = 60;
int  result = sum ( a , b );

示例二,定义方法:

public  static  void  sayHi(String name) {  }

main方法中调用:

sayHi(“wkj”);
sayHi(”zhangsan”);

分析如上代码,方法调用时,会将实际的参数值(5,6,“wkj”,”zhangsan”)传递给方法的参数变量(int num1,int num2,String name),同时必须保证传递参数的类型和个数符合方法的声明。若不匹配会出现编译错误。

下面通过一个实例详细讲解方法调用的过程,代码如下所示:

public static int max(int a, int b) { ……… }
public static void main(String[] args) {
int a = 5; int b=6;
int myMax = max(5,6);
}

上面的代码执行过程如下:

  1. 为main方法中的变量a、b、myMax分配空间并赋值。参见图 - 2 。

图- 2

  1. 调用方法max,为max方法的参数变量a,b分配空间。参见图 – 3。

图- 3

  1. 将调用值传递到参数变量中。参见图 – 4。

图- 4

  1. max方法运行完返回,参数变量空间释放。参见图 – 5。

图- 5

  1. main方法中的myMax变量得到返回值。参见图 – 6。

图- 6

时间: 2024-10-12 13:30:43

Day 6 : 方法的相关文章

Unity 崩溃问题解决方法——之一

友情提示:工作随记,不喜勿喷 注意:文艺青年可以略过,暴力青年欢迎采纳 Library文件夹 Unity每次编译都会生成这个东西,不用担心丢失的问题.所以,干掉他! 选中 + Delete   或者  选中 + Shift  + Delete 网上看了很多方法,就觉得这个简单,粗暴,是我喜欢的类型. 优点:上面说了 缺点:如果工程过大,重新编译时间会比较长.(但是对于查Log日志来说,相对快点)

Java TM 已被阻止,因为它已过时需要更新的解决方法

公司的堡垒机需要通过浏览器登陆,且该堡垒机的网站需要Java的支持,最近通过浏览器登陆之后总是提示"java TM 已被阻止,因为它已过时需要更新的解决方法"导致登陆之后不能操作, 但是操作系统中确实已经安装了比较新的JDK,安装的JDK版本是jdk-7u67-windows-i586,因为太烦人,所以决定搞清楚报错的原因,一劳永逸,彻底解决这个问题 准备工作:安装JDK,安装版本jdk-7u67-windows-i586.exe,因为机器的Eclipse还依赖64位的JDK,所以另安

win7 64位系统 PB连接oracle数据库出现“oracle library oci.dll could not be loaded”问题的解决方法

今天与大家分享一个自己的学习笔记,希望能给遇到同样问题的人带来帮助. 不知道大家在win7 64位系统下用 PB连接oracle数据库时,是否遇到过“oracle library oci.dll could not be loaded”问题. 今天,在win7 64位系统下用 PB连接oracle数据库时,一直出现上述错误,在百度上找了很久,都没有找到一个完整的解决方案,咨询了很多人,(他们都说是我的PB和oracle没装好,但我装的时候没出现任何问题,一切都很顺利,而且PB和oracle都能正

C#与数据库访问技术总结(八)之ExecuteNonQuery方法

ExecuteNonQuery方法 ExecuteNonQuery方法主要用来更新数据. 通常使用它来执行Update.Insert和Delete语句. 该方法返回值意义如下: 对于Update.Insert和Delete语句,返回值为该命令所影响的行数. 对于所有其他类型的语句,返回值为-1. Command对象通过ExecuteNonQuery方法更新数据库的过程非常简单,需要进行的步骤如下: (1)创建数据库连接. (2)创建Command对象,并指定一个SQL Insert.Update

android开发之onCreate( )方法详解

onCreate( )方法是android应用程序中最常见的方法之一,那么,我们在使用onCreate()方法的时候应该注意哪些问题呢? 先看看Google Android Developers官网上的解释: onCreate(Bundle) is where you initialize your activity. Most importantly, here you will usually call setContentView(int) with a layout resource d

MAC平台下Xcode配置使用OpenCV的具体方法 (2016最新)

1.序言: 1.1 背景 本人小白一枚,不过因为最近在从事机器视觉方面的工作,所以接触到OpenCV. 因为工作需求,本人要在MAC端使用OpenCV实现一些视觉功能,配置环境成了最大的阻碍,网上查了很多相关资料和博客,都因为版本环境问题屡试屡败,不过经历重重尝试,笔者最终还是配置成功并运行了自己的源码.当然成功的关键还是因为笔者站在了巨人的肩膀上,借鉴了很多网上的教程,为了不误导大家配置的过程,参考文章的地址统一放在文章里,望各位大大看见之后能够理解,废话不说进入正题. 1.2 环境说明 如果

正则化方法:L1和L2 regularization、数据集扩增、dropout

本文是<Neural networks and deep learning>概览 中第三章的一部分,讲机器学习/深度学习算法中常用的正则化方法.(本文会不断补充) 正则化方法:防止过拟合,提高泛化能力 在训练数据不够多时,或者overtraining时,常常会导致overfitting(过拟合).其直观的表现如下图所示,随着训练过程,网络在training data上的error渐渐减小,但是在验证集上的error却反而渐渐增大--因为训练出来的网络过拟合了训练集,对训练集外的数据却不work

mac上 go-delve 安装出现The specified item could not be found in the keychain 解决方法

安装go语言的编译环境,在安装到 delve时候出现如下错误: If reporting this issue please do so at (not Homebrew/brew or Homebrew/core): https://github.com/go-delve/homebrew-delve/issues These open issues may also help: Upgrade to delve fails https://github.com/go-delve/homebr

初识运维3--在虚拟机中安装Linux发行版系统(CentOS)的方法

在讲Linux系统发行版本的安装过程之前,先大略说明一下虚拟化. 虚拟化:将底层硬件资源抽象为用户更容易读懂和使用的逻辑抽象层的技术. 最早由IBM提出,现使用率较高的虚拟化软件平台有三类:VMware workstation.VirtualBOX.HyperV.在这里使用VMware workstation作为例子讲解说明安装过程. 虚拟化网络: 桥接模式:让物理机和虚拟机利用物理网络接口完成通信.虚拟机可以访问互联网. 仅主机模式:让虚拟机和物理机利用被虚拟出来的VMnet1网络接口完成通信

《个人-GIT使用方法》

本文章转载于:http://blog.csdn.net/gemmem/article/details/7290125 1. Git概念 1.1. Git库中由三部分组成 Git 仓库就是那个.git 目录,其中存放的是我们所提交的文档索引内容,Git 可基于文档索引内容对其所管理的文档进行内容追踪,从而实现文档的版本控制..git目录位于工作目录内. 1) 工作目录:用户本地的目录: 2) Index(索引):将工作目录下所有文件(包含子目录)生成快照,存放到一个临时的存储区域,Git 称该区域