Java基础语法6(类与对象)
从设计一个“扫清购物车”的初步程序来理解与运用类与对象类与对象的定义类的定义对象的创建设计“扫清购物车”程序类与对象的定义1.类 class 类别的意思一个类别的模版也是一种数据类型(复合型数据类型)可以包含一组数据变量以及可复用的代码结构比如说学生类别( 姓名 年龄 学号 班级 学分 | 查看信息 学习 考试)2.对象 object 实例 具体的事物在程序中是一个数据体的形式类的定义格式 public class 类名{ }1/成员内容/属性 这个类别都有的数据信息有哪些 使用变量表示/格式 属性的数据类型 属性变量名;2/方法 这个类别都有的行为、功能需要一段代码结构表示/格式public void 方法名(){ // 逻辑代码 }Java代码演示如下packageyfw0618;importjava.util.Random;publicclassBlog4{//属性:账号 密码 电话 地址 余额 购物车商品数量 已购买数量StringuserName;intpassword;intphoneName;Stringaddress;doublemoney;intshopperNumber;intbuyNumber;//方法显示信息publicvoidshowInfo(){System.out.println(用户基础信息);System.out.println(账号userName);System.out.println(密码password);System.out.println(电话phoneName);System.out.println(地址address);System.out.println(余额money);System.out.println(购物车商品数量shopperNumber);System.out.println(已购买商品数量buyNumber);}//方法购物金额与支付若购物金额大于钱包余额输出“无法购买,已帮您加入购物车”否则自动购买publicvoidshop(){RandomrannewRandom();intpriceran.nextInt(1001);if(pricemoney){System.out.println(无法购买,已帮您加入购物车);shopperNumber1;}else{money-price;System.out.println(userName花费了price元购买了一件商品,余额剩余money元);buyNumber1;}}}对象的创建1.本质 使用自己定义的类创建变量这种变量叫做对象变量对象变量中包含一组属性数据以及可以调用的方法格式 类名 对象变量名 new 类名();2.对象调用属性格式对象变量名.属性名值;3.对象调用方法格式: 对象变量名.方法名();4.总结1每个对象都有自己的一份数据体自己的一份属性对象作为主体调用它的数据变量和方法。2不同的对象调用同一个方法时方法中使用的属性就是调用者的设计“扫清购物车”程序理解逻辑1.扫清购物车我们首先需要创建一个心爱的idea在这个idea中我们需要创建user这个类在这个类中定义属性。比如说账号密码电话用户地址用户余额购物车商品数量用户已购买的数量。2.其次我们要定义方法1其中一个方法需要显示出用户的基本信息即将我们上面提到的信息全部展现给用户2另一个方法就是当用户余额不够无法购买应该怎么办3.至于程序我们首先需要判断是否有该用户。有用户的话进入下一步没有该用户信息的话直接退出登录4.在有用户的基础上判断用户输入的密码是否正确不正确重新输入正确进入下一步。这里需要用到很多的if…else语句同时还要运用到一个新的库randomRandom库的调用方法和Scanner库调用方法是一样的都是首先初始化库然后再将库导入其中。不过值得注意的是random库需要控制random的范围即在int pricerandom. nextInt中需要输入1000或其他数字输入完毕后系统会在1000或其他数字前面自动补充bound为了简化程序我们只设定用户中只有张三一个人接下来我们需要开始主体部分即扫清购物车1.首先第一件事就是要判断购物车中商品数量有多少个。如果购物车中有商品判断用户是否需要清空购物车2.接下来判断清空购物车的账号余额是否足够。足够的话清空购物车同时将账号余额减去付的钱数再将已购买的数量增加未购买的数量清零不够的话询问用户是否需要充值金额未充值金额进入用户大厅需要充足金额则自动清除购物车Java代码演示如下packageyfw0710;importjava.util.Random;importjava.util.Scanner;publicclassUser{//属性:账号 密码 电话 地址 余额 购物车商品数量 已购买数量StringuserName;intpassword;intphoneName;Stringaddress;doublemoney;intshopperNumber;intbuyNumber;//方法publicvoidshowInfo(){System.out.println(用户基础信息);System.out.println(账号userName);System.out.println(密码password);System.out.println(电话phoneName);System.out.println(地址address);System.out.println(余额money);System.out.println(购物车商品数量shopperNumber);System.out.println(已购买商品数量buyNumber);}//方法publicvoidshop(){RandomrannewRandom();intpriceran.nextInt(1001);if(pricemoney){System.out.println(无法购买,已帮您加入购物车);shopperNumber1;}else{money-price;System.out.println(userName花费了price元购买了一件商品,余额剩余money元);buyNumber1;}}//程序staticvoidmain(){Useruser1newUser();Scannersc1newScanner(System.in);RandomrandomnewRandom();intpricerandom.nextInt(1000);System.out.println(请输入用户名);Stringusernamesc1.next();if(张三.equals(username)){System.out.println(请输入账号密码);intpassword_allsc1.nextInt();if(password_all123456){System.out.println(用户张三您好);user1.userNamezhangsan123456;user1.password123456;user1.phoneName130;user1.addressqq.com123456;user1.shopperNumber5;user1.buyNumber0;user1.money2500;user1.showInfo();if(user1.shopperNumber0){System.out.println(监测到您的购物车中有user1.shopperNumber件商品请问您是否需要清空购物车(true/false));booleananswersc1.nextBoolean();if(answer){System.out.println(价格为price*user1.shopperNumber);if(price*user1.shopperNumberuser1.money){System.out.println(无法清除购物车);System.out.println(请问是否需要充值(price*user1.shopperNumber-user1.money)元(true/false));booleananswer_money_addsc1.nextBoolean();if(answer_money_add){System.out.println(充值成功正在扫清购物车中);System.out.println(扫清购物车成功);user1.money0;user1.buyNumberuser1.buyNumberuser1.shopperNumber;user1.shopperNumber0;user1.showInfo();}else{System.out.println(正在进入购物大厅中);}}else{System.out.println(清除购物车成功);user1.money-price*user1.shopperNumber;user1.buyNumberuser1.buyNumberuser1.shopperNumber;user1.shopperNumber0;user1.showInfo();}}else{System.out.println(正在进入购物大厅中);}}else{System.out.println(正在进入购物大厅中);}}else{System.out.println(密码错误请重输);}}else{System.out.println(未识别到用户);}}}结果运行如下请输入用户名 张三 请输入账号密码123456用户张三您好用户基础信息账号zhangsan123456 密码123456电话130地址qq.com123456 余额2500.0购物车商品数量5已购买商品数量0监测到您的购物车中有5件商品请问您是否需要清空购物车(true/false)true价格为2470清除购物车成功用户基础信息账号zhangsan123456 密码123456电话130地址qq.com123456 余额30.0购物车商品数量0已购买商品数量5进程已结束退出代码为0或是请输入用户名 张三 请输入账号密码123456用户张三您好用户基础信息账号zhangsan123456 密码123456电话130地址qq.com123456 余额2500.0购物车商品数量5已购买商品数量0监测到您的购物车中有5件商品请问您是否需要清空购物车(true/false)true价格为3905无法清除购物车 请问是否需要充值1405.0元(true/false)true充值成功正在扫清购物车中 扫清购物车成功用户基础信息账号zhangsan123456 密码123456电话130地址qq.com123456 余额0.0购物车商品数量0已购买商品数量5进程已结束退出代码为0

相关新闻

C语言单链表:带头/不带头节点 2种初始化与4种插入操作性能对比

C语言单链表:带头/不带头节点 2种初始化与4种插入操作性能对比

C语言单链表设计:带头节点与不带头节点的工程实践与性能抉择在数据结构的世界里,单链表作为最基础的链式存储结构,其设计决策直接影响着代码的健壮性和执行效率。对于C语言开发者而言,是否在单链表中使用头节点(又称哨…

2026/7/12 4:24:53 阅读更多 →
【AI 工具】ChatGPT Work 和 Codex 到底啥区别?90% 的人都选错了模式

【AI 工具】ChatGPT Work 和 Codex 到底啥区别?90% 的人都选错了模式

哈喽大家好,我是謓泽。最近 OpenAI 新上线的这俩 Agent 模式 —— Work 和 Codex,后台好多同学私信问我,说看着都是长任务智能体,到底有啥不一样?自己该用哪个?说真的,我刚出来的时候也研究了好…

2026/7/12 4:18:46 阅读更多 →
AI for Good实践解析:Apollo Go、Miaoda  MeDo、PaddlePaddle技术架构与工程落地

AI for Good实践解析:Apollo Go、Miaoda MeDo、PaddlePaddle技术架构与工程落地

在实际 AI 应用开发领域,如何将前沿技术真正落地到解决社会实际问题,是衡量技术价值的重要标准。百度三项 AI 应用——Apollo Go、Miaoda & MeDo、PaddlePaddle 在文化遗产保护、城市交通和软件开发领域的实践,近期获得了 AI for Good 全…

2026/7/12 4:16:45 阅读更多 →

最新新闻

Unity VR动画过渡实战:从状态机到意图驱动,打造沉浸式交互体验

Unity VR动画过渡实战:从状态机到意图驱动,打造沉浸式交互体验

1. 项目概述:为什么VR中的动画过渡是“魔鬼细节”?做VR开发这些年,我有个深刻的体会:一个VR项目能不能让用户沉浸进去,往往不取决于你的场景有多宏大、特效有多炫酷,而在于那些最基础的交互反馈是否“跟手”…

2026/7/12 5:17:09 阅读更多 →
瑞萨CS+ for CC中断向量配置详解:以UART0接收为例的3处关键修改

瑞萨CS+ for CC中断向量配置详解:以UART0接收为例的3处关键修改

瑞萨CS for CC中断向量配置实战:UART0接收中断的黄金三步骤当你在瑞萨RH850项目中第一次尝试配置UART接收中断时,是否遇到过这样的困境——明明按照手册修改了寄存器,但中断就像石沉大海毫无反应?问题的根源往往不在外设配置本身&…

2026/7/12 5:17:09 阅读更多 →
L9958与STM32F429NI在电机控制中的优化应用

L9958与STM32F429NI在电机控制中的优化应用

1. L9958与STM32F429NI的黄金组合解析在工业自动化与精密控制领域,电机驱动性能直接决定了整个系统的响应速度、定位精度和运行稳定性。L9958作为意法半导体(ST)推出的多通道H桥驱动芯片,与STM32F429NI这款基于ARM Cortex-M4内核的高性能MCU的组合&#…

2026/7/12 5:15:08 阅读更多 →
LangGraph多智能体AI应用开发:从工作流原理到生产实践

LangGraph多智能体AI应用开发:从工作流原理到生产实践

1. 先搞清楚LangGraph到底解决什么问题如果你正在构建需要多步骤协作的AI应用,比如客服系统需要先理解问题、再查资料、最后生成回答,或者数据分析需要多个专业模型接力处理,那么LangGraph就是为你准备的。传统的AI开发有个痛点:每…

2026/7/12 5:15:08 阅读更多 →
Tg纸飞机即时通讯协议中的验证码安全机制研究

Tg纸飞机即时通讯协议中的验证码安全机制研究

👉👉👉典我起飞,八六也可以👈👈👈 分析主流 IM 协议的验证码投递策略与风控模型设计。 一、验证码机制概述 即时通讯系统的用户认证通常采用多因素验证,验证码作为"你知道的东…

2026/7/12 5:13:08 阅读更多 →
常年在门店消费的省钱方案盘点:从会员积分到排队赠送玩法

常年在门店消费的省钱方案盘点:从会员积分到排队赠送玩法

作为每天都要在公司楼下商圈解决三餐的程序员,我算过一笔账:按每天三顿饭平均70元算,一个月在餐饮门店花的钱至少2000起。之前试过攒积分、抢平台优惠券,要么兑换门槛高要么限时段用,折腾半天省不了几十块。直到最近半…

2026/7/12 5:13:08 阅读更多 →

日新闻

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨 在一个阳光明媚的上午,互联网大厂的面试官坐在桌前,准备迎接他的面试候选人——燕双非,一个以搞笑和幽默著称的程序员。第一轮提问 面试官:燕双非,作…

2026/7/12 0:03:13 阅读更多 →
车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估在智能驾驶和车联网技术快速发展的今天,车载以太网作为新一代车载网络的核心传输技术,其物理层性能直接决定了数据传输的可靠性和稳定性。1000BASE-T1作为当前主流的…

2026/7/12 0:03:14 阅读更多 →
VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战指南嵌入式开发领域正经历一场工具链的静默革命。当传统Keil用户首次打开VSCode的扩展市场搜索EIDE时,往往会惊讶于这个看似简单的插件竟能重构十余年的开发习惯。本文将揭示如何用五个精准步骤&#xff0…

2026/7/12 0:03:14 阅读更多 →

周新闻

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨 在一个阳光明媚的上午,互联网大厂的面试官坐在桌前,准备迎接他的面试候选人——燕双非,一个以搞笑和幽默著称的程序员。第一轮提问 面试官:燕双非,作…

2026/7/12 0:03:13 阅读更多 →
车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估在智能驾驶和车联网技术快速发展的今天,车载以太网作为新一代车载网络的核心传输技术,其物理层性能直接决定了数据传输的可靠性和稳定性。1000BASE-T1作为当前主流的…

2026/7/12 0:03:14 阅读更多 →
VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战指南嵌入式开发领域正经历一场工具链的静默革命。当传统Keil用户首次打开VSCode的扩展市场搜索EIDE时,往往会惊讶于这个看似简单的插件竟能重构十余年的开发习惯。本文将揭示如何用五个精准步骤&#xff0…

2026/7/12 0:03:14 阅读更多 →

月新闻