实验七 继承附加实验

实验时间 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)》 第七周学习总结的更多相关文章

  1. 201771010134杨其菊《面向对象程序设计java》第九周学习总结

                                                                      第九周学习总结 第一部分:理论知识 异常.断言和调试.日志 1.捕获 ...

  2. 201871010132-张潇潇《面向对象程序设计(java)》第一周学习总结

    面向对象程序设计(Java) 博文正文开头 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cn ...

  3. 扎西平措 201571030332《面向对象程序设计 Java 》第一周学习总结

    <面向对象程序设计(java)>第一周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 ...

  4. 杨其菊201771010134《面向对象程序设计Java》第二周学习总结

    第三章 Java基本程序设计结构 第一部分:(理论知识部分) 本章主要学习:基本内容:数据类型:变量:运算符:类型转换,字符串,输入输出,控制流程,大数值以及数组. 1.基本概念: 1)标识符:由字母 ...

  5. 201871010124 王生涛《面向对象程序设计JAVA》第一周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://edu.cnblogs.com/campus/xbsf/ ...

  6. 201871010115——马北《面向对象程序设计JAVA》第二周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  7. 201777010217-金云馨《面向对象程序设计(Java)》第二周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  8. 201871010132——张潇潇《面向对象程序设计JAVA》第二周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  9. 201771010123汪慧和《面向对象程序设计Java》第二周学习总结

    一.理论知识部分 1.标识符由字母.下划线.美元符号和数字组成, 且第一个符号不能为数字.标识符可用作: 类名.变量名.方法名.数组名.文件名等.第二部分:理论知识学习部分 2.关键字就是Java语言 ...

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

    201521123061 <Java程序设计>第七周学习总结 1. 本周学习总结 2. 书面作业 ArrayList代码分析 1.1 解释ArrayList的contains源代码 贴上源 ...

随机推荐

  1. Excel中针对IP地址的排序方法

    新建一个辅助排序列,用辅助列来扩展,辅助列公式如下: =TRIM(TEXT(LEFT(SUBSTITUTE(A1,".",REPT(" ",99)),100), ...

  2. 1-Angular学习篇

    Angular 官方学习网站:https://angular.io 1.安装node.js 在angular主页下载node.js安装包 2.创建angular工程 Windows系统在命令窗口输入: ...

  3. K2助力大鹏绿色环保之路

    K2和大鹏结缘可以追溯到2006年,两家践行绿色环保理念的公司一拍即合,开始了十余年的合作之路,在“绿色环保”的路上留下了坚实的脚印. 绿色能源:LNG   广东大鹏液化天然气有限公司成立于2004年 ...

  4. mysql8.0.13 的docker镜像安装

    1.从docker中获取mysql8.0.13镜像 docker pull mysql:8.0.13通过 docker images 命令查看镜像是否获取到了 2.运行 mysql8.0.13 镜像 ...

  5. 根据ip获取地理信息

    function getIPLoc_sina($queryIP){    $url = 'http://int.dpool.sina.com.cn/iplookup/iplookup.php?form ...

  6. 成员变量位置获取url

  7. Gram格拉姆矩阵在风格迁移中的应用

    Gram定义 n维欧式空间中任意k个向量之间两两的内积所组成的矩阵,称为这k个向量的格拉姆矩阵(Gram matrix) 根据定义可以看到,每个Gram矩阵背后都有一组向量,Gram矩阵就是由这一组向 ...

  8. APP打包提交审核的步骤

  9. 行高(line-height)

    line-height属性 设置元素中文本行高.

  10. strstr函数的运用

    strstr函数用于搜索一个字符串在另一个字符串中的第一次出现,该函数返回字符串的其余部分(从匹配点).如果未找到所搜索的字符串,则返回 false.