什么是对象数组
是一种特殊类型的数组,其中每个数组元素都是对象的引用
查询功能
/**
* 查询所有奶茶信息
*/
public void select(){
for (int i = 0; i < milkteas.length; i++) {//遍历数组中的所有数据
Milktea m=milkteas[i];//用m把数组接收
if (milkteas[i]!=null){//如果数组不为空就输出
System.out.println("id:"+m.id+"\t奶茶名称:"+m.MilkteaName+ "\t奶茶说明:"+m.MilkteaStrate+
"\t奶茶价格:"+m.MilkteaPrice+"\t销量:"+m.Sales+"\t原料:"+m.rawMaterial);
}
}
}
新增功能
/**
* 增加奶茶信息
* @param addM 新增数据的参数
* @return 判断是否新增成功
*/
public boolean insert(Milktea addM){
for (int i = 0; i < milkteas.length; i++) {
if (milkteas[i]==null){//如果数组为空
milkteas[i]=addM;//就把新增数据赋值给数组
return true;
}
}
return false;
}
修改功能
/**
* 根据id修改奶茶销量
* @param id id参数
* @param Sales 销量参数
* @return 判断是否修改成功
*/
public boolean update(int id,int Sales){
for (int i = 0; i < milkteas.length; i++) {
if (milkteas[i]!=null){
if (milkteas[i].id==id){//如果数组id等于传参id
milkteas[i].Sales=Sales;//就把销量赋值给数组销量
return true;
}
}
}
return false;
}
删除功能
/**
* 根据id删除奶茶信息
* @param id id参数
* @return 判断是否删除成功
*/
public boolean delete(int id){
for (int i = 0; i < milkteas.length; i++) {
if (milkteas[i]!=null){
if (milkteas[i].id==id){//如果数组id等于传参id
milkteas[i]=null;//就把数组赋值为空
return true;
}
}
}
return false;
}
id自增功能
ps:id自增就是把新增的数据放在删除信息后的位置上,实现完整的id顺序
例如(5个数据):
1,2,3,4,5
没有自增功能删除某个数据新增后:
1,2,4,5
有自增功能删除某个数据新增后:
1,2,3,4
if (m.milkteas[i]!=null&&m.milkteas[i].id!=i+1){
m.milkteas[i].id=i+1;
}
自动排序功能
ps:就是删除一个数据后,没有排序功能新增后新增的数据会新增在被删除数据的位置上,有了这个功能新增的数据就会乖乖排在最后面!
for (int i = 0; i < m.milkteas.length; i++) {
if (m.milkteas[i]==null){
for (int i1 = i+1; i1 < m.milkteas.length; i1++) {
if (m.milkteas[i1]!=null){
m.milkteas[i]=m.milkteas[i1];
m.milkteas[i1]=null;
break;
}
}
}
完整代码
public class Milktea {
int id;
String MilkteaName;
String MilkteaStrate;
int MilkteaPrice;
int Sales;
String rawMaterial;
Milktea[] milkteas=new Milktea[6];
public void show(){
Milktea m=new Milktea();
m.id=1;
m.MilkteaName="草莓椰奶露";
m.MilkteaStrate="草莓正当季,自然甜蜜蜜";
m.MilkteaPrice=7;
m.Sales=120;
m.rawMaterial="草莓";
milkteas[0]=m;
Milktea m2=new Milktea();
m2.id=2;
m2.MilkteaName="芝士奶盖咖啡";
m2.MilkteaStrate="芝士咖啡,香浓加倍";
m2.MilkteaPrice=8;
m2.Sales=50;
m2.rawMaterial="咖啡";
milkteas[1]=m2;
Milktea m3=new Milktea();
m3.id=3;
m3.MilkteaName="珍珠奶茶";
m3.MilkteaStrate="珍珠Q弹,奶茶经典";
m3.MilkteaPrice=6;
m3.Sales=240;
m3.rawMaterial="珍珠";
milkteas[2]=m3;
Milktea m4=new Milktea();
m4.id=4;
m4.MilkteaName="满杯百香果";
m4.MilkteaStrate="酸酸甜甜满杯香";
m4.MilkteaPrice=8;
m4.Sales=30;
m4.rawMaterial="百香果";
milkteas[3]=m4;
Milktea m5=new Milktea();
m5.id=5;
m5.MilkteaName="芋圆葡萄";
m5.MilkteaStrate="葡萄酸酸甜甜,芋圆QQ弹";
m5.MilkteaPrice=8;
m5.Sales=100;
m5.rawMaterial="葡萄";
milkteas[4]=m5;
}
/**
* 查询所有奶茶信息
*/
public void select(){
for (int i = 0; i < milkteas.length; i++) {//遍历数组中的所有数据
Milktea m=milkteas[i];//用m把数组接收
if (milkteas[i]!=null){//如果数组不为空就输出
System.out.println("id:"+m.id+"\t奶茶名称:"+m.MilkteaName+ "\t奶茶说明:"+m.MilkteaStrate+
"\t奶茶价格:"+m.MilkteaPrice+"\t销量:"+m.Sales+"\t原料:"+m.rawMaterial);
}
}
}
/**
* 增加奶茶信息
* @param addM 新增数据的参数
* @return 判断是否新增成功
*/
public boolean insert(Milktea addM){
for (int i = 0; i < milkteas.length; i++) {
if (milkteas[i]==null){//如果数组为空
milkteas[i]=addM;//就把新增数据赋值给数组
return true;
}
}
return false;
}
/**
* 根据id修改奶茶销量
* @param id id参数
* @param Sales 销量参数
* @return 判断是否修改成功
*/
public boolean update(int id,int Sales){
for (int i = 0; i < milkteas.length; i++) {
if (milkteas[i]!=null){
if (milkteas[i].id==id){//如果数组id等于传参id
milkteas[i].Sales=Sales;//就把销量赋值给数组销量
return true;
}
}
}
return false;
}
/**
* 根据id删除奶茶信息
* @param id id参数
* @return 判断是否删除成功
*/
public boolean delete(int id){
for (int i = 0; i < milkteas.length; i++) {
if (milkteas[i]!=null){
if (milkteas[i].id==id){//如果数组id等于传参id
milkteas[i]=null;//就把数组赋值为空
return true;
}
}
}
return false;
}
}
测试类------------》含菜单功能
import java.util.Scanner;
public class MilkteaTest {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
String isok;
Milktea m=new Milktea();
m.show();
do {
for (int i = 0; i < m.milkteas.length; i++) {
if (m.milkteas[i]==null){
for (int i1 = i+1; i1 < m.milkteas.length; i1++) {
if (m.milkteas[i1]!=null){
m.milkteas[i]=m.milkteas[i1];
m.milkteas[i1]=null;
break;
}
}
}
if (m.milkteas[i]!=null&&m.milkteas[i].id!=i+1){
m.milkteas[i].id=i+1;
}
}
System.out.println("==========欢迎来到蜜雪冰城信息管理系统=========");
System.out.println("1.查询所有奶茶信息");
System.out.println("2.增加奶茶信息");
System.out.println("3.根据id修改奶茶销量");
System.out.println("4.根据id删除奶茶信息");
System.out.println("5.退出");
System.out.println("请选择:");
int num=input.nextInt();
if (num==1){
m.select();//调用查询方法
}else if (num==2){
System.out.println("请输入新增的id:");
m.id=input.nextInt();
System.out.println("请输入奶茶名称:");
m.MilkteaName=input.next();
System.out.println("请输入奶茶说明:");
m.MilkteaStrate=input.next();
System.out.println("请输入奶茶价格:");
m.MilkteaPrice=input.nextInt();
System.out.println("请输入销量:");
m.Sales=input.nextInt();
System.out.println("请输入原料:");
m.rawMaterial=input.next();
boolean addIsok=m.insert(m);//调用新增方法
if (addIsok){
System.out.println("新增成功!");
}else {
System.out.println("新增失败!");
}
}else if (num==3){
System.out.println("请输入修改的奶茶id:");
m.id=input.nextInt();
boolean upIsok=m.update(m.id,m.Sales);//调用修改方法
if (upIsok){
System.out.println("请输入修改后的奶茶销量:");
m.Sales=input.nextInt();
m.update(m.id,m.Sales);
System.out.println("修改成功!");
}else {
System.out.println("修改失败!");
}
}else if (num==4){
System.out.println("请输入删除的奶茶id:");
m.id=input.nextInt();
boolean delIsok=m.delete(m.id);//调用删除方法
if (delIsok){
System.out.println("删除成功!");
}else {
System.out.println("删除失败!");
}
}else if (num==5){
System.out.println("已退出系统!");
return;
}
System.out.println("是否继续?(y/n)");
isok=input.next();
}while (isok.equals("y"));
}
}
温馨提示:不管看没看懂都要上手敲代码,懂了敲一遍能印象深刻知道它每一步的具体作用,没懂的话跟着代码敲完一步运行一步慢慢的就会懂了,最重要的还是实操。
创作不易请不要吝啬小心心哟!