JAVA学习day05

简介: 1、方法就是用来完成解决某件事件或者实现某个功能的办法。2、方法的定义格式: 修饰符 返回值类型 方法的名字 (参数列表....){ 方法的功能主体 循环,判断,变量,比较,运算 return ; } 修饰符:固定写法 public...

1、方法就是用来完成解决某件事件或者实现某个功能的办法。

2、方法的定义格式:

   修饰符 返回值类型 方法的名字 (参数列表....){
       方法的功能主体
          循环,判断,变量,比较,运算
      return ;
   }

 修饰符:固定写法  public static
   返回值类型: 方法在运算后,结果的数据类型
   方法名: 自定义名字,满足标识符规范,方法名字首字母为小写,后面每个单词首字母大写
   参数列表: 方法的运算过程中,是否有未知的数据,如果有未知的数据,定义在参数列表上(定义变量)
   return: 方法的返回,将计算的结果返回,结束方法

3、调用方法:让一个方法运行起来

4、调用方法执行流程


方法参数里面的都是形参
实际调用时的参数是实参



5、方法调用的内存图

栈:先进后出    后进先出

6、方法定义和使用的注意事项
    1、方法不能定义在另一个方法的里面;
    2、写错方法名字;
    3、写错了参数列表;
    4、方法返回值是void,方法中可以省略return不写;
        Return 后面不能有代码;
    5、方法返回值类型,和return 后面数据类型必须匹配;
    6、方法重复定义问题;
    7、调用方法的时候,返回值是void,不能写在输出语句中;
    
7、方法的重载
方法的重载特性(overload)
在同一个类中,允许出现同名的方法,只要方法的参数列表不同即可,这样方法就是重载
参数列表不同:参数的个数,数据类型,顺序
对于重载的调用,根据参数传递进行区分


8、方法重载的注意事项
    1、参数列表必须不同
    2、重载和参数变量名无关
    3、重载和返回值类型无关
    4、重载和修饰符无关
    技巧:重载看方法名和参数列表
    
    
9、方法参数是基本数据类型
    方法,调用中的参数传递问题
    1、方法参数是基本数据类型
    2、方法参数是引用类型:传递的是内存地址
    

10、库存练习image
package com.ghy.study;

/*

实现商品的库存管理

 功能:
    1. 展示用户选择功能清单
    2. 根据选择的功能编号,进行不同的操作
       A. 展示所有库存
       B. 修改库存数量

  分析:
    1. 展示用户清单:
       输出语句, 用户输入, 选择功能序号
    2. 根据选择,调用不同的方法
        switch语句
          case 1 2 3

       A  展示库存
         将存储商品的数组,遍历
       B  修改库存

          修改所有的库存数量

*/
import java.util.Scanner;

public class ShopMethod {

    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;
    }
}
目录
相关文章
|
3月前
|
缓存 安全 Java
《volatile使用与学习总结:》多层面分析学习java关键字--volatile
《volatile使用与学习总结:》多层面分析学习java关键字--volatile
27 0
|
12天前
|
设计模式 架构师 Java
Java开发工程师转架构师需要学习什么
Java开发工程师转型为架构师需掌握多项技能:精通Java及框架、数据库与分布式系统;熟悉设计模式与架构模式;积累项目经验;提升沟通与领导力;持续学习新技术;培养系统设计与抽象能力;了解中间件及开发工具;并注重个人特质与职业发展。具体路径应结合个人目标与实际情况制定。
39 18
|
26天前
|
监控 Java 调度
【Java学习】多线程&JUC万字超详解
本文详细介绍了多线程的概念和三种实现方式,还有一些常见的成员方法,CPU的调动方式,多线程的生命周期,还有线程安全问题,锁和死锁的概念,以及等待唤醒机制,阻塞队列,多线程的六种状态,线程池等
101 6
【Java学习】多线程&JUC万字超详解
|
1月前
|
前端开发 Java 编译器
【前端学java】如何从前端视角快速学习Maven
【8月更文挑战第12天】如何从前端视角快速学习Maven
43 2
【前端学java】如何从前端视角快速学习Maven
|
1月前
|
存储 算法 Java
Java零基础(1) - 从零开始学习数组
【8月更文挑战第1天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
34 1
|
1月前
|
Java 测试技术 开发者
Java零基础教学(07):学习正确的命名规范
【8月更文挑战第7天】Java零基础教学篇,手把手实践教学!
90 0
|
3月前
|
安全 Java 编译器
杭州 【Java基础知识 11】java泛型方法的定义和使用(学习+改进+自己理解,想法) (借鉴-侵-删)
杭州 【Java基础知识 11】java泛型方法的定义和使用(学习+改进+自己理解,想法) (借鉴-侵-删)
35 1
|
3月前
|
消息中间件 负载均衡 Java
学习Java中的反应式编程
学习Java中的反应式编程
|
3月前
|
Java
JAVA高级部分学习小结(2023.11.4)
JAVA高级部分学习小结(2023.11.4)
|
2月前
|
设计模式 算法 Oracle
Java语言学习路径及学习资源推荐
Java语言学习路径及学习资源推荐