20175226 2018-2019-2 《Java程序设计》第四周学习总结
20175226 2018-2019-2 《Java程序设计》第四周学习总结
教材学习内容总结
- 子类与父类
- 格式
class 子类名 extends 父类名
- Object类是所有类的祖先类
- 格式
- 子类的继承性
- 在同一包中子类会继承非private的成员和方法
- 不在同一包中只会继承protected和public的成员和方法
- 成员变量的隐藏
- 子类可会将同自身变量名字相同的继承变量隐藏
- 子类继承方法只能操作子类继承或隐藏的变量
- 子类新定义的方法不能操作隐藏的成员变量
- 方法重写
- 子类中定义一个与父类方法完全相同的方法即可进行方法重写
- 重写方法无法操作被子类隐藏的成员变量和方法
- 重写是不能降低访问权限
- super关键字
- 操作被隐藏的成员变量和方法、调用父类的构造方法
- final关键字
- final类不能被继承,不能有子类
- final修饰的方法不能被子类重写
- final修饰的变量为常量,运行期间不允许发生变化
- 上转型对象
- 操作子类继承方法或重写的实例方法
- 多态性父类的某个方法被多个子类重写时,可以各自产生各自的功能行为
- abstract类与abstract方法
- 对于此方法只允许声明,不允许实现
- 此类不能用new运算符创建对象,但该对象可以成为其子类对象的上转型对象
教材学习中的问题与解决过程
- 问题1:118页weight变量隐藏时类型变了,但121页为什么computer类型变化后编译错误
- 问题1解决方法:通过询问同学发现是自己弄混了变量与方法在继承上的定义
- 变量隐藏只需要继承变量的名字相同,声明类型可以不同
- 在方法重写时不仅名字要相同,方法名字,参数个数,参数类型都要相同即父类中为
float computer(float x,int y,char z)
子类重写时不能为double computer(float x,char z)
代码调试过程中的问题与解决过程
- 问题1:看不透5_10的上转型对象?
- 问题1解决方法:通过百度与自己对代码的调试大致理解上转型对象的意义与用途。
class 类人猿 {
void crySpeak(String s) {
System.out.println(s);
}
}
class People extends 类人猿 {
void computer(int a,int b) {
int c=a*b;
System.out.println(c);
}
void crySpeak(String s) {
System.out.println("***"+s+"***");
}
}
public class Example5_10 {
public static void main(String args[]) {
类人猿 monkey;
People geng = new People();
monkey = geng ;
monkey.crySpeak("I love this game");
People people=(People)monkey;
people.computer(10,10);
}
}
其中monkey就是上转型对象,其可以操作子类的继承重写的方法如
void crySpeak(String s) {
System.out.println("***"+s+"***");
}
但无法操作子类里的新方法即void Computer
需要通过People people=(People)monkey;
进行转化
[参考网站](https://zhidao.baidu.com/question/98125050.html)
[代码托管](https://gitee.com/wpyzka/20175226/tree/master/src/ch5)
上周错题总结
- 错题1:
下列说法正确的是
A .如果想在方法中使用被隐藏的成员变量,可以使用关键字super。
B .double类型的成员变量的默认值为0,局部变量没有默认值。
C .对成员变量的赋值操作只能放在方法中。
D .面向对象语言中的“类”相当于C语言中的“函数”。
解析:
A项:应使用关键字this。B项:double类型的成员变量的默认值为0.0。D项:面向对象语言中的“方法”相当于C语言中的“函数”。 - 错题2:
下列关于参数传值的说法,错误的是
A .对象调用方法时,参数变量必须有具体的值。
B .方法如果改变参数的值,向参数传值的变量的值也会改变。
C .可以向int型变量传递一个short值。
D .如果改变参数变量所引用的实体,原变量的实体会发生同样的变化。
E .对于可变参数,如一个参数代表x,那么x.length等于x所代表的参数的个数。
解析:
方法如果改变参数的值,不会影响向参数“传值”的变量的值。
学习进度条
计划学习时间:20小时
时间学习时间:18小时左右
代码行数:425/1007
20175226 2018-2019-2 《Java程序设计》第四周学习总结的更多相关文章
- Java程序设计第四周学习总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 答:①String类是final类,不能定义String的子类. ② instanceof ...
- 201871010106-丁宣元 《面向对象程序设计(java)》第四周学习总结
201871010106-丁宣元 <面向对象程序设计(java)>第四周学习总结 正文开头 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-da ...
- 20172328 2018—2019《Java软件结构与数据结构》第二周学习总结
20172328 2018-2019<Java软件结构与数据结构>第二周学习总结 概述 Generalization 本周学习了第三章集合概述--栈和第四章链式结构--栈.主要讨论了集合以 ...
- 杨其菊201771010134《面向对象程序设计(java)》第四周学习总结
<面向对象程序设计(java)> 第四周学习总结 第一部分:理论知识 1.类与对象 a.类(class)是构造对象的模板或蓝图.由类构造对象的过程称为创建类的实例: java中类声明的格式 ...
- 对于“2017面向对象程序设计(JAVA)第四周学习总结”存在问题的反馈
对于“2017面向对象程序设计(JAVA)第四周学习总结”存在问题的反馈 “这部分同学博文总结没有写,实验作业没有提交.”——1.关于博文作业.实验作业教学功能的正解:学习知识.暴露问题.衔接课上.2 ...
- 20155318 2016-2017-2 《Java程序设计》第九学习总结
20155318 2016-2017-2 <Java程序设计>第九学习总结 教材学习内容总结 学习目标 了解JDBC架构 掌握JDBC架构 掌握反射与ClassLoader 了解自定义泛型 ...
- 《Java程序设计》第二学习总结
<Java程序设计>第二学习总结 教材学习内容总结 类型 byte(字节) shot(短整型) int(整型) long(长整型) float(浮点型) double(双精度) char( ...
- 20145304 刘钦令 Java程序设计第二周学习总结
20145304 <Java程序设计>第2周学习总结 教材学习内容总结 java可区分基本类型和类类型(即参考类型)两大类型系统. 基本类型主要可区分为整数.字节.浮点数.字符与布尔. 整 ...
- 20145304 刘钦令 Java程序设计第一周学习总结
20145304<Java程序设计>第1周学习总结 教材学习内容总结 1995年5月23日,是公认的Java的诞生日,Java正式由Oak改名为Java. Java的三大平台是:Java ...
- 20145120黄玄曦 《java程序设计》 寒假学习总结
1和2.我对未来规划不多,我认为好好学习积累知识能帮助我应对未来的挑战,这是我的学习动力之一,此外,了解新知识满足好奇心也是我的主要的学习动力. 3.我认为专业课学习比公务员考试重要,我认为专业知识是 ...
随机推荐
- iUAP云运维平台v3.0全面支持基于K8s的微服务架构
什么是微服务架构? 微服务(MicroServices)架构是当前互联网业界的一个技术热点,业内各公司也都纷纷开展微服务化体系建设.微服务架构的本质,是用一些功能比较明确.业务比较精练的服务去解决更大 ...
- 基于HA机制的Nginx配置实现
Keepalived是一个基于VRRP协议来实现服务高可用方案.下载地址:http://www.keepalived.org/ keepalived-1.2.24.tar.gz VRRP协议:虚拟路由 ...
- 雷军微博拧螺丝,CFO为粉丝数发愁
导读 小米集团联合创始人.品牌战略官黎万强4年前写的书<参与感>,估计又要热卖了. 3月24日,小米CFO周受资发微博,“我刚接受了同事的挑战,要在一定时间内在微博上有更多的粉丝”,并向粉 ...
- 使用css实现无滚动条滚动+使用插件自定义滚动条样式
使用css实现无滚动条滚动,摘抄自:曹小萌博客 使用css实现无滚动条滚动,大体思路是在div外面再套一个div.这个div设置overflow:hidden.而内容div设置 overflow-x: ...
- [python]获取当前路径用来构造相对路径的几种方法
print('getcwd', os.getcwd()) print('sysargv', sys.argv) print('realpath', os.path.realpath(sys.argv[ ...
- 二、java基本语法
一.标识符 java对各种变量.方法和类等要素命名时使用的字符序列成为标识符:通俗点,凡是自己可以起名字的地方都叫标识符,都遵守标识符的规则 1.标识符命名规则: 1)标识符由字符.下划线.美元符或数 ...
- codeforces-1139 (div2)
A.如果第i个数字是偶数,总贡献就加上i #include <map> #include <set> #include <ctime> #include <c ...
- Docker:手动制作镜像 [五]
一.制作docker镜像的步骤 1.启动容器安装软件服务 2.将安装好服务的容器commit提交为镜像 3:.启动新容器来测试新提交的镜像 二.制作支持ssh远程登录的docker镜像 1.启动容器安 ...
- Docker:单机编排工具docker-compose [十二]
一.docker-compose的安装 1.安装 curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.re ...
- kubernetes云平台管理实战: 集群部署(一)
一.环境规划 1.架构拓扑图 2.主机规划 3.软件版本 [root@k8s-master ~]# cat /etc/redhat-release CentOS Linux release 7.4.1 ...