博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
05_Java基础语法_第5天(方法)_讲义
阅读量:5019 次
发布时间:2019-06-12

本文共 11462 字,大约阅读时间需要 38 分钟。

今日内容介绍

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: 方法调用的内存图    * a: 参见\day05\day05(Java基础语法)\day05_source\方法内存图.JPG

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 randomStudentName(String[] names){            Random ran = new Random();            int index = ran.nextInt(names.length);            return names[index];        }                /*           定义方法,遍历数组           返回值? 没有           参数? 数组        */        public static void printStudentName(String[] names){            for(int i = 0 ; i < names.length ;i++){                System.out.println(names[i]);            }        }                /*           定义方法,实现向数组中添加学生姓名           返回值? 没有,           参数?  参数就是数组        */        public static void addStudent(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;        }    }

转载于:https://www.cnblogs.com/wanghui1234/p/9533207.html

你可能感兴趣的文章
ios7 JavaScriptCore.framework
查看>>
算法6-5:哈希表应用之集合
查看>>
压力单位MPa、Psi和bar之间换算公式
查看>>
Moscow Pre-Finals Workshop 2016. National Taiwan U Selection
查看>>
程序员面试、算法研究、编程艺术、红黑树4大系列集锦与总结 .
查看>>
idea tomcat 配置
查看>>
冲刺第二天
查看>>
LeetCode 405. Convert a Number to Hexadecimal (把一个数转化为16进制)
查看>>
ASP.NET MVC 3–Global Action Filters
查看>>
OFFICE安装提示1935错误
查看>>
jva基础网络编程
查看>>
js 正计时和倒计时
查看>>
复合数据类型,英文词频统计
查看>>
you-get帮助使用手册
查看>>
nyoj756_重建二叉树_先序遍历
查看>>
sin()函数的实现
查看>>
图像切割之(一)概述
查看>>
JAVA修饰符类型(public,protected,private,friendly)
查看>>
flex利用webservice上传照片
查看>>
IOS开发之Bug--使用KVC的易错情况
查看>>