20155317 王新玮 2006-2007-2 《Java程序设计》第4周学习总结

教材学习内容总结

第六章

  1. 继承共同行为

  • 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承单独的那个类即可。

  • 多个类可以称为子类,单独这个类称为父类或者超类。

  • 子类可以直接访问父类中的非私有的属性和行为。

  • 通过extends 关键字让类与类之间产生继承关系。

  1. 多态与is-a

子类只能继承一个父类,并且子类与父类之间有一种is-a的关系,让不是一种的类扮演另一种类需要加上类似于 强制类型转换的语法。 使用单一接口操作多种类型的对象就是多态,个人的理解就是用一种父类来控制许多的子类。

  1. 重新定义行为

在继承父类之后,定义与父类中相同的方法部署,但执行内容不同,这称为重新定义(Override)。在重新定义父类中某个方法的时候,子类必须撰写与父类方法中相同的签署,加上 @Override可用来检查该方法是否真的重新定义了父类中的某个方法,防止打错字,否则就会发生错误。

  1. 抽象方法、抽象类

  • 抽象类:Java中可以定义没有方法体的方法,该方法的具体实现由子类完成,该方法称为抽象方法,包含抽象方法的类就是抽象类

  • 抽象方法的由来:多个对象都具备相同的功能,但是功能具体内容有所不同,那么在抽取过程中,只抽取了功能定义,并未抽取功能主体,那么只有功能声明,没有功能主体的方法称为抽象方法。

  • 抽象类和抽象方法必须用abstract关键字来修饰。

  • 关于继承的代码如下:
  1.  public class RPG1 {
    public static void main (String[] args) {
    demoSwordsMan();
    demoMagician(); }
    static void demoSwordsMan() {
    SwordsMan1 swordsMan1 = new SwordsMan1(); swordsMan1.setName("Justin");
    swordsMan1.setLevel();
    swordsMan1.setBlood();
    System.out.printf("剑士 : (%s, %d, %d)%n",swordsMan1.getName(), swordsMan1.getLevel(),swordsMan1.getBlood()); }
    static void demoMagician() {
    Magician1 magician = new Magician1(); magician.setName("Moinca");
    magician.setLevel(); magician.setBlood(); System.out.printf("魔法师 :(%s ,%d ,%d)%n",magician.getName(), magician.getLevel(),magician.getBlood()); } }

