【Java】Java基础训练之超市购物程序设计

简介: 【Java】Java基础训练之超市购物程序设计

@[TOC]超市购物程序设计


任务描述


购物时,如果购买的商品在超市中有,则提示购物者买到了某商品,
否则提示什么都没买到。

实现思路


该超市购物程序中包含商品,超市和购物者三个对象。

首先定义三个对象的名称属性和功能属性(get方法获取,set方法赋值),其次定义卖货和购物方法,最后主方法中实现所有操作。


一、Product商品类


//商品类
public class Product {
  //定义商品名称
  private String proName;
  //get方法
  public String getProductName() {
    return proName;
  }
  //set方法
  public void setProduct(String proName) {
    this.proName = proName;
  }
}

二、Supermarket超市类


//超市类
public class Supermarket {
  //1.定义超市名称,设置方法
  private String supermaketName;
  public String getSupermaketName() {
    return supermaketName;
  }
  public void setSupermaketName(String supermaketName) {
    this.supermaketName = supermaketName;
  }
  //2.定义货架数组
  private Product[] productArr;
  public Product[] getProductArr() {
    return productArr;
  }
  public void setProductArr(Product[] productArr) {
    this.productArr = productArr;
  }
  //3.卖货方法
  Product sell(String name) {//传入要购买的商品名称
    for(int i=0; i<productArr.length; i++) {//遍历商品数组
      if(productArr[i].getProductName()==name) {
        return productArr[i];
      }
    }
    return null;
  }
}

三、Person购物者类


//购物者类
public class Person {
  //1.定义人名字
  private String personName;
  public String getPersonName() {
    return personName;
  }
  public void setPersonName(String personName) {
    this.personName = personName;
  }
  //2.购买方法
  Product shopping(Supermarket market,String name) {//传入超市和商品名
    return market.sell(name);//调用超市类卖货方法返回结果
  }
}

四、Shopping主类


public class Shopping {
  public static void main(String[] args) {
    //1.创建商品对象
    Product p1 = new Product();
    Product p2 = new Product();
    Product p3 = new Product();
    Product p4 = new Product();
    Product p5 = new Product();
    Product p6 = new Product();
    //2.调用商品类set方法赋值
    p1.setProduct("花田果酒");
    p2.setProduct("菠萝蜜");
    p3.setProduct("百事可乐");
    p4.setProduct("乐事薯片");
    p5.setProduct("康师傅金汤肥牛面");
    p6.setProduct("红太狼专属平底锅");
    //3.创建超市对象
    Supermarket s1 = new Supermarket();
    Supermarket s2 = new Supermarket();
    Supermarket s3 = new Supermarket();
    //4.调用set赋值
    s1.setSupermaketName("家乐福");
    s1.setProductArr(new Product[] {p1,p2,p3,p4,p5,p6});
    s2.setSupermaketName("大润发");
    s2.setProductArr(new Product[] {p1,p2,p3,p4,p5,p6});
    s3.setSupermaketName("沃尔玛");
    s3.setProductArr(new Product[] {p1,p2,p3,p4,p5,p6});
    //5.创建人对象
    Person n1 = new Person();
    Person n2 = new Person();
    Person n3 = new Person();
    //6.调用set方法赋值
    n1.setPersonName("张艺兴");
    n2.setPersonName("刘德华");
    n3.setPersonName("杨幂");
    n3.shopping(s2,"杨幂");
    Product result = s2.sell("康师傅金汤肥牛面");
    if(result == null) {
      System.out.println("Emmmmmm,"+n3.getPersonName()+"逛了一圈"+s2.getSupermaketName()+"超市,居然什么也没买到");
    }else {
      System.out.println(n3.getPersonName()+"逛了一圈"+s2.getSupermaketName()+"超市后,买到了传说中的"+result.getProductName());
    }
  }
}

五、实现结果


