• 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);
              }
          }
      }
      
      
  • 相关阅读:
    hdu 5335 Walk Out (搜索)
    Hdu 5336 XYZ and Drops (bfs 模拟)
    Zznu 1913: yifan and matrix (多路归并)
    hdu 5316 Magician (线段树)
    Bzoj 2038: [2009国家集训队]小Z的袜子(hose)
    Poj 1741 Tree (树的分治)
    LightOJ 1027
    1067
    Closest Common Ancestors---poj1470(LCA+离线算法)
    1128
  • 原文地址:https://www.cnblogs.com/AronJudge/p/14153020.html
Copyright © 2020-2023  润新知