# 学号20155308 2006-2007-2 《Java程序设计》第4周学习总结
学号20155308 2006-2007-2 《Java程序设计》第4周学习总结
教材学习内容总结
6.1 何谓继承
- 继承基本上就是避免多个类间重复定义共同行为。
许多类之间具有相同的属性与功能重复在程序设计上,就是不好的信号。如果有多个类具有重复的程序代码,那就要修改类,造成维护上的不便。这种情况下,就可以将相同的代码提升为父类。利用了继承的思想。 - 赋值: 「=」 右边 ISA左边,否则要强制类型转换。
子类只能继承一个父类,子类与父类间会有is-a(是一种)关系。但是需注意程序编译时是从右往左读的。所以一下这种情况无法通过编译。 - 多态
继承可以复用代码,更大的用处是实现「多态」
封装是继承的基础,继承是多态的基础
「用父类声明对象引用,用子类生成对象」就有了多态
6.2 继承语法细节
- public/package/protected/private:
被声明为protected的成员,相同包中的类可以直接存取,不同包中的类可以在继承后的子类直接存取。
private、无关键字、protected、public权限依次递增。 - super与this:
this()和super()只能择一调用,并且要写在构造函数第一行执行。
7.1 何谓接口
- 接口(interface)定义行为:操作接口则表示“拥有行为”,某个类可以同时拥有很多接口
7.2 接口语法细节
- 接口中的public abstract可以省略
- 接中可以使用extends继承接口,并且可以继承多个接口
- 匿名内部类与Lambda
- JDK8 前在匿名内部类中访问局部变量,则该局部变量必须为final
- emum
教材学习中的问题和解决过程
- Square(正方形)类继承Rectangle(矩形)类合适吗?
正方形类正常不能继承矩形类
class Rectangle { ... }
class Square extends Rectangle {
int size;
Square(int s) { size = s; }
}
https://www.zybang.com/question/1bf624e45eb02e50bb292b9946c40eb9.html?ssl=1
接口与抽象类的区别?
共性:都是不断抽取出来的抽象的内容。 A:成员特点
抽象类:
成员变量 可以变量,也可以常量
成员方法 可以抽象,也可以非抽象
构造方法 有
接口:
成员变量 只能是常量
成员方法 只能是抽象
B:继承或者实现关系特点
a:类与类的关系
继承关系,只能单继承,可以多层继承。
b:类与接口的关系
实现关系,可以单实现,也可以多实现。
还可以在继承一个类的同时,实现多个接口。
c:接口与接口的关系
继承关系,可以单继承,也可以多继承。
C:设计区别
抽象类中定义的是体系的共性内容。表达的是:is a的关系。
接口中定义的是体系的扩展功能。表达的是:like a的关系。
既然在java中,子类只能继承一个父类,那如果在定义类时没有使用extends关键字指定继承任何类,则说明了什么?
解决方案1:
在java中,任何类追溯至最上层父类,那一定是java.lang.Object,也就是java中的所有对象。所以定义类时没有使用extends继承则一定是继承了java.lang.Object。
代码调试中的问题和解决过程
在git的过程中,我发现git add .和git commit ..之后没有什么问题,但是在git push后系统提示我的上传出现了问题,这个是我以前并没有出现的问题,我就将git的过程重新重来一遍,发现在这一步
系统提示我error: Could not remove config section 'remote.origin'于是,我参考了一下这两篇博客
http://blog.csdn.net/q908555281/article/details/48677159http://www.cnblogs.com/rebrust/p/5348866.html?from=singlemessage&winzoom=1
经过多次尝试,将我的代码推了上去。
代码托管
- 代码量截图:
上周考试错题总结
- Java中,=与==并没有在基本类型和类类型的不同。(OK)
- 理解情况:对象之间的==符是用来比较是否是一个对象的两个引用。
- 错误原因:没有理解好=和==的含义。
- 可以使用java.util.Arrays的(fill())方法把数组初始化成相同的值。
- 理解情况:见书P98,可使用java.util.Arrays的fill()方法来设定数组的元素值。
- 错误原因:看书的时候太马虎,没有注意一些固定语法的使用,自己在编程的时候也没有多加注意。
- Java中的多维数组都是由(一维数组组成)。
- 理解情况:见二维数组的介绍,可看出多维数组是由一维数组组成。例如可将int[][] cords看成是++int[]++[]cords.
- 错误原因:在学习的时候没有关注数组的本质。
- “30”转化为byte类型的30的语句是(Byte.parseByte(“30”);)。
- 理解情况:使用调用方法。
- 错误原因:我的思想还是停留在C语言的层面,没有注意java与C 的不同之处。
- Java中成员方法中引用成员变量,要使用(this)关键字。
- 理解情况:在Java中,this()代表了调用另一个构造函数,所以在成员方法中引用成员变量时,需要使用到this关键字。
- 被声明为(static)的成员,不属于某个对象,而是属于类。
- 两个Integer对象比较大小,可以使用(comareTo())方法 。
- 理解情况:见书P91,Integer提供compareTo()方法,可以另一个Integer对象进行比较,可返回更多信息。同时要注意区别:equals() 用于引用数据类型比较是否指向相同的对象,compareTo()用于对象的大小。
- 错误原因:compareTo是java中的新的比较方法,要注意学习,同时注意其返回值是1和-1.
其他
这一周我学习了继承与多态、接口与多态。代码量迅速增加,并且学习难度也有所增强。在继承的使用上,使得我们的编程归向了统一化和简便化,同时在语法细节中,运用到了之前所大致了解到的final等,对这些语法细节有了应用。而接口也是一种全新的操作。通过这两章的学习,将我们的基本类型学习淡化了,反倒增多了类类型的学习,自己应该多加注意,才能学习好这方面的知识。
学习进度条
代码行数(新增积) | 博客量(新增积) | 学习时间(新增积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第四周 | 300/1300 | 2/9 | 30/90 | 了解了继承与多态、接口与多态 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
计划学习时间:15小时
实际学习时间:18小时
改进情况:这一周的学习感到有点吃力,我就把前面的知识又复习了一遍,重新的学习让我对之前的知识又有了新的了解,感觉掌握得更深了。
参考资料
# 学号20155308 2006-2007-2 《Java程序设计》第4周学习总结的更多相关文章
- 学号 20175212 《Java程序设计》第九周学习总结
学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...
- 学号20145303 《Java程序设计》第一周学习总结
学号20145303 <Java程序设计>第一周学习总结 教材学习内容总结 *dos命令行: dir:列出当前目录下的文件及文件名 md:创建目录 rd:删除目录.为空时文件夹(文件夹为空 ...
- 学号20145322 《Java程序设计》第一周学习总结
学号20145322 <Java程序设计>第一周学习总结 教材学习内容总结 Java诞生于Sun公司,于1998年12月4日发布J2SE,约以两年为一周期推出重大版本更新. 2010年Or ...
- 20155305乔磊2016-2017-2《Java程序设计》第九周学习总结
20155305 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC入门 JDBC简介 1.JDBC是java联机数据库的标准规范,它定义了一组标准类与 ...
- 201521123061 《Java程序设计》第九周学习总结
201521123061 <Java程序设计>第九周学习总结 1. 本周学习总结 2. 书面作业 本次PTA作业题集异常 1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1 ...
- 201521123038 《Java程序设计》 第九周学习总结
201521123038 <Java程序设计> 第九周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 ...
- 201521123045 <java程序设计>第11周学习总结
201521123045 <java程序设计>第11周学习总结 1. 本周学习总结 2. 书面作业 2. 书面作业 Q1.1.互斥访问与同步访问完成题集4-4(互斥访问)与4-5(同步访问 ...
- 20175313 张黎仙《Java程序设计》第九周学习总结
目录 学号 20175313 <Java程序设计>第九周学习总结 一.教材学习内容总结 二.教材学习中的问题和解决过程 三.代码托管 四.心得体会 五.学习进度条 六.参考资料 学号 20 ...
- 20175227张雪莹 2018-2019-2 《Java程序设计》第九周学习总结
20175227张雪莹 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十一章 JDBC数据库操作 MySQL数据库管理系统 下载安装MySQL 若下载的是 ...
- 2018-2019-3《Java程序设计》第二周学习总结
学号20175329 2018-2019-3<Java程序设计>第二周学习总结 教材学习内容总结 第二三章与我们所学习的C语言有很多的相似点,在这里我想主要就以我所学习的效果来讨 ...
随机推荐
- 20、资源与本地化 System.Resources
可以将字符串.图像或对象数据等资源包含在资源文件中,方便应用程序使用. .NET Framework 提供了五种创建资源文件的方法: •创建一个包含字符串资源的文本文件.或创建一个包含字符串.图像或对 ...
- 041队列queue(重要,多线程使用)
内容:队列类型.方法.使用 ###############queue定义了3种信息列队模式类Queue([maxsize]):FIFO列队模式LifoQueue([maxsize]):LIFO列队模式 ...
- 密码加密MD5,Bash64
基于jar : org.apache.commons.codec 一.MD5概述:不可逆加密 Message Digest Algorithm MD5(中文名为消息摘要算法第 五版)为计算机安全领域广 ...
- TensorFlow函数(四)tf.trainable_variable() 和 tf.all_variable()
tf.trainable_variable() 此函数返回的是需要训练的变量列表 tf.all_variable() 此函数返回的是所有变量列表 v = tf.Variable(tf.constant ...
- java反序列化Commons-Collections1分析
AnnotationInvocationHandler关键类 Commons-Collections1也是利用InvokerTransformer类中的transform方法反射机制执行命令.实验用的 ...
- [Java123] JDBC and Multi-Threading 多线程编程学习笔记
项目实际需求:DB交互使用多线程实现 多线程编程基础:1.5 :( (假设总分10) 计划一个半月从头学习梳理Java多线程编程基础以及Oracle数据库交互相关的多线程实现 学习如何通过代码去验证 ...
- 1、Web Service-开始入坑(基础简介)
1.关于Schema 具体介绍:https://baike.baidu.com/item/Schema/15286221?fr=aladdin 几个重要的知识点: 2.HTTP协议 具体介绍看博文:h ...
- 解决windows7无法连接CentOS7系统中oracle问题:ORA-12514 TNS 监听程序当前无法识别
linux开启后终端按下面输入(容易忘记,记录下): [oracle@localhost ~]$ lsnrctl stop #先关闭监听服务 [oracle@localh ...
- [运维笔记] Nginx编译安装
yum -y install pcre-devel.x86_64 yum -y install openssl openssl-devel.x86_64 useradd www -s /sbin/no ...
- Mysql 创建普通用户、数据库、表、插入记录,用户赋权
C:\phpStudy\MySQL\bin>mysql -uroot -proot -h127.0.0.1 //创建用户 mysql> insert into mysql.user (ho ...