文章目录
- 1、项目介绍
- 2、程序主要类
- 3、主要操作
- 4、UML类图
- 5、总结与心得
1、项目介绍
该项目(大作业)为构思一个宠物店,用Java语言实现,体现面向对象思想。
基本要求为:
1、体现面向对象特性:封装,继承,多态
2、体现代码规范
3、体现用户友好性(对用户输入做规范化处理)
4、利用Java集合类完成增删改查功能
同时绘制UML类图,这里我使用的的亿图图示工具绘制的UML类图
2、程序主要类
宠物店的宠物都是动物,我们可以设置一个抽象类Animal作为父类,然后把宠物店的其他宠物作为子类,如猫,狗等作为子类,然后再设置一个顾客类来执行相关的操作,最后在测试类中进行测试。
以下是作为抽象父类的Animal类:
//动物类
public abstract class Animal {
//定义名字,年龄,颜色
private String name;
private int age;
private String color;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() { return age; }
public void setAge(int age) { this.age = age;}
public String getColor() { return color; }
public void setColor(String color) { this.color = color;}
public Animal() {}
public Animal(String name, int age,String color) {
this.name = name;
this.age = age;
this.color = color;
}
}
以下两个是作为子类的部分代码截图
//子类猫类
public class Cat extends Animal {
public Cat(){}
public Cat(String name,int age,String color){
super(name,age,color);
}
}
//子类狗类
public class Dog extends Animal {
public Dog(){}
public Dog(String name,int age,String color){
super(name,age,color);
}
}
3、主要操作
主要的操作为显示数据与修改数据,购买操作,以及通过控制循环来退出程序
1.显示数据的操作:
public void out(){
System.out.println(" ");
System.out.println("动物名字\t年龄\t动物颜色");
for(int i=0;i<cat.length;i++){
System.out.println(cat[i].getName()+"\t"+cat[i].getAge()+"\t"+cat[i].getColor());
}
for(int i=0;i<dog.length;i++){
System.out.println(dog[i].getName()+"\t"+dog[i].getAge()+"\t"+dog[i].getColor());
}
for(int i=0;i<duck.length;i++){
System.out.println(duck[i].getName()+"\t"+duck[i].getAge()+"\t"+duck[i].getColor());
}
for(int i=0;i<fish.length;i++){
System.out.println(fish[i].getName()+"\t"+fish[i].getAge()+"\t"+fish[i].getColor());
}
System.out.println(" ");
}
2.修改数据的操作:
public void change(){
System.out.println("请输入想要修改的宠物种类");
System.out.println("1.猫咪 2.狗狗 3.鸭子 4.金鱼");
int flag = input.nextInt();
System.out.println("请输入想修改的宠物姓名");
String lastName = input.next();
System.out.println("请输入修改后的新名字,及其相关信息:");
System.out.println("样式如下:加菲猫 2 黑色");
newName = input.next();
newAge = input.nextInt();
newColor = input.next();
if(flag==1){
for(int i=0;i<cat.length;i++){
if(lastName.equals(cat[i].getName()) ){
cat[i].setName(newName);
cat[i].setAge(newAge);
cat[i].setColor(newColor);
}
}
}else if(flag == 2){
for(int i=0;i<dog.length;i++){
if(lastName.equals(dog[i].getName()) ){
dog[i].setName(newName);
dog[i].setAge(newAge);
dog[i].setColor(newColor);
}
}
}else if(flag == 3){
for(int i=0;i<duck.length;i++){
if(lastName.equals(duck[i].getName()) ){
duck[i].setName(newName);
duck[i].setAge(newAge);
duck[i].setColor(newColor);
}
}
}else{
for(int i=0;i<fish.length;i++){
if(lastName.equals(fish[i].getName()) ){
fish[i].setName(newName);
fish[i].setAge(newAge);
fish[i].setColor(newColor);
}
}
}
System.out.println("修改完成");
}
3.进行购买宠物操作的代码:
public void buy(){
System.out.println("请输入想要购买的宠物种类");
System.out.println("1.猫咪 2.狗狗 3.鸭子 4.金鱼");
int flag = input.nextInt();
System.out.println("请输入购买的宠物名字");
newName = input.next();
if(flag==1){
for(i=0;i<cat.length;i++){
if(newName.equals(cat[i].getName()) ){
System.out.println("购买成功");
break;
}
}
if(i==cat.length)System.out.println("没有找到该宠物,抱歉");
} else if(flag == 2){
for(i=0;i<dog.length;i++){
if(newName.equals(dog[i].getName()) ){
System.out.println("购买成功");
break;
}
}
if(i==dog.length)System.out.println("没有找到该宠物,抱歉");
}else if(flag == 3){
for(int i=0;i<duck.length;i++){
if(newName.equals(duck[i].getName()) ){
System.out.println("购买成功");
break;
}
}
if(i==duck.length)System.out.println("没有找到该宠物,抱歉");
}else{
for(int i=0;i<fish.length;i++){
if(newName.equals(fish[i].getName()) ){
System.out.println("购买成功");
break;
}
}
if(i==fish.length)System.out.println("没有找到该宠物,抱歉");
}
}
4.text类中的主要菜单循环代码截图:
Scanner input = new Scanner(System.in);
int a = 0;
Custom c = new Custom();
System.out.println("欢迎来到宠物店啊喵");
System.out.println("请选择要进行的操作步骤:");
do{
System.out.println("1.看看宠物店的所有宠物");
System.out.println("2.修改宠物店的宠物信息");
System.out.println("3.购买宠物");
System.out.println("4.不买并遗憾退出宠物店");
a =input.nextInt();
if(a==1){
c.out();
} else if(a==2){
c.change();
} else if(a==3){
c.buy();
} else {
break;
}
System.out.println("请选择后续操作:");
}while(a!=0);
System.out.println("谢谢使用!");
可能还有很多没做到或者没考虑到的部分功能,因为笔者我的能力有限,只能想到这些部分,万分抱歉。
4、UML类图
图片用亿图图示制作:
5、总结与心得
到此寒假的集训与大作业就告一段落了,通过这次的集训,让我这个Java的萌新初次学习到了Java语言的奇妙功能,也通过学习明白了很多新的思想方法,也对实验室的学长学姐表示感谢,感谢他们的分享与讲解,Java的学习路还很长,我还有很多没弄懂的部分,还得继续学习,所以用此博客来记录自己初次学习的结束以及新的学习的开始,道阻且长,仍需努力。