A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 暮色醉玄阳 中级黑马   /  2014-10-20 22:41  /  985 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

方法(也称:函数)

方法的声明(分为五个部分)
    1.方法的修饰符(可以有多个,且顺序无关)
    2.方法的返回值类型
    3.方法名
    4.方法的参数列表
       如果方法有参数,一定要以正确的数量、类型、和顺序传递参数;可以将变量当作参数传入,但要类型相符
    5.方法允许抛出的例外(异常)

注: 编译器只能做语法上的检查,而不能进行逻辑上的检查。
     Java中不允许有废话,永远不会执行的语句不允许写。
    1. 声明格式:
       <modifiers><return_type><name>([argument_list>])[throws <exception>]{<block>}
       例如: public String getName(){return name;}
    2. 当没有返回值时,返回类型必须被定义为 void 。
    3. 构造方法没有返回类型。
    4. 返回类型必须与方法名相邻,其它修饰符号可以调换位置。


参数传递
    在java方法传参过程中简单类型是按值传递,对象类型是按引用传递。
    按值传递传递的是数据的副本。
        按引用传递 传递的是保存该数据的地址
      Java语言总是使用传值调用,这意味着方法得到的只是所有参数值的拷贝。
        因此,方法不能修改传递给它的任何参数变量的内容。
    对象类型的参数传递的也是该对象的引用值
    方法中并不能改变对象变量,但能通过该变量调用对象的方法或修改对象的成员。

    方法的参数基本上与局部变量相同,但你不需要直接初始化它
    编译器会确保方法调用时会有与声明相符的参数传进来,且参数会自动被赋值

形参 VS 实参:
    形参(形式参数): 相当于函数(Java中也把函数称之为方法)中的局部变量
         在函数被调用时创建,并以传入的实参作为起始值,函数调用结束时被释放
         不会影响主程序中其它的变量(即使有变量跟他们同名),因为他们是不同作用域的变量,互不干扰。
    实参: 调用函数时,实际传给函数形式参数的数据。


重载(Overload)
    在同一个类中,允许同时存在一个以上的同名函数,只要他们的参数列表不同即可。
    参数列表不同,可以是参数的类型或个数不同,也可以是不同类型参数的顺序不同。
    1、相同方法名,不同参数表。
    2、方法重载时,对于参数的匹配有个向上就近原则。(这样可以节省栈空间资源);
    3、为什么面向对象中要有方法重载?
       方法的重载使同一类方法由于参数造成的差异对于对象的使用者是透明的。
       对象的使用者只负责把参数交给对象,而具体怎么实现由对象内部决定。
    4、Java中的运算符重载
       java中唯一重载的运算符是String类型的“+”号,任何类型+String类型结果都为Stirng类型。
    5、注意点: 重载不仅出现在同一个类中,也可以出现在父子类中。
    重载的方法只是刚好有相同名字的不同方法


方法的覆盖 (Override) 重写
    继承之后,想改变由父类继承下来的方法。
    1. 同样的方法名、参数列表、返回类型(从Java 5 起,返回类型可以是子类型)
    2. 访问权限不能更小
    3. 异常不能更宽 (可以抛出更少或是更窄的检查异常,或者任何非检查异常)


重构 (extract Method)
    消除代码的重复,提高代码的可维护性。整理凌乱的代码,把可重用的代码块包装起来。
    常用重复的方法封装成工具类(工具类太多则做成工具箱),一般都是静态方法和常量,没有属性。
    在eclipse里,选中要重构的代码,右键Refactor-Extract Mathod 或(Shift+Alt+M)

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马