黑马程序员_毕向东_Java基础_DAY03_函数_学习笔记

来源:互联网 发布:淘宝网上买仓鼠 编辑:程序博客网 时间:2024/05/30 13:41

----------- android培训、java培训、期待与您交流! ------------




/* 黑马程序员_毕向东_Java基础视频教程——

0312-函数(概述).avi
0313-函数(应用).avi
0314-函数(练习).avi
0315-函数(重载).avi
0316-函数(重载练习).avi

这是DAY03学习中的函数部分
 */

【函数】


什么是函数:


C或C++语言经常使用函数这个术语来描述命名子程序,而java中经常称其为方法。内部封装了一组有序指令,目的是做某些事情实现某些功能。


方法的调用是一种消息,方法调用中可以包含着一些参数,这些参数可能是方法的处理对象,也可能是方法运行过程中需要的一些即时变化的变量。当然也可能没有参数,仅仅是一个调用指令。调用方法的行为通常被称为发送消息给对象。

方法定义在类中,main方法称之为主方法,是一种被虚拟机区别对待的特殊方法。还有一种特殊的方法:构造器。

方法不可以嵌套定义,即方法中不能再包含方法,方法是直接隶属于类的。

为什么要使用方法:


理论上来说,将方法内部实现放置在方法调用处,即可完成同样功能。但功能的实现可能是复杂的,而此功能也可能在复数地方应用。这样程序中相同代码的重复使用会使程序中出现大量的冗余代码,

不利于开发与维护。通过将需要重复使用的代码段放置在方法内,在需要完成此功能的地方调用方法而不是重写代码,这样既节省了开发时间,降低了代码冗余,提高了代码的复用性,使得代码量大大降低,同时在功能的实现需要修改时,由于具体实现是封装在方法内部,处于黑盒状态,对外开放的只是功能接口,修改实现对程序的影响会大大降低。

简单说就是:
1.提高代码复用性
2.隐藏具体实现
3.易于修改实现


如何定义方法:


方法的定义格式:

标识符 返回值类型 方法名(参数列表){
各种语句;
}

定义方法是为了实现某种功能,在定义方法时首先明确实现此功能所要的运行结果,从而明确方法的返回值类型。
再明确在实现该功能的过程中,是否需要未知的内容参与。如没有,则参数列表为空,如有,将其添加在参数列表中。
在设计方法时,尽量将方法功能细化,即不要在一个方法中实现过多功能,这样不利于提高代码的复用性。

方法名+参数列表称为方法的签名,它唯一地标识出某个方法。同一个类中不可存在签名相同的方法。

【方法重载(Overload)】


在同一个类中,允许存在方法名相同而参数列表不同的方法。(方法名相同,方法签名不同)

方法名一定程度上反应了方法的功能,而同一组方法,功能类似,接受的参数却有所区别,这种情况下如果要求概念相同的一组方法只因为接受的参数不同就必须分别使用不同的名字,使用起来很是不便,这就是方法重载诞生的原因。

一个最典型的示例就是类的构造器,一个类可以有多个构造器,构造器的方法名规定必须与类名相同,同时他们的作用又都是创建对象(类的示例instance),区别在于根据接受参数的不同打造不同的实例,名称相同、功能相近,但传递的参数不同,这样就形成了重载。

当一组重载方法接受到的参数类型直接匹配时,调用直接匹配的方法。整型直接常量默认为int,浮点型直接常量默认为double。
当接受到的参数类型并没有直接匹配时,较小类型会自动向邻近的数据类型转换。而如果接受的参数类型比所有参数列表中对应的类型都大时,需要强制类型转换如果没有显式的进行强制类型转换,则编译时会报错。

如何区分重载方法:

方法名不同的方法为无关方法。
方法名相同而参数列表不同的方法即为重载方法(参数类型、参数个数、参数顺序不同都属于参数列表不同)。
方法名相同、参数列表也相同(即方法签名相同)的为相同的方法,是不允许出现在同一个类中的(即使访问权限或返回值不同)。




----------- android培训、java培训、期待与您交流! ------------