Java 方法

Java 方法

何谓方法

  • Java方法是语句的集合, 它们再一起执行一个功能
    • 方法是解决一类问题的有序组合
    • 方法包含于类或对象中
    • 方法再程序中被创建,再其他地方被引用
  • 设计方法的原则:设计方法的时候,保持方法的原子性,就是一个方法只完成一个功能,这样有利于我们后期的发展

方法包含一个方法头和一个方法体

  • 修饰符 定义方法的访问类型 可选择
  • 方法名 是方法的名称
  • 参数类型 形式参数 实参
  • 方法体 方法的具体语句
  • 返回值类型 默认是void
public static int max(int num1,int num2)
方法的调用
  • 当方法返回一个 的时候,方法的调用被当作一个

    int larger = max(30,40);
    
  • 当方法返回的值是 void,方法的调用一定是 一条语句

    System.ou.println("Hello word!");
    
修饰符
  • public
//非静态方法
//实例化这个类
//对象类型 对象名字 = 对象值
student student = new student();
student.say();
  • static
//static 和类一起加载
    public  void a(){
        b();
    }
    //类实例化之后才存在
    public static void b(){

    }

//b() 不可以调用a

总结

public class Demo3 {
    public static void main(String[] args) {
        //第一种方法调用 add
        int add = new Demo3().add(1,2);
        //第二种调用方法 sub
        int sub = Demo3.sub(3,1);

    }

    public int add(int a,int b){
        return a+b;
    }
    public static int sub(int a,int b){
        return a-b;
    }
}
值传递和引用传递
Java 是值传递
public class Demo4 {
    public static void main(String[] args) {
        int a = 1;
        System.out.println(a);//1
        Demo4.change(a);
        System.out.println(a);//1

    }
    //返回值为空 只把值传给了 change
    public static void change(int a){
        a = 10;//a = 10
    }
}

输出结果:
    1
    1

引用传递

//引用传递 传递一个 对象 但是本质 还是 值传递
public class Demo5 {
    public static void main(String[] args) {
        Person person = new Person();

        System.out.println(person.name);//null

        Demo5.change(person);

        System.out.println(person.name);//刘伟

    }
    public static void change(Person person){
        //person是一个对象 他指向的是 ---> Person person = new Person()
        // 这是一个具体的人 可以改变属性
        person.name = "刘伟";
        }
    }

//定义了 一个 person类  里面有一个 属性 name
class Person{
    String name;//属性
}

方法的重载

再一个类中 有 相同的函数名称,但是 形参不同 的函数

参数个数可以 不同 类型 返回值 可以不同

int max = max(10,20);

public static int max(int num1,int num2){
	----
}
public static double max(double num1,idouble num2){
	----
}

方法名称相同的时候 方法会根据参数的个数 ,参数的类型 等逐个去匹配。已选择对应的方法。

命令行传参

可变参数

在制作方法的时候 可能不确定参数的个数 也叫不定向参数

在方法的声明中 在指定的参数类型后加 省略号(........)

一个方法中 只能指定一个 可变参数 必须是方法的 **最后一个参数 **普通参数在前面声明

本质 就是 数组

递归

自己调用自己

可以 大大减少程序的代码量

递归有 两个部分

  • 递归头 : 什么时候 不调用 自己 , 没有 递归头 进入死循环

  • 递归体:什么时候需要调用自己

    public class Demo6 {
        //阶乘
        public static void main(String[] args) {
    
        }
    
        public static int f(int n) {
            if (n == 1) {
                return 1;
            } else {
                return  n*f(n-1);
            }
        }
    }
    
    
原文地址:https://www.cnblogs.com/AronJudge/p/14153020.html