Java教程

Java方法

本文主要是介绍Java方法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、方法

1.什么是方法

System.out.println()

System是系统类,out是标准输出对象,println()是一个方法

这句话是调用系统类System中的标准输出对象out中的方法printlin()

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

2.方法的优点

  • 使程序变得简短和清晰。

  • 有利于维护程序。

  • 提高程序的开发效率。

  • 提高了代码的重要性。

二、方法的定义

修饰符 返回值类型 方法名(参数类型 参数名){

​ 方法体

​ return 返回值;
}

  • 修饰符:是可选的,告诉编译器如何调用该方法,定义了该方法的访问类型。
  • 返回值类型:方法返回值的数据类型,有的方法执行操作后没有返回值,用void关键字。
  • 方法名:该方法的名称。
  • 参数:包含参数类型和参数名字,参数是可选的,方法可以不包含任何参数,调用改方法时,传递值给该参数。
    • 形式参数:在方法被调用时用于接收外界输入的数据。
    • 实际参数:调用方法时实际传给方法的数据。
  • 方法体:方法中的执行语句,定义该方法的功能。

三、方法的调用

  • 当方法返回一个值的时候,方法调用通常被当作一个值。例如:

    int max = max(5,10)

  • 当方法返回值是void,方法调用的一定是一条语句。例如:

    System.out.println("Hello,World!")

  • Java中只有值传递

public static void main(String[] args) {
    int max = max(50, 20);
    System.out.println(max);
    //调用max方法,输出大的值。返回值。
}
//比大小  max方法
public static int max(int num1,int num2){
    int result = 0;
    if (num1==num2){
        System.out.println("num1==num2");
        return 0;//终止方法
    }
    if (num1>num2){
        result = num1;
    }else {
        result = num2;
    }
    return result;
}

四、方法的重载

方法重载:一个类中可以有俩个方法具有相同的名字,但是这俩个方法有不同的参数列表,即参数个数不同,或者参数个数相同,但所对应的参数类型不同。

public static int add(int a,int b){
    int sum = 0;
    sum = a + b;
    return sum;
}
//方法重载,方法名字必须相同,参数类型或参数个数或者参数排列顺序不同。
public static int add(int a,int b,int c){
    int sum = 0;
    sum = a + b;
    return sum;
}

五、命令行传参(了解)

有时候希望在运行一个程序时在传递给塔信息,这要靠传递命令行参数给main()函数实现。

在这里插入图片描述

错误:找不到或无法找到加载主类。

解决方法:在项目输出的项目目录下执行java命令,写完整路径即可。

六、可变参数

在方法声明中,在指定参数类型后加一个省略号(…)实现可变参数的声明。可变参数在一个方法中只能有一个,而且必须是该方法的最后一个参数。

//double... numbers  可变参数
public static void printMax(double... numbers) {
    if (numbers.length == 0){
        System.out.println("No argument passed");
        return;
    }

    double result = numbers[0];

    //排序!
    for (int i = 1; i < numbers.length; i++) {
        if (numbers[i] > result){
            result = numbers[i];
        }
    }
    System.out.println("The max value is"+result);
}

七、递归

递归:A方法调用A方法,即自己调用自己,设计递归算法时,要明白什么时候自己不调用自己,否则就是一个死循环。递归包括俩个部分:

  • 递归头:什么时候不调用自身,没有递归头就会陷入死循环。
  • 递归体:什么时候自己调用自己。
public static void main(String[] args) {
    Demo07 demo07 = new Demo07();
    System.out.println(demo07.f(3));
    System.out.println(f(2));
}

//阶乘 3! 3*2*1
public static int f(int a){
    if (a == 1){
        return 1;
    }else{
        return a*f(a -1);
    }
}
//边界条件:阶乘,乘到最后一个数,即1的时候,返回1,程序执行到底。
//递归前进段:当前的参数不等于1的时候,继续调用自身。
//递归返回段:从最大数开始乘,比如5的阶乘,就是5*(5-1),即n*(n-1).

递归和迭代的区别:

递归易于理解,容易编程,采取栈机制,对于嵌套层数深(深度大)的一些算法,就会占用大量的内存空间,时间开销也会增加,空间上内存会崩溃。

迭代不容易理解,编写复杂问题时困难,效率高,运行时间因循环次增加而增加,没有额外开销,空间上也没什么增加。

八、小练习

package com.feng.method;

import java.util.Scanner;
//简易加减乘除计算器
public class JiSuanQi {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        double a = 0;
        double b = 0;
        String fh = "0";

        if (scanner.hasNextDouble()){
            a = scanner.nextDouble();
            fh = scanner.next();
            b = scanner.nextDouble();
        }

        switch (fh) {
            case "+":
                System.out.println(a+"+"+b+"="+(a+b));
                break;
            case "-":
                System.out.println(a+"-"+b+"="+(a-b));
                break;
            case "*":
                System.out.println(a+"*"+b+"="+(a*b));
                break;
            case "/":
                System.out.println(a+"/"+b+"="+(a/b));
                break;
            default:
                System.out.println("请输如正确内容");
        }

        scanner.close();
    }
}
这篇关于Java方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!