java学习笔记1

博客围绕订单信息展开,需定义类描述订单信息,包含订单id、所属用户、商品及金额等。根据订单总金额有不同折扣,还会依据用户vip等级进行折上折。设计了User、Product、Order类及测试类来处理订单信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

*题目描述:
定义一个类,描述订单信息
订单id
订单所属用户(用户对象)
订单所包含的商品(不定数量个商品对象)
订单总金额
订单应付金额:
总金额满1000,打折98折
总金额满2000,打折95折
总金额满3000,打折90折
在此基础上,还要看用户的vip等级
用户vip等级为:黄金vip,则折上折:98
用户vip等级为:钻石vip,则折上折:96
用户vip等级为:至尊vip,则折上折:92
这里设计四个类:
1.User类(存放用户信息)
2.Product类(存放商品信息)
3.Order类(存放订单信息)
4.测试类(对订单信息进行处理)

1. User类

package copy_day4;

public class User
{
	public String userid;
	public String username;
	public String userlevel;
	
	public User(){
		
	}
	//这是一个构造方法,在外面调用需要输入参数
	public User(String userid,String username,String userlevel){
		this.userid = userid;
		this.username = username;
		this.userlevel = userlevel;
	}
}


- 2 Product类

package day04;
/**
 * 商品类
 * @author liu-xiao-ge
 *
 */
public class Product{
	//商品ID
	public String pID;
	
	//商品名称
	public String pname;
	
	//商品价格
	public float price;
	
	//商品数量
	public int number;
	
	//构造一个空参
	public Product(){
		
	}
	
	//构造一个构造方法
	public Product(String pID,String pname,float price,int number){
		this.pID = pID;
		this.pname = pname;
		this.price = price;
		this.number = number;
	}
	
	
	
}

3. Order类

package day04;
/**
 * 订单类
 * @author liu-xiao-ge
 *
 */

import java.util.ArrayList;

public class Order{
	//订单ID
	public String orderID;
	
	//订单用户名字
	//这里创建了一个User类的变量,类似于创建一个Int类,只不过这个User
	类是我们自己写的类
	public User user;
	
	//订单所包含的商品
	//这里定义一个模板即可,不要要创建实例对象,当在外部调用时,才会创建
	//这是列表数据结构,但是里面存放的数据类型只能是Product类
	public ArrayList<Product> pdts;
	
	//订单总金额
	public float amountFee;
	
	//订单应付金额
	public float toplayfee;
	
	public void setAmountFee(){
		float sum = 0;
		for(int i = 0;i<this.pdts.size();i++){
			sum += this.pdts.get(i).price * this.pdts.get(i).number;
		}
		
		this.amountFee = sum;
	}
	
	public void settoplayfee(){
		float temp = this.amountFee;
		if(this.amountFee >= 1000 && this.amountFee <2000){
			temp = this.amountFee * 0.98f;
		}
		if(this.amountFee >= 2000 && this.amountFee < 3000){
			temp = this.amountFee * 0.95f;
		}
		if(this.amountFee >= 3000){
			temp = this.amountFee * 0.90f;
		}
		
		//根据用户等级进行打折
		if(user.viplevel.equals("黄金VIP")){
			temp = temp * 0.98f;
		}
		if(user.viplevel.equals("钻石VIP")){
			temp = temp * 0.96f;
		}
		if(user.viplevel.equals("至尊VIP")){
			temp = temp * 0.92f;
		}
		
		//把计算出的结果赋给
		this.toplayfee = temp;
		
	}

}

4. 测试类

package day04;

import java.util.ArrayList;

public class test1
{
	//函数名前加上static意味着是静态方法,即不涉及类中的变量
	public static void main(String[] args)
	{
		// TODO Auto-generated method stub
		//创建利用Order类创建实例对象,即创建一个订单,但是目前订单里信息为空
		Order o1 = new Order();
		o1.orderID = "1";
		
		//创建订单所属的用户对象
		//这里需要注意,Order类中有一个User类的对象,但是因为User类是我们自己写的,
		里面为空,所以必须先创建User类的实例对象,进而赋值给Order类中的这个属性
		User user1 = new User("1","刘谦","黄金VIP");
		o1.user = user1;
		
		//创建商品列表
		//这个属性与上一个属性一种操作方法
		ArrayList<Product> pdts = new ArrayList<Product>();
		Product p1 = new Product("p1","鞋子",18.8f,10);
		Product p2 = new Product("p2","帽子",188.8f,5);
		
		pdts.add(p1);
		pdts.add(p2);
		
		o1.pdts = pdts;
		
		//在Order对象o1上调用方法来计算
		o1.setAmountFee();
		o1.settoplayfee();
		
		System.out.print("订单总金额:"+o1.amountFee);
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值