刘志梅 201771010115 《面向对象程序设计(java)》 第七周学习总结
实验七 继承附加实验
实验时间 2018-10-11
1、实验目的与要求
(1)进一步理解4个成员访问权限修饰符的用途:
即将类中的域标记为private,而方法标记为public。任何声明为private的内容对其他类都是不可见的。超类中的某些方法允许被子类访问,或允许子类的方法访问超类的某个域,此时将这些方法或域声明为protected。
1.仅对本类可见——private 2.对所有类可见——public 3.对本包和所有子类可见——protected 4.对本包可见——默认,不需要修饰符。
(2)掌握Object类的常用API用法:
a、equals方法:该方法用于检测一个对象是否等于另一个对象,在Object类中,这个方法将判断两个对象是否具有相同的引用,equals具有以下特性:自反性、对称性、传递性、一致性、对于非空引用x,x.equals(null)应返回false。
b、hashCode方法:散列码是由对象导出的一个整型值,散列码是没有规律的(如果重新定义equals方法,就必须重新定义hashCode方法;equals与hashCode的定义必须一致)。
c、toString方法:用于返回表示对象值的字符串,且绝大多数的toString方法都遵循格式:类的名字然后是一对方括号括起来的域值。
(3)掌握ArrayList类用法与常用API:ArrayList是一个采用类型参数的泛型类。
(4)掌握枚举类使用方法;
(5)结合本章知识,理解继承与多态性两个面向对象程序设计特征,并体会其优点;
(6)熟练掌握Java语言中基于类、继承技术构造程序的语法知识(ch1-ch5);
(7)利用已掌握Java语言程序设计知识,学习设计开发含有1个主类、2个以上用户自定义类的应用程序。
2、实验内容和步骤
实验1 补充以下程序中主类内main方法体,以验证四种权限修饰符的用法。
|
public class TEST1 { private String t1 = "这是TEST1的私有属性"; public String t2 = "这是TEST1的公有属性"; protected String t3 = "这是TEST1受保护的属性"; String t4 = "这是TEST1的默认属性"; private void tese1() { System.out.println("我是TEST1用private修饰符修饰的方法"); } public void tese2() { System.out.println("我是TEST1用public修饰符修饰的方法"); } protected void tese3() { System.out.println("我是TEST1用protected修饰符修饰的方法"); } void tese4() { System.out.println("我是TEST1无修饰符修饰的方法"); } } public class TEST2 extends TEST1{ private String e1 = "这是TEST2的私有属性"; public String e2 = "这是TEST2的公有属性"; protected String e3 = "这是TEST2受保护的属性"; String e4 = "这是TEST2的默认属性"; public void demo1() { System.out.println("我是TEST2用public修饰符修饰的方法"); } private void demo2() { System.out.println("我是TEST2用private修饰符修饰的方法"); } protected void demo3() { System.out.println("我是TEST2用protected修饰符修饰的方法"); } void demo4() { System.out.println("我是TEST2无修饰符修饰的方法"); } } public class Main { public static void main(String[] args) { TEST2 test2 = new TEST2(); /*以下设计代码分别调用 demo1 demo2 demo3 demo4 test1 test2 test3 test4方法和t1 t2 t3 t3 e1 e2 e3 e4属性,结合程序运行结果理解继承和权限修饰符的用法与区别*/ } } |
public class TEST1 {
private String t1="这是TEST1私有属性";
public String t2="这是TEST1共有属性";
protected String t3="这是TEST1受保护的属性";
String t4="这是TEST1的默认属性";
private void tese1() {
System.out.println("我是TEST1用private修饰符修饰的方法");
}
public void tese2() {
System.out.println("我是TEST1用public修饰符修饰的方法");
}
protected void tese3() {
System.out.println("我是TEST1用protected修饰符修饰的方法");
}
void tese4() {
System.out.println("我是TEST1无修饰符修饰的方法");
}
}
public class TEST2 extends TEST1 {
private String e1="这是TEST1私有属性";
public String e2="这是TEST1共有属性";
protected String e3="这是TEST1受保护的属性";
String e4="这是TEST1的默认属性";
public void demo1() {
System.out.println("我是TEST2用public修饰符修饰的方法");
}
private void demo2() {
System.out.println("我是TEST2用private修饰符修饰的方法");
}
protected void demo3() {
System.out.println("我是TEST2用protected修饰符修饰的方法");
}
void demo4() {
System.out.println("我是TEST2无修饰符修饰的方法");
}
}
public class Main {
public static void main(String[] args) {
TEST2 test2=new TEST2();
/*下面分别调用demo1 demo2 demo3 demo4 test1 test2 test3 test4方法和t1 t2 t3 t4 e1 e2 e3 e4属性,好好理解继承和权限的用法和区别*/
}
}
运行结果:

实验2 第五章测试程序反思,继承知识总结。
测试程序1:
Ÿ 编辑、编译、调试运行教材程序5-8、5-9、5-10(教材174页-177页);
Ÿ 结合程序运行结果,理解程序代码,掌握Object类的定义及用法;
实验结果:



测试程序2:
Ÿ 编辑、编译、调试运行教材程序5-11(教材182页);
Ÿ 结合程序运行结果,理解程序代码,掌握ArrayList类的定义及用法;
实验结果:

