教材学习内容总结

第五章

子类与父类

所谓的子类,必须是一个类继承了另一个类,这个类才是子类;比如:public class A extend B这就是说A类继承了B类,那么A就是B的子类;B是A的父类。

继承

继承基本上就是避免多个类间重复定义共同行为。

我理解的就是:在编写程序的过程中可能会出现部分代码重复的现象,把重复的部分单独定义为一类(父类),在其他代码中(子类)直接继承,这样子类可直接使用父类的方法,子类的对象也可以使用父类的方法,同时避免了大段代码的重复出现的问题。

关键字 extends

public class SwordsMan extends Role{
//SwordsMan会继承Role的行为,并对Role的行为进行扩充,仅在SwardsMan中使用新定义的行为
public void fight(){
System.out.println("挥剑攻击");
}
}

上述代码表示,类SwordsMan继承了类Role,类SwordsMan扩充了类Role的行为,也就是类Role中有定义的程序代码,类SwordsMan因为继承而都拥有了。

子类只能有一个父类。

父类与子类的关系:
父类引用指向子类对象时:
  • 若子类覆盖了某方法,则父类引用调用子类重新定义的新方法

  • 若子类未覆盖某方法,则父类引用调用父类本身的旧方法

  • 若子类覆盖了某属性,但父类引用仍调用父类本身的旧属性

  • 若子类未覆盖某属性,则父类引用调用父类本身的旧属性

  • 父类引用不能访问子类新定义的方法

子类引用指向自身对象时:
  • 若子类覆盖了某方法,则子类引用调用子类重新定义的新方法

  • 若子类未覆盖某方法,则子类引用调用父类本身的旧方法

  • 若子类覆盖了某属性,则子类引用调用子类重新定义的新属性

  • 若子类未覆盖某属性,则子类引用调用父类本身的旧属性

  • 子类引用可以访问子类新定义的方法

成员变量的隐藏:

只要子类中声明的成员变量和父类中的成员变量同名,子类就隐藏了继承的成员变量。

class People {//父类

      public double x;

      public void setX(double x){

              this.x=x;

       }

       public double getDoubleX(){

             reutrn x;

       }

}
class Studnet extends People{ //子类 int x;//重新声明X pulic int getX(){ // x=20.56;double类型的x是被int的变量隐藏了 x=23; return x; } }
方法重写(super):

在子类中定义一个方法,这个方法的类型和父类的方法的类型一致,子类可以把父类的状态和行为改变为自身的状态和行为,若父类的方法被子类继承,子类有权重写,重写了父类的方法,就隐藏了继承的方法则子类对象调用的方法是调用重写的方法,则子类想调用被隐藏的方法,必须使用关键字super。

public class Student{

       int number;

        String name;

        Student(){

         }

        Student(int numbet,String name){//构造函数

              this.number=number;

              this.name=name;

        }

       public int getNumber(){

               return number;

        }

       public String getName(){

              return isMarriage;

         }

}

public class UniverStudent extends Student{

      boolean isMarriage;

      UniverStudent(int number,String name,boolean b){//构造函数

                super(number,name);//调用父类的构造函数

       }

       public boolean getIsMarriage(){

              return isMarriage;

       }

}
final 关键字

final关键字可以修饰类,成员变量和方法中的局部变量,final类不能被继承,所以没有子类。final修饰的变量一旦赋值,就不能改变,也称为修饰的标识为常量。

abstract类和方法

对于abstract方法,只允许声明不允许实现,因为没有方法体,不允许使用final和abstract同时修饰一个方法或类,也不能使用static修饰abstract方法。

