杨老师课堂_Java教程第五篇之函数运用

来源:互联网 发布:mac 导入图片位置 编辑:程序博客网 时间:2024/06/12 01:45

今天主要是讲解以下知识点:
1、方法基础知识
2、方法高级内容
3、方法案例

01方法的概述

* A: 为什么要有方法(函数)    * 提高代码的复用性 * B: 什么是方法    * 完成特定功能的代码块。 

02方法的定义格式

* A: 方法的格式*         修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) {            方法体语句;            return 返回值;         } * B: 方法的格式说明    * 修饰符:目前就用 public static。后面我们再详细的讲解其他的修饰符。    * 返回值类型:就是功能结果的数据类型。    * 方法名:符合命名规则即可。方便我们的调用。    * 参数:        * 实际参数:就是实际参与运算的。        * 形式参数;就是方法定义上的,用于接收实际参数的。    * 参数类型:就是参数的数据类型    * 参数名:就是变量名    * 方法体语句:就是完成功能的代码。    * return:结束方法的。    * 返回值:就是功能的结果,由return带给调用者。 

03定义方法计算面积

* A: 定义方法计算面积    public class MethodDemo{        public static void main(String[] args){             //调用方法, 方法执行起来             // 在方法main中,调用方法 getArea             int area = getArea(5,6);             System.out.println("面积是: "+area);        }        /*           需求: 计算一个长方形的面积                      要求: 定义方法解决这个要求           分析方法定义过程:              1.明确方法计算后的结果的数据类型 int  定义格式对应的就是返回值类型              2.方法计算过程中,有没有未知的数据, 宽和长, 未知数据的数据类型 int                  未知数的变量,定义在方法的小括号内        */        public static int  getArea(int w, int h){            //实现方法的功能主体            //int area = w * h;            return w * h;        }    }

04调用方法

* A: 调用方法    * a: 在main函数中调用方法,让方法执行起来    * b: 方法的形参        * 方法要什么参数我们就给什么类型的参数。    * c: 方法的返回值        * 方法返回什么类型的值我们就用对应的数据类型的变量来接收

05调用方法执行流程

* A: 调用方法执行流程    * a: 方法的定义是没有顺序的,写在main函数的上边或者下边都可以。    * b: 方法的执行,是把实参传递给形参,从而来执行的。    * c: 方法只有被调用才会执行。

06方法调用的内存图

* A: 方法调用的内存图    * ![这里写图片描述](http://img.blog.csdn.net/20171226134755187?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva2VzZTc5NTI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)

07方法调用的练习

* A: 案例代码    /**       方法的定义练习    */    import java.util.Scanner;    public class MethodDemo_1{        public static void main(String[] args){            //printRect();            //int number = getNumber();            //System.out.println(getNumber());            //printRect2(3,5);            double avg = getAvg(2,2,3);            System.out.println(avg);        }        /*           定义有返回值有参数方法,如求三个数的平均值           明确方法计算后的数据类型, 返回值类型 double           明确方法未知数, 三个未知的整数        */        public static double getAvg(double a, double b,double c){             return (a+b+c)/3;        }        /*            定义无返回值有参数方法,如打印指定M行,每行N个*号的矩形            明确方法计算后结果,控制台输出图形,没有返回值的            方法中有没有未知数,图形行数,和列数,是未知的, 数据类型整数int        */        public static void printRect2(int m,int n){            for(int i = 0 ; i < m ; i++){                for(int j = 0 ; j < n ;  j++){                    System.out.print("*");                }                System.out.println();            }        }        /*           定义有返回值无参数方法,如键盘录入得到一个整数           明确方法计算后结果的数据类型 int           明确有没有未知数,没        */        public static int getNumber(){            Scanner sc = new Scanner(System.in);            //int number = sc.nextInt();            return sc.nextInt();        }        /*           定义无返回值无参数方法,如打印3行,每行3个*号的矩形           为什么没有返回值:               打印矩形 ,输出效果,不需要将结果返回               明确未知数: 不需要未知数        */        public static void printRect(){            for(int i = 0 ; i < 3 ; i++){                for(int j = 0 ; j < 3 ;j++){                    System.out.print("*");                }                System.out.println();            }        }    }

08方法的定义和使用的注意事项

* A: 方法的定义和使用的注意事项    * a: 方法不能定义在另一个方法的里面    * b: 写错方法名字    * c: 写错了参数列表    * d: 方法返回值是void,方法中可以省略return 不写         return 下面不能有代码    * e 方法返回值类型,和return 后面数据类型必须匹配    * f: 方法重复定义问题    * g: 调用方法的时候,返回值是void, 不能写在输出语句中

09方法的重载

* A: 方法的重载    * 在同一个类中,方法名相同,参数列表不同。与返回值类型无关。    * 参数列表不同:        * A:参数个数不同        * B:参数类型不同        * C:参数的顺序不同(算重载,但是在开发中不用)* B: 案例代码    public static int getSum(int a,int b){        System.out.println("两个int参数");        return a+b;    }    public static int getSum(int a,int b,int c){        System.out.println("三个int参数");        return a+b+c;    }    public static double getSum(double a,double b){        System.out.println("两个double参数");        return a+b;    }

10方法重载注意事项

* A: 方法重载注意事项    * a: 参数列表必须不同    * b: 重载和参数变量名无关    * c: 重载和返回值类型无关    * d: 重载和修饰符无关    * e: 技巧: 重载看方法名和参数列表

11方法参数是基本数据类型

* A: 方法参数是基本数据类型    * a: 方法参数是基本类型时,传递的是值。

12方法参数是引用数据类型

* A: 方法参数是引用数据类型    * a: 方法参数是引用类型时,传递的是内存地址值。

13王者荣耀英雄随机出战案例

* A: 案例代码    /*       实现王者荣耀随机出战         1.存储所有英雄姓名         2.预览所有英雄姓名,遍历数组         3.随机数作为索引,到数组中找元素        将功能独立出来, 作成方法,调用方法即可        定义三个功能, 用到同一个姓名数据        姓名存储到数组中,三个方法,使用一个数组中的数据, 方法传递参数    */    import java.util.Random;    public class CallName{        public static void main(String[] args){            //定义数组,存储英雄姓名            String[] names = new String[8];            //调用添加姓名方法            addStudent(names);            //调用遍历数组方法            printStudentName(names);            //调用随机姓名的方法            String name = randomStudentName(names);            System.out.println(name);        }        /*          定义方法,随机数,做索引,数组中找到英雄姓名          返回值?  英雄姓名          参数?  数组        */        public static String randomHeroName(String[] names){            Random ran = new Random();            int index = ran.nextInt(names.length);            return names[index];        }        /*           定义方法,遍历数组           返回值? 没有           参数? 数组        */        public static void printHeroName(String[] names){            for(int i = 0 ; i < names.length ;i++){                System.out.println(names[i]);            }        }        /*           定义方法,实现向数组中添加学生姓名           返回值? 没有,           参数?  参数就是数组        */        public static void addHero(String[] names){            names[0] = "诸葛亮";            names[1] = "李白";            names[2] = "后裔";            names[3] = "苏烈";            names[4] = "赵云";            names[5] = "阿珂";            names[6] = "韩信";            names[7] = "甄姬";        }    }

14库存案例代码实现_1

* A: 案例代码    /*       实现商品的库存管理         功能:            1.展示用户选择功能清单            2.根据选择的功能编号,进行不同的操作               A. 展示所有库存               B. 修改库存数量          分析:            1.展示用户清单:               输出语句, 用户输入, 选择功能序号            2.根据选择,调用不同的方法                switch语句                  case 1 2 3               A  展示库存                 将存储商品的数组,遍历               B  修改库存                  修改所有的库存数量    */    import java.util.Scanner;    public class Shopp{        public static void main(String[] args){        }        /*           定义方法,展示所有的库存清单,遍历           返回值,没有           参数, 数组        */        public static void printStore(String[] brand,double[] size,double[] price,int[] count){            System.out.println("----------商场库存清单----------");            System.out.println("品牌型号     尺寸    价格    库存数");            //定义变量,计算总库存数,和总价格            int totalCount = 0;            int totalMoney = 0;            //遍历数组,将数组中所有的商品信息打印出来            for(int i = 0 ; i < brand.length ; i++){                System.out.println(brand[i]+"   "+size[i]+"    "+price[i]+"   "+count[i]);                totalCount += count[i];                totalMoney += count[i]*price[i];            }            System.out.println("总库存数: "+totalCount);            System.out.println("商品库存总金额: "+totalMoney);        }        /*          定义方法,实现用户的选择功能,功能的需要返回来          返回值, int          参数, 没有        */        public static int chooseFunction(){            System.out.println("-------------库存管理------------");            System.out.println("1.查看库存清单");            System.out.println("2.修改商品库存数量");            System.out.println("3.退出");            System.out.println("请输入要执行的操作序号:");            //接受键盘输入            Scanner sc = new Scanner(System.in);            int chooseNumber = sc.nextInt();            return chooseNumber;        }    }

15库存案例代码实现_2

* A: 案例代码    /*      定义方法,修改所有商品的库存        用户输入1个,修改1个        返回值,没有        参数, 库存数的数组, 品名数组    */    public static void update(String[] brand, int[] count){        //遍历数组,遍历到一个,修改一个        //接受键盘输入        Scanner sc = new Scanner(System.in);        //遍历数组        for(int i = 0; i < brand.length ; i++){            System.out.println("请输入"+brand[i]+"的库存数");            //键盘输入,录入库存, 存储到库存的数组中            int newCount = sc.nextInt();            count[i] = newCount;        }        //int chooseNumber = sc.nextInt();    }

16库存案例代码测试

* A: 案例    /*       实现商品的库存管理         功能:            1.展示用户选择功能清单            2.根据选择的功能编号,进行不同的操作               A. 展示所有库存               B. 修改库存数量          分析:            1.展示用户清单:               输出语句, 用户输入, 选择功能序号            2.根据选择,调用不同的方法                switch语句                  case 1 2 3               A  展示库存                 将存储商品的数组,遍历               B  修改库存                  修改所有的库存数量    */    import java.util.Scanner;    public class Shopp{        public static void main(String[] args){            //使用数组,保存商品的信息            //品名,尺寸,价格,库存数, 定义5个数组            String[] brand = {"MacBookAir","ThinkpadT450"};            double[] size = {13.3,15.6};            double[] price = {9998.97,6789.56};            int[] count = {0,0};            while(true){                int choose = chooseFunction();                switch(choose){                    case 1:                      //调用查看库存清单方法                      printStore(brand,size,price,count);                    break;                    case 2:                      //调用修改库存的方法                      update(brand,count);                    break;                    case 3:                     return ;                    default:                      System.out.println("没有这个功能");                    break;                }            }        }        /*          定义方法,修改所有商品的库存            用户输入1个,修改1个            返回值,没有            参数, 库存数的数组, 品名数组        */        public static void update(String[] brand, int[] count){            //遍历数组,遍历到一个,修改一个            //接受键盘输入            Scanner sc = new Scanner(System.in);            //遍历数组            for(int i = 0; i < brand.length ; i++){                System.out.println("请输入"+brand[i]+"的库存数");                //键盘输入,录入库存, 存储到库存的数组中                int newCount = sc.nextInt();                count[i] = newCount;            }            //int chooseNumber = sc.nextInt();        }        /*           定义方法,展示所有的库存清单,遍历           返回值,没有           参数, 数组        */        public static void printStore(String[] brand,double[] size,double[] price,int[] count){            System.out.println("----------商场库存清单----------");            System.out.println("品牌型号     尺寸    价格    库存数");            //定义变量,计算总库存数,和总价格            int totalCount = 0;            int totalMoney = 0;            //遍历数组,将数组中所有的商品信息打印出来            for(int i = 0 ; i < brand.length ; i++){                System.out.println(brand[i]+"   "+size[i]+"    "+price[i]+"   "+count[i]);                totalCount += count[i];                totalMoney += count[i]*price[i];            }            System.out.println("总库存数: "+totalCount);            System.out.println("商品库存总金额: "+totalMoney);        }        /*          定义方法,实现用户的选择功能,功能的需要返回来          返回值, int          参数, 没有        */        public static int chooseFunction(){            System.out.println("-------------库存管理------------");            System.out.println("1.查看库存清单");            System.out.println("2.修改商品库存数量");            System.out.println("3.退出");            System.out.println("请输入要执行的操作序号:");            //接受键盘输入            Scanner sc = new Scanner(System.in);            int chooseNumber = sc.nextInt();            return chooseNumber;        }    }

课后作业

*根据所学知识,常识完成 超市购物系统项目首期需求:    实现“佳乐福超市”购物功能            |--- 如果超市有所需要的物件,则表示消费者买到该商品            |--- 如果超市没有所需要的物件,则表示消费者白跑一趟

这里写图片描述
作者: 杨校

出处: http://blog.csdn.net/kese7952

分享是快乐的,也见证了个人成长历程,文章大多都是工作经验总结以及平时学习积累,基于自身认知不足之处在所难免,也请大家指正,共同进步。

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 如有问题, 可邮件(397583050@qq.com)咨询。

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 乱红表达的什么意思 红鼎国际b座很乱吗 苏宁红孩子管理真乱 紫岭红山乱四部曲 松本乱菊 死神松本乱菊全彩 乱菊 死神松本乱菊夜一h沙滩 死神同人乱菊篇40 乱鬼龙切菊图解 死神松本乱菊洗完澡和银说话 死神夜一乱菊沙滩 市丸银死在乱菊怀里图片 松本乱菊卍解 死神露琪亚被虚上乱菊夜 乱轰三国志攻略 乱轰三国志2018推荐几套阵容 乱马 乱马1 乱马12 乱马国语 乱马热斗篇 乱马1/2 乱马二分之一 乱马二分之一动画全集 家教 乱马 狐狸新娘 哈尼雅 心乱如麻 快刀斩乱麻 乱麻图片 一团乱麻图片 一团乱麻 心乱如麻图片 快刀斩乱麻打一成语 乱麻 七雄戈戟乱如麻 快刀斩乱麻的歇后语 心乱如麻的意思 乱麻雪纺 快刀斩乱麻下一句 乱麻面料 乱麻是什么面料