首页 > 其他 > 详细

Blog03

时间:2021-06-20 22:53:03      阅读:26      评论:0      收藏:0      [点我收藏+]

一、类的继承、多态性使用方法以及接口的应用

       1. 什么是继承:继承好比父亲和儿子,儿子继承父亲(class a extends class b),b就是父亲,a就是儿子。儿子具有父亲的属性。而父亲使用儿子的属性依然要创建对象。父亲的私有属性对儿子是封闭的,子类不能直接使用父亲的私有属性。

技术分享图片

 

 应该将私有属性改为protect或static。

 

      2.什么是多态:多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。实现多态有两种,重写(override)和重载(overload)。

       技术分享图片

 

       3.接口的应用:接口是class类实现代码简化的重要方法,接口只能被实现不能继承。

 

二:分析题目集:

      ①题目集7(7-1):https://images.ptausercontent.com/f52db597-70a8-4cf0-8e8c-5caf8f081cfd.pdf

  定义5个类:4个图形类,1个数据处理类,用来显示结果和处理事件,图形类继承数据处理类。

技术分享图片

 

 

    ①题目集7(7-2):HashMap使用:HashMap输出自带{};

  

 ②题目集8:ATM机:https://images.ptausercontent.com/93fc7ad6-5e85-445a-a759-5790d0baab28.pdf

  源码:https://www.kdocs.cn/l/cdnELkSXWd0W

  技术分享图片

 

    分析:创建账户类,账户类里面放各个用户的卡号,密码,余额等,在处理类实现判断并输出,账户类继承自处理类,这样程序耦合度较低,但我的源码处理类里的validate()方法耦合度就高了,创建新的用户时,判断他的卡号密码等条件时需要较大的改动。建议不要将输入的判断条件放在处理类中,在各个账户类中新添判断方法,重写处理类的判断方法。

    部分代码修改:https://www.kdocs.cn/l/cu4yAfqiUQfo

     将判断各个用户卡号、密码、余额操作放到各个用户判断中。

  ②题目集9:对于新增用户的处理和跨行处理。

    如何处理:1.在判断方法已经放到账户类之后,新添跨行处理方法在处理类中KuaHang();

         2.输入格式问题:我的思路是将输入表示为字符串,在将每一行的字符串按空格分隔开来,在将卡号,密码,ATM机编号等信息依次存入到不同的ArrayList列表中。

         

    设计思路:将处理输入格式,判断输入是否合法,用户信息三样分离开,用户信息增添与其他各项互不干扰,便于代码的改进。

三:踩坑心得:

    例:题目集7-2:踩坑1:使用了hashmap,hashmap的key不清楚,浪费了大量时间搞明白排序问题。

           踩坑2:public static String k(){}方法的返回和构造函数一样,一旦创建对象,就会执行,这是错误的观念,虽然没什么影响;

         题目集8:这是我最要吐槽的,我使用了ArrayList的数组类型,ArrayList a[]=new ArrayList[100];但是后期使用时一直报错:

                                   技术分享图片

 

 

           后来知道了ArrayList类型的数组没有申明:

                                  技术分享图片

 

          这个麻烦困扰了我许久才得以解决。

四:改进建议:

        1.程序耦合度太高了,比如题目集7的,但凡需要一点点变动就需要大动笔墨,主要原因还是没有将程序分隔开来,类的定义功能不明确。

 

五:总结:

        通过这三次题目集,让我深刻认识到开闭原则的总要性,特别是题目集9的改动。除此之外,我还知道了什么是继承,接口的好处。我认为,java程序最重要的还是认识到开闭原则,低耦合,private的使用,今后的程序应该更看好低耦合,要明确每一个方法的功能,对每一个方法名的使用要让别人看的懂,java是一个面向对象的语言,可读性是检验工程师好坏的一个总要环节。

 

 

 

Blog03

原文:https://www.cnblogs.com/2252584535yekai/p/14908226.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!