




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实 验 报 告 四课 程Java程序设计实验项目类的继承成 绩学 号201305020115姓 名秦振威实验日期15.10.22专业班级13级软件一班指导教师杨 力实验报告 上传到邮箱 邮件主题 务必写上专业年级(第几班)(否则查不到你没法给成绩) 学号 姓名和实验四 类的继承一【实验目的】1. 掌握类的继承方法。 2掌握变量的继承和覆盖。 3掌握方法的继承、重载和覆盖。 二【实验内容】实验1 Java创建继承的 书写格式在同一源文件中class A /类体public class B extends A /类体仔细阅读 下面的程序 ,观察继承的书写格式class Person String name; int age; void print() System.out.println(name:+name+ age:+age); class Student extends Person String school; void setdata(String name1,int age1,String school1) name=name1; age=age1; school=school1; void printall() print();System.out.println(school:+school); public class TestPerson1 public static void main(String args) Student s1=new Student();/第二步 取消注释 s1.setdata(zhang li, 20,swpu); s1.printall();(1)在子类 Student 中没有name和age ,print()的定义,但 setdata 方法使用了 name和age,printall()方法中 调用了 print(),为什么?因为父类中的name和age定义为默认数据类型,在同包中其他类中可以使用,print()方法同样是默认类型,在同包子类中可以调用;(2)在父类中的 成员 访问控制 都是缺省方式,缺省方式的 成员 ,在同包 子类和其他类是否可以访问,不同包的 子类和其他类是否可以访问在同包子类和其他类中可以访问,不同包的子类和其他类不可以访问;(3)运行程序,观察结果,理解继承的执行过程实验2 理解 父类成员访问控制 在同包子类 不同包 子类 及其他类的 访问限制(1) 将 实验1 中的 父类 Person 中的成员 String name; 改为 private String name; void print() 改为 private print() 观察是否有语法错误,为什么?有语法错误,因为name的类型为私有的,不允许其他类访问,同理print()方法也是这样。 总结 父类private 成员 继承后的 访问 限制(2) 观察下面的 protected 成员 ,在 子类 和 类外 是否能访问class Personprotected String name; int age;protected void print() System.out.println(name:+name+ age:+age); class Student extends Person String school; void setdata(String name1,int age1,String school1) name=name1; age=age1; school=school1; void printall() print();System.out.println(school:+school); public class TestPerson1 public static void main(String args) Student s1=new Student();/第二步 取消注释 s1.setdata(zhang li, 20,swpu); s1.printall(); s1.print();/继承的方法1)把代码 放入 开发工具中,观察是否有语法错误,观察父类保护类型 成员在 子类的是否可以直接使用,在 其他类中 是否可以直接使用(s1.print())在子类和类外可以访问,父类保护类型成员在子类可以直接使用,在其他类中同样可以直接使用2)总结 父类protected 成员 在同包 子类 和其他类 ,不同包子类和其他类中是否可以访问父类的protected成员在同包子类和其他类中可以访问,不同包子类和其他类中不可以访问;(3) )总结 父类public 成员 在同包 子类 和其他类 ,不同包子类和其他类中是否可以访问父类public成员在同包子类和其他类可以访问,不同包子类和其他类同样可以访问。实验3仿照 前面的例子,编写下面的程序定义一个Person类,数据成员包含能够保存姓名的变量name,void setname(String name)实现给name赋值,能够输出姓名的成员函数PrintName()。现从Person类派生出Worker类,该类包括数据成员number用来记录对象的工号;包括void setdata(String name,String number)实现对worker数据成员的赋值,函数成员printinfor()用来输出对象的name和number个人信息。要求:在Worker类的setdate成员函数中调用Person类的成员函数setname()(2)在Worker类的printinfor()成员函数中须调用Person类的成员函数PrintName()。(3)通过main函数 创建 Worker对象 ,实现 数据的输入和输出输入 可以通过键盘 输入public class Person String name; void setname(String name) = name; void PrintName() System.out.println(name); public class Worker extends Person String number;void setdata(String name, String number) = name;this.number = number;void printinfor()PrintName();System.out.println(number);import java.util.Scanner;public class TestPerson1 /* * param args */public static void main(String args) / TODO Auto-generated method stubWorker w1 = new Worker();Scanner scan = new Scanner(System.in); = scan.next();w1.number = scan.next();w1.printinfor();实验4 通过构造函数 在创建子类对象的时候 给 成员变量赋值 观察 父类Person 构造函数的书写,子类构造函数 的书写 和 main函数 调用子类对象的书写形式class Person String name; Person() this(zhang);/调用 自己有参构造函数 Person(String name) =name; void print() System.out.println(name:+name); class Student extends Person String school; Student() Student(String name,String school) super(name);/调用父类 有参构造函数 必须为 第一句 用super this.school=school; void printall() print();System.out.println(school:+school); public class TestPerson1 public static void main(String args) Student s1=new Student();/调用 子类对象 无参构造函数 Student s2=new Student(wang,SWPU);/调用子类对象 对应的有参构造函数 System.out.println(创建子类对象 无参数); s1.printall(); System.out.println(创建子类对象 有参数); s2.printall();(1)仔细阅读意思代码,运行程序 ,观察结果 ,理解 子类构造函数 和父类构造函数的调用顺序,进一步理解 构造函数 只有给成员变量赋初值(2)理解super,super()和 super(参数列表)的含义 ,说出什么情况下需要显式调用super构造方法,并且 super构造方法放置的位置当子类构造函数需要调用父类构造函数时,放在方法的第一条语句(3)子类构造函数 Student() 并没有写super(),创建无参的子类对象的时候 ,是否调用的super()调用了super()仿照上面的例子,编程 对实验3 编程题进行改写定义一个Person类,数据成员包含能够保存姓名的变量name,相关构造函数,void setname(String name)实现给name赋值,能够输出姓名的成员函数PrintName()。现从Person类派生出Worker类,该类包括数据成员number用来记录对象的工号,相关构造函数;包括void setdata(String name,String number)实现对worker数据成员的赋值,函数成员printinfor()用来输出对象的name和number个人信息。通过main函数 创建 Worker无参和有参对象 ,实现 数据的输入和输出输入 可以通过键盘 输入public class Person String name; Person() this(qin); Person(String name) = name; void setname(String name) = name; void PrintName() System.out.println(name); public class Worker extends Person String number;Worker()Worker(String name, String number)super(name);this.number = number;void printinfor()PrintName();System.out.println(number);import java.util.Scanner;public class TestPerson1 /* * param args */public static void main(String args) / TODO Auto-generated method stubWorker w1 = new Worker();Worker w2 = new Worker(xiaowei, 4166);Scanner scan = new Scanner(System.in); = scan.next();w1.number = scan.next();w1.printinfor();w2.printinfor();实验5 通过super类 调用 父类成员观察 父类和子类 程序,子类中如何调用 父类的方法的class TestA String str=testa; int t; void f() System.out.println(调用 父类f(); public class TestB2 extends TestA String str=testb; void f( ) super.f(); System.out.println(调用子类方法); System.out.println(str+,+t); System.out.println(this.str+,+this.t); System.out.println(super.str+,+super.t); public static void main(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 跨学科协同创新促进数字化教学资源整合
- 电子商务平台用户口碑管理与茶叶品牌信任建设
- 半导体材料课程中的学科交叉与融合教学设计
- 安全管理信息化系统的建设与信息共享平台发展
- 巩义机械骗子合同(标准版)
- 公办幼儿园合同(标准版)
- 绿化校园经费申请报告(3篇)
- 楼盘项目验收申请报告(3篇)
- 领取老年补贴申请报告(3篇)
- 丽水建筑安全培训中心课件
- 2025年网络信息安全技术岗位专业知识试卷及答案解析
- 检验员技能测试题及答案
- 2025新款餐饮兼职合同模板
- 网络安全知识宣传科普主题班会课件
- 化学原电池教学课件
- 2025四川省水电投资经营集团有限公司所属电力公司员工招聘6人考试参考试题及答案解析
- 多家俱乐部转让合同范本
- 人工智能应用基础 课件 3.1AI办公
- 第二课 现代媒体艺术的类型和特点教学设计-2025-2026学年高中美术人美版2019选择性必修6 现代媒体艺术-人美版2019
- 2025年财政部高层次财会人才选拔考试综合试题及答案
- DL∕T28112024变电站二次系统通信报文规范
评论
0/150
提交评论