目录
相关文章
|
Java 开发者
重学Java基础篇—Java类加载顺序深度解析
本文全面解析Java类的生命周期与加载顺序,涵盖从加载到卸载的七个阶段,并深入探讨初始化阶段的执行规则。通过单类、继承体系的实例分析,明确静态与实例初始化的顺序。同时,列举六种触发初始化的场景及特殊场景处理(如接口初始化)。提供类加载完整流程图与记忆口诀,助于理解复杂初始化逻辑。此外,针对空指针异常等问题提出排查方案,并给出最佳实践建议,帮助开发者优化程序设计、定位BUG及理解框架机制。最后扩展讲解类加载器层次与双亲委派机制,为深入研究奠定基础。
535 0
|
IDE Java 开发工具
【Java基础-环境搭建-创建项目】IntelliJ IDEA创建Java项目的详细步骤
IntelliJ IDEA创建Java项目的图文详细步骤,手把手带你创建Java项目
2099 10
【Java基础-环境搭建-创建项目】IntelliJ IDEA创建Java项目的详细步骤
|
11月前
|
存储 Java 程序员
Java 基础知识点全面梳理包含核心要点及难点解析 Java 基础知识点
本文档系统梳理了Java基础知识点,涵盖核心特性、语法基础、面向对象编程、数组字符串、集合框架、异常处理及应用实例,帮助初学者全面掌握Java入门知识,提升编程实践能力。附示例代码下载链接。
417 0
|
Java Linux
java基础(3)安装好JDK后使用javac.exe编译java文件、java.exe运行编译好的类
本文介绍了如何在安装JDK后使用`javac.exe`编译Java文件,以及使用`java.exe`运行编译好的类文件。涵盖了JDK的安装、环境变量配置、编写Java程序、使用命令行编译和运行程序的步骤,并提供了解决中文乱码的方法。
1135 2
|
12月前
|
存储 安全 Java
2025 年最新 40 个 Java 基础核心知识点全面梳理一文掌握 Java 基础关键概念
本文系统梳理了Java编程的40个核心知识点,涵盖基础语法、面向对象、集合框架、异常处理、多线程、IO流、反射机制等关键领域。重点包括:JVM运行原理、基本数据类型、封装/继承/多态三大特性、集合类对比(ArrayList vs LinkedList、HashMap vs TreeMap)、异常分类及处理方式、线程创建与同步机制、IO流体系结构以及反射的应用场景。这些基础知识是Java开发的根基,掌握后能为后续框架学习和项目开发奠定坚实基础。文中还提供了代码资源获取方式,方便读者进一步实践学习。
2869 2
|
11月前
|
数据采集 机器学习/深度学习 Java
Java 大视界 -- Java 大数据在智能体育赛事运动员体能监测与训练计划调整中的应用(200)
本篇文章聚焦 Java 大数据在智能体育赛事中对运动员体能监测与训练计划的智能化应用。通过构建实时数据采集与分析系统,结合机器学习模型,实现对运动员体能状态的精准评估与训练方案的动态优化,推动体育训练迈向科学化、个性化新高度。
|
12月前
|
存储 安全 Java
Java 基础知识面试题汇总 最全面的 Java 基础面试题整理
本文全面解析Java基础知识面试题,涵盖Java基础概念、面向对象编程、异常处理、集合框架等核心内容。通过实际应用场景,提供技术方案与应用实例,如JDK与JRE区别、==与equals()差异、String类特性、final与static关键字用法、多继承替代方案及接口与抽象类对比。帮助开发者夯实基础,高效备考,提升实战能力。附带完整代码示例,可供下载学习。
929 3
|
设计模式 缓存 Java
重学Java基础篇—Java对象创建的7种核心方式详解
本文全面解析了Java中对象的创建方式,涵盖基础到高级技术。包括`new关键字`直接实例化、反射机制动态创建、克隆与反序列化复用对象,以及工厂方法和建造者模式等设计模式的应用。同时探讨了Spring IOC容器等框架级创建方式,并对比各类方法的适用场景与优缺点。此外,还深入分析了动态代理、Unsafe类等扩展知识及注意事项。最后总结最佳实践,建议根据业务需求选择合适方式,在灵活性与性能间取得平衡。
823 3
|
Java 测试技术 开发者
💡Java 零基础:彻底掌握 for 循环,打造高效程序设计
【10月更文挑战第15天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
518 63