测试程序3:
Ÿ 编辑、编译、调试运行程序5-12(教材189页);
Ÿ 结合运行结果,理解程序代码,掌握枚举类的定义及用法;
实验结果:

实验3:采用个人账号登录https://pintia.cn/,完成《2018秋季西北师范大学面向对象程序设计(Java)(ch1-ch5)测试题2》,测试时间60分钟;
实验4: 课后完成实验3未完成的测试内容。
实验总结:通过本周实验,我知道了Object是所有类的父类,ArrayList是动态数组,ArrayList内部封装了一个Object类型的数组,理解了四种权限修饰符;在本章学习中明白继承与多态,通过实验的实际操作有助于更好地理解知识内容,同时通过实验明白自己所欠缺及改进、学习的地方。
刘志梅 201771010115 《面向对象程序设计(java)》 第七周学习总结的更多相关文章
- 201771010134杨其菊《面向对象程序设计java》第九周学习总结
第九周学习总结 第一部分:理论知识 异常.断言和调试.日志 1.捕获 ...
- 201871010132-张潇潇《面向对象程序设计(java)》第一周学习总结
面向对象程序设计(Java) 博文正文开头 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cn ...
- 扎西平措 201571030332《面向对象程序设计 Java 》第一周学习总结
<面向对象程序设计(java)>第一周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 ...
- 杨其菊201771010134《面向对象程序设计Java》第二周学习总结
第三章 Java基本程序设计结构 第一部分:(理论知识部分) 本章主要学习:基本内容:数据类型:变量:运算符:类型转换,字符串,输入输出,控制流程,大数值以及数组. 1.基本概念: 1)标识符:由字母 ...
- 201871010124 王生涛《面向对象程序设计JAVA》第一周学习总结
项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://edu.cnblogs.com/campus/xbsf/ ...
- 201871010115——马北《面向对象程序设计JAVA》第二周学习总结
项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...
- 201777010217-金云馨《面向对象程序设计(Java)》第二周学习总结
项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...
- 201871010132——张潇潇《面向对象程序设计JAVA》第二周学习总结
项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...
- 201771010123汪慧和《面向对象程序设计Java》第二周学习总结
一.理论知识部分 1.标识符由字母.下划线.美元符号和数字组成, 且第一个符号不能为数字.标识符可用作: 类名.变量名.方法名.数组名.文件名等.第二部分:理论知识学习部分 2.关键字就是Java语言 ...
- 201521123061 《Java程序设计》第七周学习总结
201521123061 <Java程序设计>第七周学习总结 1. 本周学习总结 2. 书面作业 ArrayList代码分析 1.1 解释ArrayList的contains源代码 贴上源 ...
随机推荐
- 使用 udev 高效、动态地管理 Linux 设备文件
本文转自:https://www.ibm.com/developerworks/cn/linux/l-cn-udev/index.html 概述: Linux 用户常常会很难鉴别同一类型的设备名,比如 ...
- Java IO编程全解(二)——传统的BIO编程
前面讲到:Java IO编程全解(一)——Java的I/O演进之路 网络编程的基本模型是Client/Server模型,也就是两个进程之间进行相互通信,其中服务端提供位置信息(绑定的IP地址和监听端口 ...
- Win10系列:C#应用控件基础18
WebView控件 使用WebView控件可以在应用中添加一个简易的网页浏览器窗口,将指定地址的网页内容显示出来,并可以通过WebView控件所提供的方法.属性及事件,实现如页面导航.HTML文本解析 ...
- H5 audio 通过canplaythrough预加载音乐
1.背景 微信里做H5活动页面,对音乐使用autoplay, android没问题,IOS半天播不出来,因此考虑对音乐进行预加载(不是preload) <!DOCTYPE html> &l ...
- elastic search 重要的系统配置
文章翻译自 https://www.elastic.co/guide/en/elasticsearch/reference/current/file-descriptors.html 1.文件描述符 ...
- Java容器解析系列(1) 迭代的进化——从Enumeration到Iterator
在Java中,对于所有的Collection,都有一个特性,可以通过迭代器来遍历和删除其中的元素,因为Collection接口继承自Iterable接口. public interface Colle ...
- 事件对象的属性,基于jQuery(jquery针对不同浏览器进行了兼容性的封装)
1. event.type(该方法是获取到事件的类型) $( 'a' ).click( function( event ){ alert( event.type ); //click return f ...
- Linux设备驱动程序 第三版 读书笔记(一)
Linux设备驱动程序 第三版 读书笔记(一) Bob Zhang 2017.08.25 编写基本的Hello World模块 #include <linux/init.h> #inclu ...
- 学习Hibenate随笔
1.Hibenate是一个开放源代码的对象关系映射框架,它对JDBC进行了轻量级的对象封装,将pojo类与数据库表建立映射关系,是一个全自动orm框架,Hibenate可以自动生成sql语句,自动执行 ...
- gitlab 同步小脚本
gitlab 是公司中的代码仓库,如何保证两台机器同步呢 公司中使用的是docker那么久使用docker进行演示了也方便以后的工作查找资料 附:脚本 #!/bin/bash docker stop ...