  • abstract类中可以有abstract方法
  • abstract类不能用new运算符创建对象

第六章

接口:使用interface来定义一个接口。接口定义同类的定义类似,也是分为接口的声明和接口体,其中接口体由常量定义和方法定义两部分组成。定义接口的基本格式如下:
[修饰符] interface 接口名 [extends 父接口名列表]{

[public] [static] [final] 常量;
[public] [abstract] 方法;
}

修饰符:可选参数,用于指定类的访问权限,可选值为public、abstract和final。

类名:必选参数,用于指定类的名称,类名必须是合法的Java标识符。一般情况下,要求首字母大写。

extends 父类名:可选参数,用于指定要定义的类继承于哪个父类。当使用extends关键字时,父类名为必选参数。

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

问题1:java中的继承和C语言中的调用函数类似,实际上与C语言的调用函数有什么区别呢?

解决方案:

Java语言与C语言本身就是两种不同思维的语言。C语言是面向过程的语言,就是我们要干一件事情,那么一步一步逐次来做,直到完成,其中可能就要调用一些函数,被调用的函数也是过程执行的。但是Java程序的开发思路是面向对象的,它是有一个类,这个类有属性,有方法。我们要干一件事的时候,就通过该类所定义的或者说是具体化的对象(Object)来调用自己的方法来完成,这里所说的方法,你也可以理解为是一个函数(类似于C语言中的),但是只不过这个方法现在是属于这个类的,属于这个对象的,是有“主人”的,只有通过它的“主人”才能调用它。而面向对象的Java有一个特点就是继承,当某一个类A继承了类B那么类A就可以使用类B的方法了,因为A继承了B,同样A的对象也可以使用B的方法了。

——百度知道

代码托管

感悟

本周进行了一次小测,发现仅仅是敲代码是不够的,还要理解透彻。老师将求阶乘的和的代码拆分为求和代码和阶乘代码让我们组合运行就出现了问题。不知道怎么组合,不知道该怎么改变输出等等问题。还是希望老师课上可以多和我们做些例子,课下学习毕竟能力有限,加上班课反馈不如当堂课及时,感觉效果不是特别好。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 1/4 10/10
第二周 300/500 1/5 10/20
第三周 800/1300 1/6 20/40
第四周 700/2000 2/8 20/60

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

  • 计划学习时间:20小时

  • 实际学习时间:20小时

  • 改进情况:

(有空多看看现代软件工程 课件

软件工程师能力自我评价表
)

参考资料

20165231 2017-2018-2 《Java程序设计》第4周学习总结的更多相关文章

  1. 学号 20175212 《Java程序设计》第九周学习总结

    学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...

  2. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  3. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  4. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

  5. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  6. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  7. 20145337 《Java程序设计》第九周学习总结

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  8. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

  9. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

  10. 《Java程序设计》第九周学习总结

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

随机推荐

  1. 看我如何未授权登陆某APP任意用户(token泄露实例)

    转载:https://www.nosafe.org/thread-333-1-1.html  先来看看这个.   首先,我在登陆时候截取返回包修改id值是无效的,因为有一个token验证,经过多次登陆 ...

  2. 在linux下面解压用的zxpf是什么意思,它跟zxvf有啥区别

    在linux下面解压用的zxpf是什么意思,它跟zxvf有啥区别 linux 命令中tar后跟的zxvf是什么意思:.tar.gz是一个压缩包   .tar只是打包而没有压缩 z:表示 tar 包是被 ...

  3. MySQL_函数(待续)

    1.REPLACE(str,from_str,to_str) 定义:REPLACE(str,from_str,to_str) 解释:返回值是把字符串str 中的子串from_str 全部替换为to_s ...

  4. iptables之NAT端口转发设置

    背景:服务器A:103.110.114.8/192.168.1.8,有外网ip,是IDC的一台服务器服务器B:192.168.1.150,没有外网ip,A服务器是它的宿主机,能相互ping通服务器C: ...

  5. slave have equal MySQL server UUIDs

    在部署MySQL主从复制架构的时候,碰到了"Last_IO_Error: Fatal error: The slave I/O thread stops because master and ...

  6. I/O模型之二:Linux IO模式及 select、poll、epoll详解

    目录: <I/O模型之一:Unix的五种I/O模型> <I/O模型之二:Linux IO模式及 select.poll.epoll详解> <I/O模型之三:两种高性能 I ...

  7. windows环境安装weblogic服务【转】【补】

    我的环境: windows: win10 professional edition jdk: C:\Program Files\Java\jdk1.6.0_45 weblogic安装目录 (WEBLO ...

  8. HDU 1097(m次幂的个位数 规律)

    题意是求 n^m 结果的最后一位数. 可以用快速幂取模的方法做,当然本题还有更简单的方法: 所有数字( 0 - 9 )的 m 次幂的个位数不会受进位的影响,只收到乘数的影响,所以在结果中一旦出现之前出 ...

  9. NodeJs 学习笔记(一)Wedding 项目搭建

    说明:Ubuntu16.04 自带的NodeJs版本太低,安装包更新不了,只能编译安装了 一.NodeJs编译安装 下载:https://nodejs.org/en/download/ 修改目录权限: ...

  10. 解析ArcGis的字段计算器(三)——文本型字段计算,编号那些事儿

    实际操作中我们一般会将编号字段定义为文本型,因为编号不是序号,序号是一个递增数值,而编号往往是一个数字串代码. 本篇无说明的均使用VBScript语句1.怎么编号?最简单的编号—>直接在编号字段 ...