java对对象进行增删改查_JavaSe实现List存对象类型并增删改查

本文通过Java编程实现了一个简单的购物车管理程序,使用ArrayList存储自定义对象`Goods`,实现了商品的添加、修改价格和数量、删除及查询全部功能。在添加商品时要注意每次创建新的对象实例以避免信息覆盖。
摘要由CSDN通过智能技术生成

#用java实现简单的控制台程序,练习List集合的ArrayList使用方法,要求在list里存储的类型是自定义的对象。 这里简单写一个购物车的增删改查 首先是编写商品类啊,

package day0606;

public class Goods {

private String no;

private String name;

private double price;

private int num;

public String getNo() {

return no;

}

public void setNo(String no) {

this.no = no;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public double getPrice() {

return price;

}

public void setPrice(double price) {

this.price = price;

}

public int getNum() {

return num;

}

public void setNum(int num) {

this.num = num;

}

@Override

public String toString() {

return "Goods [no=" + no + ", name=" + name + ", price=" + price + ", num=" + num + "]";

}

}

其次是写方法类,把增删改查的方法都放到这个类中,

package day0606;

import java.util.ArrayList;

import java.util.List;

public class Car {

Goods good = new Goods();

List list = new ArrayList<>();

//添加

public void addGoods(String no,String name,double price,int num) {

Goods good = new Goods();

good.setNo(no);

good.setName(name);

good.setPrice(price);

good.setNum(num);

list.add(good);

}

//修改 价格和数量

public void updateGoods(String no,double price,int num) {

for(int i = 0;i < list.size();i ++) {

good = list.get(i);

if(good.getNo().equals(no)) {

good.setPrice(price);

good.setNum(num);

break;

}

}

}

//删除 需要编号

public void delGoods(String no) {

for(int i = 0;i < list.size();i ++) {

good = list.get(i);

if(good.getNo().equals(no)) {

list.remove(i);

break;

}

}

}

//查询 遍历

public void getGoods() {

for(Goods a:list) {

System.out.println(a);

}

}

}

最后编写含有主函数的测试类啊,把上边的方法类中的方法都实现一次,

package day0606;

import java.util.Scanner;

public class TestCar {

public void menu() {

System.out.println("***************菜单页面*******************");

System.out.println("1.添加2.修改价格和数量3.删除商品4.查询全部5.退出");

System.out.println("****************************************");

System.out.print("*请输入选择的操作:");

}

public static void main(String[] args) {

TestCar tc = new TestCar();

Car car = new Car();

Scanner sca = new Scanner(System.in);

String inputNoName,no,name;

double inputPrice,price;

int inputNum,num;

while(true) {

tc.menu();

inputNum = sca.nextInt();

switch(inputNum) {

case 1:

//添加

System.out.print("*输入要插入的编号:");

no = sca.next();

System.out.print("*输入商品名称:");

name = sca.next();

System.out.print("*输入商品价格:");

price = sca.nextDouble();

System.out.print("*输入商品数量:");

num = sca.nextInt();

car.addGoods(no,name,price,num);

System.out.println("成功添加商品");

break;

case 2:

//修改

System.out.println("*输入要修改的编号:");

no = sca.next();

System.out.print("*商品价格修改为:");

price = sca.nextDouble();

System.out.print("*商品数量修改为:");

num = sca.nextInt();

car.updateGoods(no,price,num);

break;

case 3:

//删除

System.out.print("*输入要删除的商品编号:");

no = sca.next();

car.delGoods(no);

System.out.println("成功删除!");

break;

case 4:

//查询全部商品

car.getGoods();

break;

case 5:

//退出

System.out.println("退出系统");

System.exit(0);

}

}

}

}

完成!! ps: 如果你在执行添加操作的时候发现啊,之前添加的东西都被最后一次添加的东西覆盖了,怎么办啊? 你想啊,list里每次存的都是一个商品的对象的引用名(代表对象的地址),你每次的地址都一样当然就都覆盖了,所以要做到每次添加都new一个新对象用来存储新的信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值