Java方法的应用

Posted xianya

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java方法的应用相关的知识,希望对你有一定的参考价值。

一、方法的定义

     方法是类的组成部分,是解决一类问题的步骤的有序组合,包含于类或对象中,在程序中被创建,在其他地方被引用

方法的语法:

     修饰符 返回值类型 方法名(参数类型 参数名.....){ ... 方法体 ... return 返回值; }

根据方法是否带参、是否带返回值,可将方法分为四类:

  • 无参无返回值方法
  • 无参带返回值方法
  • 带参无返回值方法
  • 带参带返回值方法
package com.yyx.pratice;

public class JavaPratice {
    public static void main(String[] args) {
        noParamValue();
        String aStr = "有参数", bStr = "无返回值";
        noValue(aStr, bStr);
        System.out.println(noParam());
        System.out.println(ParamValue("有参数有返回值"));
    }

    public static void noParamValue() {
        System.out.println("无参数无返回值");
    }

    /**
     * 有参数无返回值
     * 
     * @param aStr
     * @param bStr
     */
    public static void noValue(String aStr, String bStr) {
        System.out.println(aStr + bStr);
    }

    /**
     * 无参数有返回值
     * 
     * @return
     */
    public static String noParam() {
        String str = "无参数有返回值";
        return str;
    }

    /**
     * 有参数,有返回值
     * 
     * @param str
     * @return
     */
    public static String ParamValue(String str) {
        return str;
    }
}

二、方法的重载

     方法重载的特点:

  •            同一个类中
  •            方法名必须相同
  •            方法的参数列表不同(参数的个数不同或者参数类型不同)
  •           方法的重载与方法的返回值类型没有关系  
package com.yyx.pratice;

public class JavaPratice {
    public static void main(String[] args) {
        int a = 1, b = 2, c = 3;
        double m = 2.1, n = 3.2;
        addNumber(a, b);
        addNumber(m, n);
        System.out.println(addNumber(a, b, c));
    }

    public static void addNumber(int a, int b) {
        System.out.println(a + b);
    }

    public static void addNumber(double a, double b) {
        System.out.println(a + b);
    }

    public static int addNumber(int a, int b, int c) {
        return a + b + c;
    }
}

三、方法的重写   

      在子类中可以根据需要对从基类继承来的方法进行重写

重写的规则:

  • 要求子类方法的“返回值类型 方法名 (参数列表)”与父类的方法一样
  • 子类方法的修饰符不能小于父类方法的修饰符
  • 若父类方法抛异常,那么子类方法抛的异常类型不能大于父类的。
  • 子父类的方法必须同为static或同为非static的
package com.yyx.pratice;

public class JavaPratice {
    public static void main(String[] args) {
        TestExtend testExtend = new TestExtend();
        testExtend.addNumber(5, 6);
        testExtend.printWord("测试重写方法");
    }
}

class TestInheritance {
    public void printWord(String str) {
        System.out.println(str);
    }
}

class TestExtend extends TestInheritance implements TestImplements {

    @Override
    public void printWord(String str) {
        System.out.println("子类重新加一句");
    }

    @Override
    public void addNumber(int m, int n) {
        System.out.println(m + n);
    }

}

interface TestImplements {
    void addNumber(int m, int n);
}

四、方法的参数

   1.形参和实参

      形参:方法声明时,方法小括号内的参数;实参:调用方法时,实际传入的参数的值

参数传递机制:

  • 形参是基本数据类型的:将实参的值传递给形参的基本数据类型的变量,即传递值
  • 形参是引用数据类型的:将实参的引用类型变量的值(对应的堆空间的对象实体的首地址值)传递给形参的引用类型变量,即传递地址
package com.yyx.pratice;

public class TestValue {
    public static void main(String argv[]) {
        TestValue t = new TestValue();
        t.first();
    }

    public void first() {
        int i = 5;
        Value v = new Value();
        v.i = 25;
        second(v, i);
        System.out.println(v.i);
    }

    public void second(Value v, int i) {
        i = 0;
        v.i = 20;
        Value val = new Value();
        v = val;
        System.out.println(v.i + " " + i);
    }
}

class Value {
    int i = 15;
}

技术分享图片

  2.可变参数

      可变个数的形参的方法:

  • 1.格式:对于方法的形参: 数据类型 ... 形参名
  • 2.可变个数的形参的方法与同名的方法之间构成重载
  • 3.可变个数的形参在调用时,个数从0开始,到无穷多个都可以
  • 4.使用可变多个形参的方法与方法的形参使用数组是一致的
  • 5.若方法中存在可变个数的形参,那么一定要声明在方法形参的最后
  • 6.在一个方法中,最多声明一个可变个数的形参
public class TestArgs {
    public static void main(String[] args) {
        TestArgs t = new TestArgs();
        // t.sayHello(new String[]{"hello China","hello BeiJing"});
        t.sayHello("hello China", "hello BeiJing");
        t.sayHello(5, "hello China", "hello BeiJing");
    }

    // 可变个数的形参的方法
    public void sayHello(String... args) {
        for (int i = 0; i < args.length; i++) {
            System.out.println(args[i] + "$");
        }
    }

    public void sayHello(int i, String... args) {
        System.out.println(i);

        for (int j = 0; j < args.length; j++) {
            System.out.println(args[j] + "$");
        }
    }

    /**
     * 使用可变多个形参的方法与方法的形参使用数组是一致的
     */
    // public void sayHello(String[] args) {
    // for (int i = 0; i < args.length; i++) {
    // System.out.println(args[i]);
    // }
    // }

}

 

以上是关于Java方法的应用的主要内容,如果未能解决你的问题,请参考以下文章

ASP.net MVC 代码片段问题中的 Jqgrid 实现

按要求编写Java应用程序。 创建一个叫做机动车的类: 属性:车牌号(String),车速(int),载重量(double) 功能:加速(车速自增)减速(车速自减)修改车牌号,查询车的载重量(代码片段

编写代码片段的更简洁的方法

Sleep() 方法后的代码片段没有被执行

22.java方法的定义

java.lang.NullPointerException:Android 尝试调用虚拟方法错误