Java学习第四周学习笔记
20145307《Java程序设计》第4周学习总结
教材学习内容总结
继承与多态
继承
继承作为面向对象的第二大特征,基本上就是避免多个类间重复定义共同行为。即当多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承单独的那个类即可。从而简化了程序,并且减少了冲突错误。 在Java中,通过extends关键字让类与类之间产生继承关系。子类可以直接访问父类中的非私有的属性和行为,而对于private成员也会被继承,只不过子类无法直接存取,必须通过父类提供的方法来存取 继承的特点:继承的出现提高了代码的复用性,也让类与类之间产生了关系,提供了多态的前提。
多态
多态从字面上的解释就是某一类事物的多种存在形态,以抽象讲法解释就是使用单一接口操作多种类型的对象。父类或者接口的引用指向或者接收自己的子类对象,这便是多态的体现,多态的存在提高了程序的扩展性和后期可维护性,但是多态也需要有前提条件,首先,需要存在继承或者实现关系,其次还要有覆盖操作。面向对象的三大特征可以这么来描述:封装是继承的基础,继承是多态的基础。
函数覆盖
子类中出现与父类一模一样的方法时,会出现覆盖操作。一般来说,当子类需要父类的功能,而功能主体子类有自己特有内容时,可以覆盖父类中的方法,这样,即沿袭了父类的功能,又定义了子类特有的内容。 父类中的私有方法不可以被覆盖,在子类覆盖方法中,继续使用被覆盖的方法可以通过super.函数名获取。 覆盖需要注意的是:覆盖时,子类方法权限一定要大于等于父类方法权限,并且静态只能覆盖静态。
继承语法细节
protected成员:被声明为protected的成员,相同包中的类可以直接存取,不同包中的类可以在继承后的子类直接存取。例如下面的例子:假如只想让子类可以直接存取name、level、与blood,就可以定义他们为protected。
如果想取得父类中的方法定义,可以在调用方法前,加上super关键字,重新定义的时候要注意,对于父类中的方法权限,只能扩大不能缩小。如果想执行父类中某构造函数,可以使用super()指定,但要注意的是,this()和super()只能选择其中之一调用,并且一定要在构造函数第一行执行。 如果class前使用了final关键字定义,那么表示这个类是最后一个,不会再有子类,即不能被继承。如果定义类时没有使用extends关键字指定继承任何类,那一定是继承java.lang.Object,在Java中,最上层的父类就是java.lang.Object。
接口与多态
接口
对于“定义行为”,可以使用interface关键字定义,接口中的方法不能操作,直接表示为abstract,而且一定是public。类要操作接口,必须使用implements关键字。操作某接口时,对接口中定义的方法有两种处理方式,一是操作接口中定义的方法,二是再度将该方法标示为abstract 操作接口会有“拥有行为”关系,而继承是“是一种”的关系,对于接口多态语法的判断,方式是“右边是不是拥有左边的行为”,或者“右边对象是不是操作了左边接口”。 类可以操作两个以上的类,可以同时继承某个类,并操作某些接口,接口的出现将“多继承”通过另一种形式体现出来,即“多实现”。
接口语法细节
使用interface来定义抽象的行为外观,方法要声明为public abstract,无须且不能有操作。为了方便,也可以省略public abstract,编译程序会协助补齐。可以使用接口枚举常数,只能定义为public static final。为了方便,也可以省略public static final。 接口可以继承别的接口,也可以同时继承两个以上的接口,也是使用extends关键字。 enum语法可用于定义枚举常数,enum实际上定义了类,而enum中列举的常数实际上是public static final,无法撰写程序直接实例化枚举类型,因为构造函数权限设定为private,只有类中才可以实例化。
代码调试中的问题和解决过程
没有void main定义主函数系统只能运行但不会输出到设备上,更多的是在虚拟机上运行。没有发现过多的问题,还是要注意public priavte protected的使用,不然会报错。
心得体会
讲道理,学了这么久了,我认为编程的魅力在于发现问题和解决问题,程序炸了我才开心呢,我就有机会动脑解决问题了,解决出来的快感是比吃还要开心的。但是每周的任务量对我这种菜鸟来说有点大,我更希望慢慢的去学习而不是现在的囫囵吞枣,比如我这周才是到了void main是定义主函数,void xxx是定义一个复函数来让主程序引用,这些应该是第一周就掌握的,我的学业不精,我应该反省,但是JAVA我喜欢是喜欢但是占据我太多时间了,没有好好的学习密码学的课程,但我不会缩减学习java的时间,我会重新统筹时间把这学期我喜欢的选修课和必修课都掌握好。
Java学习第四周学习笔记的更多相关文章
- 杨其菊201771010134《面向对象程序设计(java)》第四周学习总结
<面向对象程序设计(java)> 第四周学习总结 第一部分:理论知识 1.类与对象 a.类(class)是构造对象的模板或蓝图.由类构造对象的过程称为创建类的实例: java中类声明的格式 ...
- 对于“2017面向对象程序设计(JAVA)第四周学习总结”存在问题的反馈
对于“2017面向对象程序设计(JAVA)第四周学习总结”存在问题的反馈 “这部分同学博文总结没有写,实验作业没有提交.”——1.关于博文作业.实验作业教学功能的正解:学习知识.暴露问题.衔接课上.2 ...
- 201871010106-丁宣元 《面向对象程序设计(java)》第四周学习总结
201871010106-丁宣元 <面向对象程序设计(java)>第四周学习总结 正文开头 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-da ...
- Java程序设计第四周学习总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 答:①String类是final类,不能定义String的子类. ② instanceof ...
- 201521123093 java 第十四周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. MySQL中的库操作和表操作 库操作: 显示所有数据库: show databases; 创建数据库: crea ...
- 201871010125 王玉江 《面向对象程序设计(java)》 第四周学习总结
项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/wswyj/ 作业学习目 ...
- 201871010126 王亚涛 《面向对象程序设计(java)》 第四周学习总结
项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...
- Java第十四周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自 ...
- 《Java》第四周学习总结
20175301 李锦然 一:本周学习内容 1:学习第五章视频 2:做实验 第五章主要讲的是子类与父类的关系,子类的继承与多态,final类super类等内容 仓库地址https://gitee.co ...
随机推荐
- java利用反射机制判断对象的属性是否为空以及获取和设置该属性的值
1.java利用反射机制判断对象的属性是否为空: Map<String,String> validateMap = new LinkedHashMap<String, String& ...
- 页面操作表单不会调用表单 value 属性的 set 函数
在 ES5 通过 Object.defineProperty 数据绑定可以监听数据的变化,实现类似的效果,demo 执行如图: 但是这样把 表单元素的 value 属性设置为 访问器属性 后,有个问题 ...
- spring boot 加载jsp
1.spring boot启动类继承SpringBootServletInitializer ,并且重写configure方法 package com.springapp.mvc;import jav ...
- CSS3伪类和伪元素的特性和区别尤其是 ::after和::before
伪类和伪元素的理解 官方解释: 伪类一开始单单只是用来表示一些元素的动态状态,典型的就是链接的各个状态(LVHA).随后CSS2标准扩展了其概念范围,使其成为了所有逻辑上存在但在文档树中却无须标识的“ ...
- hibernate中持久化对象的状态
持久化对象有以下几种状态: 临时对象(Transient): 在使用代理主键的情况下, OID 通常为 null 不处于 Session 的缓存中 在数据库中没有对应的记录 持久化对象(也叫”托管 ...
- Struts2的简单的文件上传
1文件上传的流程: 第一步:首先得用表单标签的<s:file>在客户端接收上传的文件例如: <%@ page language="java" import=&qu ...
- Unpacking and repacking stock rom .img files
http://forum.xda-developers.com/galaxy-s2/general/ref-unpacking-repacking-stock-rom-img-t1081239 OP ...
- Fully qualified name FQCN
Fully qualified name - Wikipedia https://en.wikipedia.org/wiki/Fully_qualified_name In computer prog ...
- CF#301 D:Bad Luck Island (概率dp)
D:Bad Luck Island 一个岛上有r个石头,s个剪子,p个布,他们之间随机挑出两个相遇,如果不是相同物种,就会有一个消失,分别求出最后这座岛上只剩下一个物种的概率. 我们用dp[i][j] ...
- Python 装饰器的诞生过程
Python中的装饰器是通过利用了函数特性的闭包实现的,所以在讲装饰器之前,我们需要先了解函数特性,以及闭包是怎么利用了函数特性的 ① 函数特性 Python中的函数特性总的来说有以下四点: 1. ...