抽象轻松java

news2024/11/23 20:27:27

嗨嗨嗨!

没想到吧,出现了抽象轻松第4种语言系列(我也没想到)

简单的java程序,看完就懂的简单逻辑——购物车系统

购物车,首先要有商品吧,现实中的商品有什么属性?

名字,价格,数量,编码等等

知道了这些属性,就应该考虑用什么来存放它们!

是整数型?是浮点型?是对象?还是数组?

很显然,数组就成了我们的首选!

声明一个数组,用来存放商品的属性

购物车系统包括了增删改查结算5个功能,除了这五个功能还有一个首页选择功能

也就是说,一个购物车系统包括了6个功能,通过选择进入剩下的五个模块

开始编写,为了照顾情绪,我们先做一件特别简单的事

public class GoodsShop {
    public static void main(String[] args) {
        System.out.println("欢迎来到购物车管理系统");
    }
}

没错,先简单的输出一句话

定义一个类,用来存放商品对象

class obj {
    String name;//商品名
    int numb;//商品数量
    int id;//商品编码
    double money;//商品价格

}

商品的属性有了,该用车子装起来了吧,声明数组

        System.out.println("欢迎来到购物车管理系统");
        obj [] arr = new obj[50];//obj[50]为购物车的数量上限

又因为我们的商品对象和测试类不在一起,所以想要使用obj类里面的方法是需要调用的

加上我们要输入内容,随便也把Scanner一起调用

        System.out.println("欢迎来到购物车管理系统");
        obj [] arr = new obj[50];//obj[50]为购物车的数量上限
        obj obj = new obj();//调用obj
        Scanner scanner = new Scanner(System.in);//输入

基础的工作做完了,改进入功能的编写了

第一个功能编写,选择页面,我们使用循环输入值,通过判断,进入对应的方法

循环有三个:do...while , while ,for

选择语句,if ,if...else ,switch

因为运行完一个功能就要跳回改页面,为了简单可以用while

选择语句,总不可能写5个if...else吧,但是如果你愿意还是可以写5个的,因为他们有相同的逻辑

使用switch()选择会更加的简单

while (true) {
            System.out.println("输入1进入增加页面");
            System.out.println("输入2进入查看页面");
            System.out.println("输入3进入修改页面");
            System.out.println("输入4进入删除页面");
            System.out.println("输入5进入结算页面");
            double shuzi = scanner.nextDouble();

            switch ((int) shuzi) {
                case 1 : obj.add();break;//调用增
                case 2 : obj.cha();break;//调用查
                case 3 : obj.del();break;//调用删
                case 4 : obj.gai();break;//调用改
                case 5 : obj.sum();break;//调用结算
                default:
                System.out.println("请重新输入");
            }
        }

现在代码就变成这样了,调用要有方法原型吧,在类里面把方法写入

class obj {
    String name;//商品名
    int numb;//商品数量
    int id;//商品编码
    double money;//商品价格

    public static void add(){
        System.out.println("欢迎来到增加页面");
    }
    public static void cha(){
        System.out.println("欢迎来到查看商品页面");
    }
    public static void del(){
        System.out.println("欢迎来到删除页面");
    }
    public static void gai(){
        System.out.println("欢迎来到修改页面");
    }
    public static void sum(){
        System.out.println("欢迎来到结算页面");
    }
}

到了这里就先停下来了

先完成大体的框架

import java.util.Scanner;

public class GoodsShop {
    public static void main(String[] args) {
        System.out.println("欢迎来到购物车管理系统");
        obj [] arr = new obj[50];//obj[50]为购物车的数量上限
        obj obj = new obj();//调用obj
        Scanner scanner = new Scanner(System.in);//输入

        while (true) {
            System.out.println("输入1进入增加页面");
            System.out.println("输入2进入查看页面");
            System.out.println("输入3进入修改页面");
            System.out.println("输入4进入删除页面");
            System.out.println("输入5进入结算页面");
            double shuzi = scanner.nextDouble();

            switch ((int) shuzi) {
                case 1 : obj.add();break;//调用增
                case 2 : obj.cha();break;//调用查
                case 3 : obj.del();break;//调用删
                case 4 : obj.gai();break;//调用改
                case 5 : obj.sum();break;//调用结算
                default:
                System.out.println("请重新输入");
            }
        }
    }
}

class obj {
    String name;//商品名
    int numb;//商品数量
    int id;//商品编码
    double money;//商品价格

    public static void add(){
        System.out.println("欢迎来到增加页面");
    }
    public static void cha(){
        System.out.println("欢迎来到查看商品页面");
    }
    public static void del(){
        System.out.println("欢迎来到删除页面");
    }
    public static void gai(){
        System.out.println("欢迎来到修改页面");
    }
    public static void sum(){
        System.out.println("欢迎来到结算页面");
    }
}

你的每一次输入,都会进入不同的页面

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1044418.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaSE 基础(十三)网络编程

1. 概述 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。 网络编程主要工作是在发…

基于ModebusRTU通信采集温度湿度项目案例

目录 一、模拟温湿度模拟 【1.1】温湿度仪表参数 【1.1】使用电脑模拟传感器 【1.2】使用Codesys软件模拟传感器 二、自定义控件UI设计 【2.1】自定义控件温度湿度柱状设计 ​编辑 【2.1.1】设置温度湿度柱状实际显示【属性】 【2.1.2】设置温度湿度柱状的背景颜色【属…

工具篇 | Gradle入门与使用指南 - 附Github仓库地址

介绍 1.1 什么是Gradle? Gradle是一个开源构建自动化工具,专为大型项目设计。它基于DSL(领域特定语言)编写,该语言是用Groovy编写的,使得构建脚本更加简洁和强大。Gradle不仅可以构建Java应用程序&#x…

