JavaSE从入门到放弃.方法


JavaSE从入门到放弃.方法

方法

方法是一种语法结构,它可以把一段代码封装成一个功能,以便重复调用。

public class MethodDemo {
    public static void main(String[] args) {
        int rs = sum(10, 20);
        System.out.println("和是:" + rs);

        int rs2 = sum(30, 20);
        System.out.println("和是:" + rs2);
    }

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

定义方法的注意事项

  1. 方法的修饰符:暂时都使用public static 修饰。
  2. 方法申明了具体的返回值类型,内部必须使用return返回对应类型的数据。
  3. 形参列表可以有多个,甚至可以没有;如果有多个形参,多个形参必须用“,”隔开,且不能给初始化值。

使用方法的好处

  1. 提高了代码的复用性,提高了开发效率。
  2. 让程序的逻辑更清晰。

方法的其他形式

设计一个合理的方法的原则如下:

  • 如果方法不需要返回数据,返回值类型必须申明成void(无返回值申明), 此时方法内部不可以使用return返回数据。
  • 方法如果不需要接收外部传递进来的数据,则不需要定义形参,且调用方法时也不可以传数据给方法。
  • 没有参数,且没有返回值类型(void)的方法,称为值无参数、无返回值方法。此时调用方法时不能传递数据给方法。

方法使用常见问题

  1. 方法在内种没有先后顺序,但是不能把一个方法定义在另一个方法中。
  2. 方法的返回值类型写void(无返回申明)时,方法内不能使用return返回数据,如果方法的返回值类型写了具体类型,方法内部则必须使用return返回对应类型的数据。
  3. return语句的下面,不能编写代码,属于无效的代码,执行不到这儿。
  4. 方法不调用就不会执行,调用方法时,传给方法的数据,必须严格匹配方法的参数情况。
  5. 调用有返回值的方法,有3种方式:

    1. 可以定义变量接收结果
    2. 或者直接输出调用
    3. 甚至直接调用
  6. 调用无返回值的方法,只有1种方式: 只能直接调用。

方法在计算机中的执行原理

我们知道Java程序的运行,都是在内存中执行的,而内存区域又分为栈、堆和方法区。那Java的方法是在哪个内存区域中执行呢?

答案是栈内存。 每次调用方法,方法都会进栈执行;执行完后,又会弹栈出去。

假设在main方法中依次调用A方法、B方法、C方法,在内存中的执行流程如下:

  • 每次调用方法,方法都会从栈顶压栈执行没执行
  • 每个方法执行完后,会从栈顶弹栈出去

方法参数的传递机制

Java的参数传递机制都是:值传递

所谓值传递:指的是在传递实参给方法的形参的时候,传递的是实参变量中存储的值的副本。

参数传递的基本类型数据

Java的参数传递机制都是:值传递,传递的是实参存储的值的副本。

基本类型和引用类型的参数在传递的时候有什么不同?

  • 都是值传递
  • 基本类型的参数传递存储的数据值
  • 引用类型的参数传递存储的地址值

方法重载

所谓方法重载指的是:一个类中,出现多个相同的方法名,但是它们的形参列表是不同的,那么这些方法就称为方法重载了。

public class MethodOverLoadDemo {
    public static void main(String[] args) {
        test();
        test(100);
    }

    public static void test() {
        System.out.println("===test1===");
    }

    public static void test(int a) {
        System.out.println("===test2===" + a);
    }

    void test(double a) {

    }

    void test(double a, int b) {
    }

    void test(int b, double a) {
    }

    int test(int a, int b) {
        return a + b;
    }
}

return单独使用

在方法中单独使用return语句,可以用来提前结束方法的执行。

public class Test {
    public static void main(String[] args) {
        System.out.println("开始");
        chu(10, 0);
        System.out.println("结束");
    }

    public static void chu(int a, int b) {
        if (b == 0) {
            System.err.println("参数异常");
            return; // 直接跳出并结束当前chu方法的执行
        }
        int c = a / b;
        System.out.println("除法结果是:" + c);
    }
}

声明:Rock 版权所有,内容均为原创,欢迎转载。

转载:转载请注明原文链接 - JavaSE从入门到放弃.方法


我是一个程序员,致力于网页开发,我还很年轻,什么也不懂。