zoukankan      html  css  js  c++  java
  • 方法

    方法简介

        方法, 一听这个词我们能想到什么呢? 解决问题的方法, 方案. 
        聪明的你应该已经发现了. 同样的代码写了两遍. 作为一名合格的懒惰程序员, 这是绝对不允许的. 怎么办呢? 还记得刚开始的时候说的那个叫方法的东西么? 对了. 我们可以把”约”的功能单独设置成一个方法, 方案. 在我需要约的时候. 把这个方案拿出来用一下就OK了.
     
    方法: 对功能或者动作的封装.  类似函数
    目的: 把一个功能或者动作写好. 然后等待后面的程序来使用. 可以大大的简化我们的代码.
     

    方法的定义

    上节课说了方法是什么. 本小结跟大家说一说怎么写方法.
     
    语法:
    public static void 方法名(){
    方法体
    }
     
    方法名() // 这里是调用方法
    其中: public static void先照着写. 不用管. 你只需要给自己的方法起一个名字就可以了.
    方法体: 这件事儿到底应该怎么做.
    public static void work() {
        System.out.println("1.打开电脑");
        System.out.println("2.插上网线,联网");
        System.out.println("3.登录微信");
        System.out.println("4.开始干活");
        System.out.println("5.中途休息");
    }
    public static void count100(){
        for (int i = 0; i <= 100; i++) {
            System.out.println(i);
        }
    }
    
    public static void main(String[] args) {
        work();
        System.out.println("中午了,吃饭,午休");
        work();
        count100();
    }
     

    带参数的方法

    参数: 调用方法的时候给方法传递的信息.
    语法:
    public static void 方法名(参数){
    方法体
    }
     
    方法名(参数)
    参数两类:
        在方法声明的位置的括号里写的内容被称为形参. 形式上. 你在调用该方法的时候需要给一个数据. 那接收数据的话, 咱么说过, 变量是用来保存数据的. 所以, 所谓的形参, 实际上就是声明一个变量
        在方法被调用的地方给方法传递的具体的信息, 这个叫实参.
    形参就是一个变量声明就可以了. 表示可以接受xxx类型的数据
    实参必须是具体的数据, 可以是变量, 也可以直接是值.
     
     
     
    注意: 一个方法可以有多个参数
     
     
    public static void work(String place, String kind) {
        System.out.println("1.打开电脑:" + place);
        System.out.println("2.插上网线,联网");
        System.out.println("3.登录微信");
        System.out.println("4.开始干活:" + kind);
        System.out.println("5.中途休息");
    }
     
    public static void main(String[] args) {
        work("公司", "学业务");
        work("家", "学代码");
    
    }
    实参传递给形参时, 是按照位置进行传递的.
    形参和实参的个数必须要匹配, 否则报错.
     

    方法的返回值

     
    带有返回值的方法:
     
    public static 返回值类型 方法(参数){
    方法体
    }
     
        public static String invest() {
            System.out.println("开户投资");
            return "赚取收益";
        }
    
        public static void main(String[] args) {
            invest();// 返回值也可以不接收. 不会报错
            String ret = invest();// 接收返回值. 变量的数据类型必须和方法的返回值类型一致
            System.out.println(ret);
    //        System.out.println(invest());
        }
      
    注意:
    1. 如果方法没有返回值, 那么在方法声明的地方必须要写void. 不可以空着.
    2. 如果方法有返回值. 那么在方法声明的地方必须写出方法的返回值类型.
    3. 如果方法有返回值. 在方法内部必须使用return语句来返回数据.
    4. 方法的返回值必须和返回值类型一致.
    5. return语句执行之后, 方法就结束了. 后面不能执行任何代码.
    以上5点必须遵守. 否则报错.
     
    同时存在参数和返回值
     
    给方法传递a和b计算a+b的结果并返回
    public static int add(int a, int b) {
        return a + b;
    }
    
    public static void main(String[] args) {
        int c = add(10, 20);
        System.out.println(c);
    }
    注意, 方法的返回值和参数之间并没有任何关系. 需要给方法传递信息就写参数. 需要返回数据就写返回值.
     
     

    方法练习

    我们把本章内的一些知识点综合在一起. 做做小练习.
    写方法, 给方法传递两个整数a, b. 返回a和b中比较大的那个数.
     //方案一
     public static int compare(int a, int b){
         if(a > b){
             return a;
         } else {
             return b;
         }
     }
     //方案二
     public static int compare(int a, int b){
         return a > b ? a : b;
     }
    方案二中使用的是三元运算. 又叫三目运算.
    语法:
    x ? y: z
    如果x为真, 则y, 否则z
     
     
    写方法, 把传入的数组翻转并返回.
     
    public static int[] reverse(int[] arr) {
        int[] result = new int[arr.length];
        int index = 0;
        for (int i = arr.length - 1; i >= 0; i--) {
            result[index] = arr[i];
            index++;
        }
        return result;
    }
    
    public static void main(String[] args) {
        int[] shu = {1, 55, 2, 17, 8, 12, 5};
        int[] res = reverse(shu);
        for (int i = 0; i < shu.length; i++) {
            System.out.println(res[i]);
        }
    }
    5
    12
    8
    17
    2
    55
    1
     

    方法的重载

    啥叫重载? 重新加载. No. 假设, 现在我们写一个吃饭方法. 那我可以给方法传递一个参数. 叫饭.
     
     public static void chi(String fan){
         System.out.println(fan)
     }
    写完了. 也投入使用了. 很多人使用这个方法来吃饭. 突然有一天, 你灵光一闪. 不对啊. 我们不光吃饭啊. 还要吃菜啊. 那怎么办. 你肯定会想到. 简单. 加个参数就完了. 你这么想的话. 那你就太年轻了. 先不说加个参数对你有什么影响. 那些正在调用你原来吃饭方法的人怎么办…. 全都挂了. 那就再写一个方法? 可以.
     
     public static void ?????????????(String fan, String cai){
         System.out.println(fan);
         System.out.println(cai);
     }
    别的都好弄. 这个名字怎么办…. 总不能叫chi2 吧. 都是吃东西. 怎么就排了个1和2. 好吧, 就算你加了2. 也会导致很多人产生这样的问题. 为什么chi传1个参数…chi2要传2个…在调用的时候就要小心翼翼. 因为参数传错了程序会崩掉的. 怎么样. 发现问题了吧. 那如果我再加个甜点呢? 再来个chi3???? NO. It’s terriable. 此时, 你需要这样一种机制. 能不能让方法的名字一样. 参数不一样呢? 可以~~
     
    重载: 方法的名字相同, 参数的个数或者类型不同.
     
    哇~ 有了这样一个理论基础. 这个chi就好写很多了
     public class TestMethod6 {
         public static void chi(String fan){
             System.out.println(fan);
         }
         public static void chi(String fan, String cai){
             System.out.println(fan);
             System.out.println(cai);
         }
         public static void chi(String fan, String cai , String tiandian){
             System.out.println(fan);
             System.out.println(cai);
             System.out.println(tiandian);
         }
     
         public static void main(String[] args) {
             chi("大米饭");
             chi("大米饭", "西红柿炒鸡蛋");
             chi("大米饭", "尖椒土豆丝", "哈根达斯");
         }
     }
    搞定. 我们发现, 在方法调用的时候. 程序会自动根据你给的参数类型和个数选择你要执行的方法.
     
    再看一个 
    public static int add(int a, int b) {
        System.out.println("two int");
        return a + b;
    }
    
    public static long add(int a, long b) {
        System.out.println("one int, one long");
        return a + b;
    }
    
    public static double add(int a, double b) {
        System.out.println("one int ,one double");
        return a + b;
    }
    
    public static void main(String[] args) {
        System.out.println(add(10, 20));
        System.out.println(add(10, 20L));
        System.out.println(add(10, 1.25));
    } 
     
    重载: 方法的名字相同, 参数的个数或类型不同.
     
     
  • 相关阅读:
    服务器图片等资源在8080端口保存
    thinkphp 3.2.1 URL 大小写问题 下面有具体说明
    linux samba smb 在客户端无法连接使用
    php连接redis服务
    服务器死机 导致 mongo 挂掉
    同一个页面引用不同版本jquery库
    CSS3阴影 box-shadow的使用和技巧总结
    php 中使用正则
    Hbase-1.1.1-java API
    hive1.2.1问题集锦
  • 原文地址:https://www.cnblogs.com/wenyule/p/12185133.html
Copyright © 2011-2022 走看看