方法

作者: 邹小月 | 来源:发表于2017-09-16 20:08 被阅读10次

    方法用来实现类的行为。在JAVA中,方法定义在类中,它和类的成员属性一起构建一个完整的类。构成方法有四大要素。返回值、返回名称、参数、方法体。


    操作原理

    语法:

    修饰符 返回值 返回名(参数列表)
    {
    //方法体
    return 返回值
    }

    • 修饰符: 定义了该方法的访问类型
    • 返回值类型 制定方法返回的数据类型
    • 方法名 方法名的命名遵循JAVA标识符的规范,但通常以英文中的动词开头
    • 参数列表 参数列表是由类型、标识符组成的序列,每对之间用逗号分开。参数实际上是方法被调用时接收传递过来的参数变量值。
    • 方法体 方法体中存放的是封装在{}内部的逻辑语句,用于完成一定的功能。

    方法的使用

    我通过一段代码来表示:

    class Person {
    String name;
    int age;
    void talk() //定义talk()方法,用于输出Person对象的name和age属性
    {
    System.out.println("我是:"+name+",今年:"+age+"岁");
    }
    void setName(String name){ //用于输出Person对象的name属性
    this.name = name ;
    }
    void setAge(int age){ //用于输出Person对象的age属性
    this.age = age;
    }
    }
    public class PersonTest{
    public static void main(String[] args){
    Person p1 = new Person();
    p1.setName("zouzou");
    p1.setAge(22);
    p1.talk();
    }
    }

    输出结果

    方法中的形参和实参

    • 1、形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量。
    • 2、实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值。
    • 3、实参和形参在数量上,类型上、顺序上应严格一致,否则就会发生类型不匹配的错误。
    • 4、在一般传值调用的机制中只能把实参传送给形参,而不能把形参的值反向地传送给实参。因此在函数调用过程中,形参值发生改变,而实参中的值不会变化。而在引用调用的机制当中是将实参引用的地址传递给了形参,所以任何发生在形参上的改变实际上也发生在实参变量上。

    方法的重载

    重载和重写的区别
    (1)方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载Overloading是一个类中多态性的一种表现。
    (2) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具
    有不同的参数和不同的定义。调用方法时通过传递给它们的不同参数个数和参数类型
    来决定具体使用哪个方法, 这就是多态性。
    (3) 重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准。
    用一段代码示例:

    public class OverloadValueOf {

    public static void main(String[] args){
        byte num_byte = 12;
        short num_short = 34;
        int num_int = 12345;
        float num_float = 12.34f;
        boolean b_value = false;
        System.out.println("num_byte is" + String.valueOf(num_byte) );  //使用String类下的静态重载valueOf()方法,形参类型是byte型
        System.out.println("num_short is" + String.valueOf(num_short) );  
        System.out.println("num_int is" + String.valueOf(num_int) );
        System.out.println("num_float is" + String.valueOf(num_float) );
        System.out.println("b_value is" + String.valueOf(b_value) );
    }
    

    }


    运行结果

    自定义设计重载方法时,需注意以下几点:

    • 1、方法名称相同
    • 2、方法的参数列表相同(参数个数、参数类型、擦书顺序,至少要有一项是不同的)

    方法的重写:

    • (1)父类与子类之间的多态性,对父类的函数进行重新定义。如果在子类中定义某
      方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。
    • (2)若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,
      则新方法将覆盖原有的方法。如需父类中原有的方法,可使用super关键字,该关键 字引用了当前类的父类。
    • (3)子类函数的访问修饰权限不能少于父类的;

    构造方法

    在每一个类中定义的,并且是在使用关键在new实例化一个新对象的时候默认调用的方法。主要工作是对新创建的数据成员赋值。语法如下:

    class 类名称
    {
    访问权限 类名称(类型1 参数1,类型2 参数2...) //构造方法
    {
    程序语句;
    ...//构造方法没有返回值
    }
    }

    注意事项:

    • 1、构造方法的名称必须和其所属的类名称保持一致
    • 2、构造方法没有返回值,也不可以使用void
    • 3、构造方法也可以像普通方法一样被重载;
    • 4、构造方法不能被static和final修饰
    • 5、构造方法不能被继承,子类使用父类的构造方法要使用super关键字

    相关文章

      网友评论

        本文标题:方法

        本文链接:https://www.haomeiwen.com/subject/tjgysxtx.html