用AI解决量子学问题

3 人工智能用于量子力学 在这一部分中,我们提供了有关如何设计高级深度学习方法以有效学习神经波函数的技术评述。在第3.1节中,我们概述了一般情况下定义和解决量子多体问题的方法。在第3.2节中,我们介绍了学习量子自旋系统基态的方法。在第…

Python3操作SQLite3创建表主键自增长|CRUD基本操作

Python3操作MySQL8.XX创建表|CRUD基本操作 Python3操作SQLite3创建表主键自增长|CRUD基本操作 一: SQLite3创建表时主键自增长 1: sqlite支持建立自增主键 create table t_user (id integer primary key autoincrement,age int(2), name varchar(10),address varchar(100) )…

YOLOv5、YOLOv8改进:ConvNeXt(backbone改为ConvNextBlock)

目录 1.介绍 2. YOLOv5修改backbone为ConvNeXt 2.1修改common.py 2.2 修改yolo.py 2.3修改yolov5.yaml配置 1.介绍 论文地址:https://arxiv.org/abs/2201.03545官方源代码地址:https://github.com/facebookresearch/ConvNeXt.git 自从ViT(Vision T…

Linux 权限相关例题练习

目录 一、前期准备工作: 1)新建redhat用户 2)新建testdir目录及其file1 二、例题详解 1、当用户redhat对/testdir目录无写权限时,该目录下的只读文件file1是否可修改和删除? 2、复制/etc/fstab文件到/var/tmp下&…

C++11之新的类功能

这里写目录标题 新的类功能默认成员函数类成员变量初始化强制生成默认函数的关键字default禁止生成默认函数的关键字deletefinal与override关键字override 新的类功能 默认成员函数 原来C类中,有6个默认成员函数: 构造函数析构函数拷贝构造函数拷贝赋…

Spring学习笔记13 Spring对事务的支持

Spring学习笔记12 面向切面编程AOP-CSDN博客 什么是事务:在一个业务流程当中,通常需要多条DML(insert delete update)语句共同联合才能完成,这多条DML语句必须同时成功,或者同时失败,这样才能保证数据的安全. 多条DML要么同时成功,要么同时失败,叫做事务(Transaction) 事务四…

安防视频平台EasyCVR视频调阅全屏播放显示异常是什么原因?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

Apache DolphinScheduler在中国信通院“2023 OSCAR开源尖峰案例”评选中荣获「尖峰开源项目奖」!

在近日由中国信息通信研究院(以下简称“中国信通院”)和中国通信标准化协会联合主办的“2023 OSCAR 开源产业大会”上,主办方公布了 2023 年“OSCAR 开源尖峰案例”评选结果,包括“开源人物”“开源项目”“开源社区”“开源企业”…

python+vue实验室课程预约管理系统

实验室课程管理系统运用计算机完成数据收集、查询、修改和删除以及统计等工作,提高了管理者工作效率,避免了因信息量巨大,造成的人为错误.通过前面的功能分析可以将实验室课程管理系统的功能分为管理员、学生和教师三个部分&#…

Linux高性能服务器编程 学习笔记 第八章 高性能服务器程序框架

TCP/IP协议在设计和实现上没有客户端和服务器的概念,在通信过程中所有机器都是对等的。但由于资源(视频、新闻、软件等)被数据提供者所垄断,所以几乎所有网络应用程序都采用了下图所示的C/S(客户端/服务器)…

LeetCode_BFS_中等_1926.迷宫中离入口最近的出口

目录 1.题目2.思路3.代码实现(Java) 1.题目 给你一个 m x n 的迷宫矩阵 maze (下标从 0 开始),矩阵中有空格子(用 ‘.’ 表示)和墙(用 ‘’ 表示)。同时给你迷宫的入口 …

电脑提示vcruntime140.dll缺失重新安装的修复方法

电脑出现 vcruntime140.dll 丢失的情况,通常是由于系统缺失了 Microsoft Visual C Redistributable 的运行库文件。这个文件是许多应用程序在运行时所需的依赖库,如果丢失了该文件,可能会导致某些软件无法正常运行。 下面是关于 vcruntime140…

免费录音软件推荐,告别杂音,音质更清晰!

“求推荐一款免费的录音软件!最近下载了好多的录音软件,不是音质太差,就是需要收费解锁新的功能,根本不好用,有没有人知道一款免费优秀的录音软件呀,告诉我一下。” 录音已成为现代人们学习和工作中的一项…

DataExcel控件读取和保存excel xlsx 格式文件

需要引用NPOI库 https://github.com/dotnetcore/NPOI 调用Read 函数将excel读取到dataexcel控件 调用Save 函数将dataexcel控件文件保存为excel文件 using NPOI.HSSF.UserModel; using NPOI.HSSF.Util; using NPOI.SS.UserModel; using NPOI.SS.Util; using System; using …

pytho实例--pandas读取表格内容

前言:由于运维反馈帮忙计算云主机的费用,特编写此脚本进行运算 如图,有如下excel数据 计算过程中需用到数据库中的数据,故封装了一个读取数据库的类 import MySQLdb from sshtunnel import SSHTunnelForwarderclass SSHMySQL(ob…

Java BigDecimal 详解

目录 一、BigDecimal 1、简介 2、构造器描述 3、方法描述 4、使用 一、BigDecimal float和double类型的主要设计目标是为了科学计算和工程计算。他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的。然而,它…

25841-2017 1000kV电力系统继电保护技术导则

声明 本文是学习GB-T 25841-2017 1000kV电力系统继电保护技术导则. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了交流1000 kV 系统及1000 kV 变电站相关电压等级具有特别要求的继电保护装置 的基本准则。 本标准适用于1000 k…