【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());
    }
  }
}

五、实现结果


目录
相关文章
|
3天前
|
Java Linux
java基础(3)安装好JDK后使用javac.exe编译java文件、java.exe运行编译好的类
本文介绍了如何在安装JDK后使用`javac.exe`编译Java文件,以及使用`java.exe`运行编译好的类文件。涵盖了JDK的安装、环境变量配置、编写Java程序、使用命令行编译和运行程序的步骤,并提供了解决中文乱码的方法。
17 1
|
1月前
|
Java 编译器 C++
【Java基础面试一】、为什么Java代码可以实现一次编写、到处运行?
这篇文章解释了Java能够实现“一次编写,到处运行”的原因,主要归功于Java虚拟机(JVM),它能够在不同平台上将Java源代码编译成的字节码转换成对应平台的机器码,实现跨平台运行。
【Java基础面试一】、为什么Java代码可以实现一次编写、到处运行?
|
1月前
|
Java
【Java基础面试四】、介绍一下Java的数据类型
这篇文章介绍了Java的数据类型,包括8种基本数据类型(整数、浮点、字符、布尔)和3类引用数据类型(数组、类、接口),并提供了基本数据类型所占内存空间和数据范围的详细信息。
|
1月前
|
前端开发 Java 编译器
【前端学java】java基础练习缺少项目?看这篇文章就够了!(完结)
【8月更文挑战第11天】java基础练习缺少项目?看这篇文章就够了!(完结)
33 0
|
14天前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
160 37
|
14天前
|
安全 Java API
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
String常量池、String、StringBuffer、Stringbuilder有什么区别、List与Set的区别、ArrayList和LinkedList的区别、HashMap底层原理、ConcurrentHashMap、HashMap和Hashtable的区别、泛型擦除、ABA问题、IO多路复用、BIO、NIO、O、异常处理机制、反射
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
|
14天前
|
缓存 安全 Java
【Java面试题汇总】Java基础篇——基础、修饰符和关键字(2023版)
Java的特点和优点,、Java 8的新特性、面向对象、基本数据类型和引用类型、自动拆装箱与自动装箱、==与equals()的区别、为什么重写equals()就要重写hashcode()、抽象类和接口的区别、重载和重写的区别、四种引用方式、wt()和sleep()的区别、java方法是值传递还是引用传递?访问修饰符、static、final、this和super、volatile的用法及原理
【Java面试题汇总】Java基础篇——基础、修饰符和关键字(2023版)
|
1月前
|
Java C++
【Java基础面试十七】、Java为什么是单继承,为什么不能多继承?
这篇文章讨论了Java单继承的设计原因,指出Java不支持多继承主要是为了避免方法名冲突等混淆问题,尽管Java类不能直接继承多个父类,但可以通过接口和继承链实现类似多继承的效果。
【Java基础面试十七】、Java为什么是单继承,为什么不能多继承?
|
1月前
|
Java
【Java基础面试三】、说一说你对Java访问权限的了解
这篇文章介绍了Java中的四种访问权限:private、default(无修饰符时的访问权限)、protected和public,以及它们分别在修饰成员变量/方法和类时的不同访问级别和规则。
【Java基础面试三】、说一说你对Java访问权限的了解
|
1月前
|
缓存 前端开发 Java
【前端学java】java基础巩固复习巩固语法练习-工具类的封装(14)
【8月更文挑战第10天】java基础巩固,工具类的封装
19 1
【前端学java】java基础巩固复习巩固语法练习-工具类的封装(14)