在前面的几篇文章中,老梁和大家聊了聊自己这半年来的程序生活,并且简单的介绍了一下Java的一些知识点。我们主要了解了Java的基本通用语法和三大特性,以及Java接口等知识点。但是老梁在之前关于知识点的展示中举的例子比较简单,没有完全覆盖这些知识点,所以为了巩固这段时间的知识点,老梁准备新建了一个小的项目来展示Java的特点。

都说工欲善其事必先利其器,在Java工程的开发中需要在事先做好详细的准备,所以在这里面老梁给大家介绍一个画类图的工具---starUml,这算得上是一款利器。关于starUML这款工具老梁不在此处多做介绍,大家可以在网上进行搜索并下载。现在的starUML有两个版本,其中starUML1属于免费版本,而老梁使用的是starUml2,因为这个版本的颜值较高(其实老梁是个颜狗)。下图是starUML的初始界面:

好了,关于starUml这款软件的使用老梁不多做介绍,大家可以在网上搜索到详细的使用教程,下面咱们来聊一下今天的小工程。

还是从前面咱们使用的猫类和狗类为例,咱们今天主要将Java的继承封装和接口,以及抽象类这几个知识点给统一起来,下面开始咱们的设计。

在老梁的设计中,Cat类和Dog类都属于宠物的一种,那么关于这两个类的特有属性咱们就抽象出宠物名和性别,关于动作的方法老梁抽象出了叫和跑这两个动作。而关于Cat这个类老梁有抽象出了爬树这个动作方法,狗抽象出了捕猎这个独有的方法,在这里面关于这些特有的方法和动作老梁都是通过接口来实现的,具体的类设计图如下:

父类Pet的代码如下:

Cat接口的定义代码如下:

Cat类的定义如下:

Dog接口的定义如下:

Dog类的定义如下:

测试类的定义如下:

运行结果如下:

通过以上代码,我们实现了关于类图的相关设计。其中的父类属于抽象类,在这里面我们通过对比可以发现相对于接口,抽象类的应用面比较狭窄。而一个类可以实现多个接口的特性更是让抽象类处于尴尬的地步,但是抽象类有时也是必不可少的。那是因为抽象类中可以存在抽象和非抽象两种形式的方法,而接口中的方法必须是抽象方法。

老梁通过举这样一个小例子,算是为了加深大家关于近段时间以来关于Java特性的知识点,希望大家可以理解(其实是为了加深老梁我自己的印象,老梁在开发的时候发现基础还是非常重要的,它可以提高你的开发效率)。

好啦,今天老梁就和大家一起回顾到这里。其实讲到这里关于Java的一些特性算是告一段落,在后面的文章中老梁将会讲一些“相对琐碎”的知识点。

实际上这些知识点是非常重要的,老梁以前一直想巩固这些地方,但是每次拿到相关知识总是没有耐心看下去,总认为自己可以开发出相关功能就可以了,但是在实际的开发中却又总是有一种不踏实的感觉。之所以开始写文章也是希望可以强逼着自己能够认真的打牢基础,毕竟是万丈高楼平地起。最后,希望大家在阅读老梁文章的时候也能够予以监督,老梁在此拜谢。

java小工程_Java进阶:阶段性小工程相关推荐

  1. java 模拟停车_Java多线程编程小实例模拟停车场系统

    下面分享的是一个Java多线程模拟停车场系统的小实例(Java的应用还是很广泛的,哈哈),具体代码如下: Park类 public class Park { boolean []park=new bo ...

  2. java通讯录工程_JAVA通讯录管理小项目

    **自己写的简单通讯录管理项目** 有集合基本的增删改查,我还没有学数据库什么的,就用对象序列化和反序列化来保存信息了. 本人菜鸟一枚,有不足之处请多指点. package aatroxcarry.t ...

  3. java 录屏_java 录屏 小工具源码(idea)

    [实例简介]录制的视频保存在 java.io.tmpdir 目录,windows通常为 C:\Users\Administrator\AppData\Local\Temp [实例截图] 点击播放后,效 ...

  4. java 扫雷游戏_java的扫雷小游戏(超简单)

    这学期的专业选修课选了java,由于之前已经学过了C++,数据结构和操作系统的原因吧!所以感觉上手还是比较容易的-- 于是,实验课老师并没有要求那样一次次的做实验交实验报告,而是在最后一次实验课上,利 ...

  5. java写的表白小程序_Java实现表白小程序

    今天闲来无事,教大家一个哄妹子的小case.我们需要创建一个心形图案,按照心形图案的www.cppcns.com位置和长度,对所创建的字符串进行截断并在所需的位置上输出,最终能呈现在屏幕上满满的爱心. ...

  6. java剪刀石头布小游戏_JAVA实现“剪刀石头布”小游戏

    JAVA实现"剪刀石头布"小游戏 import java.util.Random; import javax.swing.*; import java.awt.BorderLayo ...

  7. java五子棋小游戏_java实现五子棋小游戏

    java实现五子棋小游戏 package Gomoku; import java.awt.Toolkit; import javax.swing.JFrame; public class Gomoku ...

  8. java飞机场模拟程序_java 飞机大战 小游戏源码

    [实例简介] 本项目是一个使用java做的一个飞机大战的小游戏,一个英雄机,初始有三次生命,当打中蜜蜂会有一次生命奖励,当打中敌机会有相应分数奖励,但如果被敌机打中会失去一次生命机会.如果生命都失去, ...

  9. java math猜数小游戏_java猜数字小游戏

    import java.util.Random; import java.util.Scanner; /** * 一个简单的猜数字游戏 * * @author chried * */ public c ...

最新文章

  1. Linux下的硬链接和软链接
  2. 从0开始配置Flutter并运行demo
  3. 如何使用原生的 JavaScript 代码,触发 SAP UI5 按钮控件的点击事件处理函数
  4. php 万分之一几率,那万分之一的概率啊……
  5. Java NIO原理图文分析及代码实现
  6. Citrix XenAPP DS角色
  7. 关于simulink仿真中出现的积分器问题
  8. (模拟)HDU - 5857 Median
  9. 对抗生成网络(Generative Adversarial Network)
  10. android中服务播放音乐,android中用Service播放音乐
  11. EPOCH, BATCH, INTERATION
  12. Brenda-利用SOAP API访问Brenda及本地保存
  13. 自动驾驶汽车如何识别红绿灯?三个角度告诉你答案丨曼孚科技
  14. Flutter 和小程序混编
  15. 学习openvz虚拟机
  16. 8000字详解微信生态内的5款增长工具(2019版)
  17. 把若干个亚群合并到一起得到subsetdata merge到一起
  18. 记一次简单网络割接的经验教训
  19. 关键字广告:百度雅虎Google已三分天下(转载)
  20. 自适应红色大气虚拟手机靓号交易商城网站源码

热门文章

  1. MogDB如何配置IPv6?
  2. 华为GaussDB相比PostgreSQL做了哪些内核优化?
  3. 错过血亏!深入学习Redis集群搭建方案及实现原理
  4. 数据库流行度5月排行榜:Oracle企稳PostgreSQL飙升
  5. 云小课|打造企业数据“高内聚,低耦合”--试试GaussDB(DWS)逻辑集群,实现数据物理隔离
  6. 披星戴月地辛苦割胶或成历史,海南胶园迎来这一“神器”!
  7. 案例分享丨红外自动感应门设计与实现详解
  8. 云小课 | IPv4枯了,IPv6来了
  9. 云图说丨“真人?机器?傻傻分不清!” WAF Bot管理,带你慧眼辨“精”!
  10. 【华为云技术分享】ARM体系结构基础(2)