第七章

  1. 接口: 可以理解为一种特殊的类,里面全部是由全局常量(static final)和公共的抽象方法所组成。

  2. 接口的定义格式:

  • 接口的数据成员,只允许被public, static, final修饰。 接口的方法成员,只允许被public, abstract修饰。 '''Interface 接口名称{ }''' 接口中的数据成员都为static final类型,必须进行初始化,且接口的数据成员的值不能被修改,允许省略static, final关键字。
  • 接口中的方法必须是“抽象方法”,不能有方法体,允许省略public及abstract关键字
  1. 接口的实现
  • 接口不能用new运算符直接产生对象,必须利用其特性设计新的类,再用新类来创建对象 与抽象类一样,接口要使用也必须通过子类,子类通过implements关键字实现接口。 实现格式: class 子类名称 implements 接口A, 接口B,….{ //子类成员声明 } 接口的使用必须通过子类,子类必须覆写全部抽象方法。一个子类虽然只能继承于一个父类,但可以同时实现多个接口。

4.接口的继承

  • 接口不能继承一个抽象类,却可以通过extends同时继承于多个接口。

  • public abstract class base {……}
    
    interface B {……}
    
    interface C{……}
    
    interface A extends base{……} //错误
    
    interface A extends B, C{ ……} //正确
  1. 接口与继承的区别:
  • 定义: 以abstract声明,抽象方法可有可无。

以interface声明,由静态常量和抽象方法组成。

  • 组成:构造方法、抽象方法、普通方法、常量、变量、静态常量、抽象方法

  • 使用:子类继承抽象类(extends)、子类实现接口(implements)

  • 关系

  1. 抽象类可以实现多个接口

  2. 接口不能继承抽象类,但允许继承多个接口

  • 对象都通过对象的多态性产生实例化对象

  • 局限抽象类有单继承的局限但是接口可以实现多重继承

  • 选择   如果抽象类和接口都可以使用的话,优先使用接口,可以避免单继承的局限

  1. 多态
  • 是指不同类型的对象可以响应相同的消息,从相同的基类派生出来的多个类型可被当作同一种类型对待,可对这些不同的类型进行同样的处理,由于多态性,这些不同派生类对象响应同一方法时的行为是有所差别的 例如:所有的Object类的对象都响应toString()方法。

7.多态性在java中主要有以下两种体现:

  • 方法的重载与覆写 对象的多态性

教材学习中的问题和解决过程

  • 理解public、protect、privite类的关系
  • public是最大的类,几乎所有的情况下都可以使用,在一般的继承中,我们一般选用protect类,这一类的父类是不可改的,我的理解中,这一种实际上是做了一个模板,而没有给这个模板实际的去操作什么,而真正操作的是用它定义的子类。在privite类中,故名思意。也就是说,这一类的对象只能在自己这个类中使用,若要是要调用它的值则必须用函数去调用,不能通过一般的调用方法。

代码调试中的问题和解决过程

  •  public class RPG1 {
    public static void main (String[] args) {
    demoSwordsMan();
    demoMagician(); }
    static void demoSwordsMan() {
    SwordsMan1 swordsMan1 = new SwordsMan1(); swordsMan1.setName("Justin");
    swordsMan1.setLevel();
    swordsMan1.setBlood();
    System.out.printf("剑士 : (%s, %d, %d)%n",swordsMan1.getName(), swordsMan1.getLevel(),swordsMan1.getBlood()); }
    static void demoMagician() {
    Magician1 magician = new Magician1(); magician.setName("Moinca");
    magician.setLevel(); magician.setBlood(); System.out.printf("魔法师 :(%s ,%d ,%d)%n",magician.getName(), magician.getLevel(),magician.getBlood()); } }

    在代码的调试过程中,我将public这些关键词反复的去改用别的关键词,来发现不同,在继承过程中,最好不要用public,虽然可以,但是比较容易出错误。

代码托管

  • 代码提交过程截图:
  • 代码量截图:

上周考试错题总结

  • “30”转化为byte类型的30的语句是(Byte.parseByte(“30”);)。
  • public void someMethod(int i)和public int someMethod()是方法重载
  • Java中方法内可以定义类。
  • 1.Linux Bash中,(grep )命令可以进行全文搜索。

其他(感悟、思考等,可选)

xxx xxx

学习进度条

  代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时  
第一周 18/150 2/2 20/20  
第二周 201/200 2/4 18/38  
第三周 672/1000 3/7 22/60  
第四周 297/1300 2/9 30/90  

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。 耗时估计的公式 :Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

参考资料

20155317 王新玮 2006-2007-2 《Java程序设计》第4周学习总结的更多相关文章

  1. C语言与java 20155317 王新玮第二次

    20155317 王新玮第二次写作感想   你有什么技能比大多数人(超过90%以上)更好? 刚刚看到这个题目,我的首先想到的是会一些中医,懂得中医的理论框架知识,懂得大部分的中医脉象,能够解决日常生活 ...

  2. 20155317 王新玮 2016-2017-2 《Java程序设计》第6周学习总结

    20155317 王新玮 2016-2017-2 <Java程序设计>第6周学习总结 教材学习内容总结 10.1.1串流设计的概念 Java将输入/输出抽象化为串流,数据有来源及目的地,衔 ...

  3. 20155317 王新玮 2016-2017-2 《Java程序设计》第9周学习总结

    20155317 王新玮 2016-2017-2 <Java程序设计>第9周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以 ...

  4. 20155317 王新玮 2016-2017-2 《Java程序设计》第5周学习总结

    20155317 王新玮 2016-2017-2 <Java程序设计>第5周学习总结 教材学习内容总结 异常处理 & Collection与Map 异常继承架构 错误的对象继承ja ...

  5. 20155317王新玮 2006-2007-2 《Java程序设计》第3学习总结

    20155317王新玮 2006-2007-2 <Java程序设计>第3周学习总结 教材学习内容总结 第四章 chothes(String coler,char size)的含义是对col ...

  6. 20155317王新玮《网络对抗技术》实验9 web安全基础实践

    20155317王新玮<网络对抗技术>实验9 web安全基础实践 一.实验准备 1.0 实验目标和内容 Web前端HTML.能正常安装.启停Apache.理解HTML,理解表单,理解GET ...

  7. 20155317王新玮《网络对抗技术》实验8 WEB基础实践

    20155317王新玮<网络对抗技术>实验8 WEB基础实践 一.实验准备 1.0 实验目标和内容 Web前端HTML.能正常安装.启停Apache.理解HTML,理解表单,理解GET与P ...

  8. 20155317 王新玮《网络对抗技术》实验5 MSF基础应用

    20155317 王新玮<网络对抗技术>实验5 MSF基础应用 1. MS08_067安全漏洞 原理:攻击者利用受害者主机默认开放的SMB服务端口445,发送特殊RPC请求,通过MSRPC ...

  9. 20155317王新玮《网络对抗》Exp2 后门原理与实践

    20155317王新玮<网络对抗>Exp2 后门原理与实践 一.实验内容 (1)使用netcat获取主机操作Shell,cron启动 (2)使用socat获取主机操作Shell, 任务计划 ...

随机推荐

  1. Centos 安装 Oracle Java JDK

    Centos 安装 jdk 创建目录,用来存放下载的 JDK cd /usr/local mkdir -p tools cd tools 下载JDK,后边的下载地址你可以到 orcal 官网去获取最新 ...

  2. c++计算器后续(4)

    自娱自乐: 大概是终于做到没做完的部分了,第三步助教学长的评论还没去改,感觉那个把读取文件放到Scan里面比较麻烦,其他大概还好.以上. 文件读写: 先是原来的残留问题,都是和fstream :: o ...

  3. PL\SQL Developer连接本地Oracle 11g数据库

    1.登录PL/SQL Developer 这里省略Oracle数据库和PL/SQL Developer的安装步骤,注意在安装PL/SQL Developer软件时,不要安装在Program Files ...

  4. PhoneGap获取设备信息

    一. 获取设备信息的方法列表(如果没有或者检测不出来就显示undefined) 1.device.name              设备名称(一些国产机检测不出来) 2.device.model   ...

  5. BZOJ 1061 志愿者招募 最小费用流&&线性规划建模

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1061 题目大意: 申奥成功后,布布经过不懈努力,终于成为奥组委下属公司人力资源部门的主 ...

  6. matlab中的unique函数详解

    https://blog.csdn.net/sinat_40282753/article/details/78373532

  7. luogu P2742 【模板】二维凸包

    嘟嘟嘟 没错,我开始学凸包了. 其实挺简单的. 前置技能: 1.极坐标系 2.向量叉积 1.极坐标系 就是一种二维坐标系.只不过两个坐标分别表示向量和极轴的角度和自身的长度.对于不同的问题,极轴可以自 ...

  8. linux下搭建LAMP

    PHP命令找不到:  export PATH=$PATH:/usr/local/php/bin https://www.centos.bz/forum/thread-69-1-1.html 步骤: w ...

  9. PAT——1043. 输出PATest

    给定一个长度不超过10000的.仅由英文字母构成的字符串.请将字符重新调整顺序,按“PATestPATest....”这样的顺序输出,并忽略其它字符.当然,六种字符的个数不一定是一样多的,若某种字符已 ...

  10. PAT——1034. 有理数四则运算

    本题要求编写程序,计算2个有理数的和.差.积.商. 输入格式: 输入在一行中按照“a1/b1 a2/b2”的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前,分 ...