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

所有评论(0)