文章目录

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

System.out.println(cat[i].getName()+"\t"+cat[i].getAge()+"\t"+cat[i].getColor());

}

for(int i=0;i

System.out.println(dog[i].getName()+"\t"+dog[i].getAge()+"\t"+dog[i].getColor());

}

for(int i=0;i

System.out.println(duck[i].getName()+"\t"+duck[i].getAge()+"\t"+duck[i].getColor());

}

for(int i=0;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

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

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

if(lastName.equals(duck[i].getName()) ){

duck[i].setName(newName);

duck[i].setAge(newAge);

duck[i].setColor(newColor);

}

}

}else{

for(int i=0;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

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

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

if(newName.equals(duck[i].getName()) ){

System.out.println("购买成功");

break;

}

}

if(i==duck.length)System.out.println("没有找到该宠物,抱歉");

}else{

for(int i=0;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的学习路还很长,我还有很多没弄懂的部分,还得继续学习,所以用此博客来记录自己初次学习的结束以及新的学习的开始,道阻且长,仍需努力。

java欢迎来到宠物店,用JAVA语言实现简易的宠物店程序暨寒假集训心得相关推荐

  1. 【java毕业设计】基于java+swing的模拟写字板设计与实现(毕业论文+程序源码)——模拟写字板

    基于java+swing的模拟写字板设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+swing的模拟写字板设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦.需要下载开题报 ...

  2. Java毕设项目‘网上宠物店(java+VUE+Mybatis+Maven+Mysql)

    Java毕设项目'网上宠物店(java+VUE+Mybatis+Maven+Mysql) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webst ...

  3. Java语言的介绍,Java环境的配置以及Java编译器的安装

    Java语言的介绍,Java环境的配置以及Java编译器的安装 文章目录 Java语言的介绍,Java环境的配置以及Java编译器的安装 Java 简介 主要特性 关于语言的选择 Python Jav ...

  4. 笔记整理2----Java语言基础(二)06 断点调试与数据加密+07 面向对象-类与对象+08 java常用API-基础+09 java集合+10 IO流-基础

    06 断点调试与数据加密+07 面向对象-类与对象+08 java常用API-基础+09 java集合+10 IO流-基础 第06天 java基础语法 今日内容介绍  Eclipse断点调试  基 ...

  5. Java是世界上最好的语言?会是未来第一编程语言吗?

    一.前言 Java语言长期以来一直霸占多数热门编程语言榜单的榜首,可见这是一个备受程序员热捧的编程语言.Java语言具有什么魅力?想必这都是已经为大多数人们所熟知的了,不值得过多赘述.而Java语言发 ...

  6. 如何将简单CMS后台管理系统示例转换为Java、Php等不同后台语言的版本

    等下要去坐车,今天就不继续唠叨开发过程了,来谈一下普遍比较关心的后台语言问题. 学习Ext JS,笔者一直强调学习的中心思路是"界面与数据是分离".只要好好掌握这个思路,深入了解E ...

  7. java基础学习总结一(java语言发展历史、jdk的下载安装以及配置环境变量)

    最近一段时间计划复习一下java基础知识,使用的视频课程是尚学堂高淇老师的,上课过程中的心得体会 直接总结一下,方便以后复习. 一:计算机语言的发展 1:机器语言,最原始的语言,主要有"01 ...

  8. Java运行作业控制语言_Java安全——语言本身的设计

    Java安全--语言本身的设计 Java 安全 内在安全机制 Java语言本身的安全机制是要保护内存资源--保证内存完整性,核心的安全特性要确保程序不能非法解析或修改驻留在内存中的机密信息.从语言本身 ...

  9. java哪个软件编程好学吗_java好学吗?java是不是最难学的语言?

    1. java好学吗? 从某些方面来说,java比较容易学,如果是大学毕业,大学计算机专业里大多开设了java基础课程,或者学过一点编程,学起java来也会轻松不少.即使是零基础也不用担心,java可 ...

  10. 编程笔试(解析及代码实现):猴子吃桃。猴子第一天吃了若干个桃子,当即吃了一半,还不解馋,又多吃了一个…的C++、Java、Python、C#等语言代码实现

    编程笔试(解析及代码实现):猴子吃桃.猴子第一天吃了若干个桃子,当即吃了一半,还不解馋,又多吃了一个. 第二天早上又将剩下的桃子吃了一半,还是不过瘾,又多吃了一个.以后每天都吃前一天剩下的一半再加一个 ...

最新文章

  1. 摄像头与毫米波雷达(Radar)融合
  2. html 屏蔽蓝色电话,html – 在Chrome扩展程序中停用文字字段蓝色突出显示?
  3. Hyperopt 入门指南
  4. javascript --- js中的事件
  5. JDK 13:VM.events已添加到jcmd
  6. 有空研究这篇http://blog.csdn.net/studyvcmfc/article/details/7720258 研究后写篇记录
  7. SpringBoot 2.1.5(20)---JSON
  8. php为首字母的词语,PHP提取中英文词语及数字首字母的简单示例
  9. python中变量通过变量名访问_如何在python中访问给定变量的名称?
  10. 关于Jedis无法连接上Linux上Redis问题
  11. rdd数据存内存 数据量_技术分享|大数据技术初探之Spark 任务调度与优化
  12. 使用Windows批处理压缩文件
  13. POJ 2706 棋盘连线游戏(模拟)
  14. 根据ID3算法给出游玩的决策树的实战案例
  15. 外贸公司怎么做开发信,什么企业邮箱更适合发开发信呢?
  16. 输入10个学生某门课的成绩,用函数找出最高分、最低分,计算平均分,并在主函数中输入和输出(用函数和全局变量来完成)(C语言)
  17. 计算机无法连接网络错误651,651错误代码,详细教您宽带连接提示错误651怎么办...
  18. Jetson Nano从零开始(2):硬件篇
  19. 实测 Google 全同态加密FHE,效果如何?
  20. Java实验报告之java面向对象编程

热门文章

  1. 关于iOS获取音乐库的音乐信息 (获取本地音乐文件)
  2. 熟练使用Wireshark排除网络故障的方法
  3. SQL Server 开窗函数Over的使用(计算结存金额)
  4. perl novel可变剪接识别(3)
  5. 使用office tool plus清除office激活状态
  6. Spring Boot在使用Gradle build命令卡住不动了
  7. f.lux 自动调节显示器色温
  8. 进阶实验5-3.2 新浪微博热门话题 (字符串操作)
  9. 进阶实验5-3.2 新浪微博热门话题 (30 分)
  10. mybatis 标签中prefix,suffix,prefixOverrides,suffixOverrides作用