当前位置:文档之家› 实验五 接口与包

实验五 接口与包

实验五  接口与包
实验五  接口与包

《Java语言程序设计》实验报告

}

public String toSting()

{

return"该矩形长为:"+a+",宽为:"+b+",面积为:"+calculateArea();

}

public static void main(String args[])

{

System.out.println(new MyRectangle(25,4).toSting());

}

}

运行结果:

代码:

package exp5;

public class MyCircle implements Area {

protected double r;

public MyCircle(double r)

{

this.r = r;

}

public double calculateArea()

{

return Math.PI*this.r*this.r;

}

public String toSting()

{

return"该圆形半径为:"+r+",面积为:"+calculateArea();

}

public static void main(String args[])

{

System.out.println(new MyCircle(10).toSting());

}

}

运行结果:

实验内容

(2)定义一个外部类Outer,包含属性姓名name和方法getInfo( ),在getInfo( )方法中包含两个属性年龄age和性别sex,并定义一个内部类Inner,在Inner内有sayHello( )方法,在sayHello()方法中输出姓名、年龄和性别的信息。

代码:

package exp5;

import java.util.Scanner;

public class Outer

{

protected Inner charater;

protected String name;

protected int age;

protected String sex;

public void getInfo()

{

Scanner sc = new Scanner(System.in);

System.out.print("年龄:");

int age = sc.nextInt();

System.out.print("性别:");

String sex = sc.next();

this.age = age;

this.sex = sex;

sc.close();

}

private class Inner

{

//Outer.Inner p = new Inner();

v oid sayHello()

{

System.out.println("姓名:"+name+",年龄:"+age+",性别:"+sex);

}

}

public Outer(String name)

{

t https://www.doczj.com/doc/f01402201.html, = name;

t his.getInfo();

t his.charater = new Inner();

}

public static void main(String [] args)

{

O uter p = new Outer("xxx");

p.charater.sayHello();

}

}

运行结果:

实验分析

本次试验运行情况良好。通过本次试验我掌握接口和的实现和使用方法、了解内部类的实现原理、理解了包的概念和作用,掌握了包的编写以及如何使用包中的类,进一步锻炼了我的编程能力。

java继承与接口实验三

信息与计算科学专业实验报告 课程名称Java课程设计总实验学时: 16 第3 次共6 次 实验项目名称继承与接口本次实验学时数: 3 实验类 型 验证 日期20 12 年 3 月6 日星期二年级 学生姓名学号课任教师 1.实验目的 巩固如下概念:子类的继承性、子类对象的创建过程、成员变量的继承与隐藏、方法的继承与重写;掌握上转型对象的使用;掌握接口回调技术。 2.实验要求 实验前,应事先熟悉相关知识点,拟出相应的实验操作步骤,明确实验目的和要求;实验过程中,服从实验指导教师安排,遵守实验室的各项规章制度,爱护实验仪器设备;实验操作完成后,认真书写实验报告,总结实验经验,分析实验过程中出现的问题。 3.实验内容 1、继承 编写一个Java应用程序,除主类外,该程序中还有4个类:People、ChinaPeople、AmericanPeople和BeijingPeople类。要求如下:People类有访问权限是protected的double 型成员变量:height和weight,以及public void speakHello()、public void averageHeight()、public void averageWeight()方法;ChinaPeople类是People的子类,新增了public void chinaGongfu()方法。要求ChinaPeople重写父类的public void speakHello()、public void averageHeight()、public void averageWeight()方法;AmericanPeople类是People的子类,新增public void americanBoxing()方法。要求AmericanPeople重写父类的public void speakHello()、public void averageHeight()、public void averageWeight()方法;BeijingPeople类是ChinaPeople的子类,新增public void beijingOpera()方法。要求BeijingPeople重写父类的public void speakHello()、public void averageHeight()、public void averageWeight()方法;请按模板要求,将【代码】替换为Java程序代码。 2、上转型对象 编写一个Java应用程序,要求有一个abstract类,类名为Employee。Employee的子类有YearWorker、MonthWorker和WeekWorker。YearWorker对象按年领取薪水,MonthWorker按月领取薪水,WeekWorker按周领取薪水。Employee类有一个abstract方法:public abstract double earnings(); 子类必须重写父类的earnings()方法,给出各自领取报酬的具体方式。有一个

面向对象--类继承与接口实验报告

实验十类继承与接口(二) 课程名称:面向对象程序设计 实验项目名称:实验十类继承与接口(二) 学生姓名:专业:学号: 实验地点:实验日期:年月 【实验目的】 1.掌握Java类的继承特点,包括子类声明、对象创建 2. 掌握域的继承与隐藏的特点和用法 3. 掌握方法的继承与重写的特点和用法 【实验内容】 一. 改错题 检查下面代码是否有错,如果有错,写明错误原因,并修正错误。 (1) class Aaa{ int i; Aaa(){i=-1; } Aaa(int a){ i = a;} Aaa(double d){Aaa((int)d);} } 是否出错:是 出错原因(如果出错):构造器调用构造器不能直接用名 class Aaa{ int i; Aaa(){i=-1; } Aaa(int a){ i = a;} Aaa(double d){this((int)d);} }

(2) class Aaa{ int i; Aaa(){i=-1; } Aaa(int a){ i = a;} Aaa(double a){int b=(int)a;this(b);} } 是否出错:是 出错原因(如果出错):this放第一行 class Aaa{ int i; Aaa(){i=-1; } Aaa(int a){ i = a;} Aaa(double a){this((int)a);} } (3) class Aaa{ int i; Aaa(int a){ i = a;} } class Bbb extends Aaa{ Bbb(){ } } 是否出错:是 出错原因(如果出错):父类没有无参构造,子类中药通过super调用父类构造class Aaa{ int i; Aaa(int a){ i = a;} } class Bbb extends Aaa{ Bbb(int a) { super(a); } } (4) class Aaa{ private int i;

实验四 接口和包-实验报告纸

南京信息工程大学实验(实习)报告实验(实习)名称 Java图形界面设计实验(实习)日期 2014.5.14 得分指导教师方巍 院计软院专业网络工程年级二班次一姓名胡啸学号 20121346024 1.实验目的: 1)了解java语言图形界面的设计 2)了解swing和awt包中各个组件与容器 3)了解applet的运行 2.实验内容: (1)编写一个程序实现java的awt包中布局器的应用 (2)编写两个程序,测试java组件的运用与事件响应处理的运用. (3)运行两个applet小程序,了解applet的多媒体处理 实验步骤 一.(1)打开ecplise,新建一个项目001在项目中新建一个包com.g,然后在包中新建一个名为GridLay的类 (2)代码如下 package com.g; import java.awt.*; import javax.swing.*; public class GridLay { private JFrame frame; private JButton b1,b2,b3,b4,b5,b6; public static void main(String args[]){ GridLay that=new GridLay(); that.go(); } void go() { frame=new JFrame("Grid example"); Container contentPane=frame.getContentPane(); contentPane.setLayout(new GridLayout(3,2)); b1=new JButton("grid_1"); b2=new JButton("grid_2"); b3=new JButton("grid_3"); b4=new JButton("grid_4");

实验11-类继承与接口(三)实验报告

浙江大学城市学院实验报告 课程名称:面向对象程序设计 实验项目名称:类继承与接口(三) 学生姓名专业:学号: 实验地点:实验日期:年月日 【实验目的】 1.巩固Java类继承的相关知识 2.理解对象上转型技术的优点和用途。 3.掌握接口的特点 4.接口与抽象类的异同之处 【实验内容】 一、类继承相关知识强化 1. 执行以下程序,给出执行Bbb的结果,并说明指出类Bbb的this.i与super.i的含义(即它们都对应哪个变量)。 class Aaa{ int i; Aaa(int a){ i = a;} } class Bbb extends Aaa{ int j,k; Bbb(int i){ super(i); j = this.i; k = super.i; } public static void main(String[] args){ Bbb b = new Bbb(18); System.out.println(b.j +"\t" + b.k); } } 执行Bbb的结果:

this.i与super.i的含义(即它们都对应哪个类中定义的变量): 都对应Aaa类中的变量。 2.接着上面例子,将类Bbb改写为以下代码,请写出程序运行结果,并说明这个例子与上面例子的区别。 class Bbb extends Aaa{ int i= -1,j= -1,k= -1; //比上面例子增加一个实例变量i; Bbb(int i){ super(i); j = this.i; //本语句含义是:Bbb类中的变量i的值赋给j k = super.i; //本语句含义是:访问Aaa类中的变量i并将值赋给k } public static void main(String[] args){ Bbb b = new Bbb(18); System.out.println(b.j +"\t" + b.k); } } 执行Bbb的结果: -1 18 这个例子与上面例子的区别: 在Bbb类中也定义了变量i,将Bbb的直接超类Aaa中的变量i给覆盖掉了。 3.对以下程序,给出执行Bbb的结果,并分析Bbb中main方法中a.show(1), b.show(1), c.show(1)的结果。 class Aaa{ void show(){ System.out.println("Aaa中定义的show()"); } void show(int i){ System.out.println("Aaa中定义的show(int i)"); } } class Bbb extends Aaa{ void show(){ System.out.println("Bbb中定义的show()"); }

Java继承与多态实验报告

西安邮电大学 (计算机学院) 课内实验报告 实验名称:继承与多态 专业名称:计算机科学与技术 班级:计科1405班 学生姓名:高宏伟 学号:04141152 指导教师:刘霞林 实验日期:2016.10.13

一、实验目的 通过编程和上机实验理解Java 语言的继承和多态特性,掌握变量的隐藏、方法的覆盖、重载,掌握抽象类和接口的使用。 二、实验要求 1.编写体现类的继承性(成员变量、成员方法、成员变量隐藏)的程序。 2.编写体现类的多态性(成员方法重载)的程序。 3.编写体现类的多态性(构造方法重载)的程序。 4.编写使用接口的程序。 三、实验内容 (一)类的继承 1.创建公共类Student. (1)编写程序文件Student.java,源代码如下: public class Student { protected String name; //具有保护修饰符的成员变量 protected int number; void setData(String m,int h) //设置数据的方法 { name =m; number= h; } public void print() //输出数据的方法 { System.out.println(name+", "+number); } } (2)编译Student.java,产生类文件Student.class。 2.创建继承的类Undergraduate

(1)程序功能:通过Student 类产生子类undergraduate,其不仅具有父类的成员变量name()、number(学号),还定义了新成员变量academy(学院)、department (系)。在程序中调用父类的print 方法。 (2)编写Undergraduate 程序: class Undergraduate extends Student { 【代码1】//定义成员变量academy 【代码2】//定义成员变量department public static void main(String args[]) { 【代码3】//创建一个学生对象s 【代码4】//用父类的setData方法初始化对象s 【代码5】//对象s调用print方法 【代码6】//创建一个大学生对象u 【代码7】//调用父类的成员方法setData初始化对象u 【代码8】//设置对象u的成员变量academy 【代码9】//设置对象u的成员变量department System.out.print(https://www.doczj.com/doc/f01402201.html,+", "+u.number+", "+u.academy+", "+u.department); } } (3)编译并运行程序 注意:公共类Student 与undergraduate 类要在同一文件夹(路径)。 (二)方法的重载 (1)程序功能:对不同的数进行排序输出。在IntSort 类中定义3 个同名的方法sort。 (2)编写Sort.java 文件,源代码如下。 import java.awt.Graphics; import java.applet.Applet; class IntSort { public String sort(int a, int b) { if (a>b) return a+""+b; else return b+""+a; } public String sort(int a, int b, int c) { int swap; if (a

实验二 继承与接口实验

实验二继承与接口 一、实验目的 1.掌握类的继承机制。 2.熟悉类中成员变量和方法的访问控制。 3.掌握接口与包的使用,熟悉方法的多态性。 二、实验内容 1.定义父类及子类,在子类中重写父类的方法 2.练习接口与包的使用 三、.实验步骤与要求 第1题继承 编写一个Java应用程序,除了主类外,该程序中还有4个类:People, ChinaPeople, AmericanPeople 和BeijingPeople类。此四个类的继承关系如下图所示: 要求ChinaPeople,American类均重写其父类People类的speakHello, averageHeight, averageWeight方法,BeijingPeople类重写其父类ChinaPeople类的speakHello, averageHeight, averageWeight方法。 源代码: package people; class people { protected double height ; protected double weight ;

public void speakHello() //问候语的函数 { System.out.println("hello"); } public void averageHeight()//人们的平均身高{ height=170; System.out.println(+height); } public void averageWeight()//人们的平均体重{ weight=120; System.out.println(+weight); } } class Chinapeople extends people { public void speakHello() { System.out.println("你好"); } public void averageHeight() { height=172; System.out.println(+height); } public void averageWeight() { weight=115; System.out.println(+weight); } public void chinaGongfu()//中国功夫的方法 { System.out.println("中国功夫"); } } class Americanpeople extends people { public void speakHello() { System.out.println("hello"); } public void averageHeight()

微型计算机原理与接口技术第四章课后答案

第四章 1. 下列变量各占多少字节? A1 DW 23H,5876H A2 DB 3 DUP(?),0AH,0DH, ‘$’ A3 DD 5 DUP(1234H, 567890H) A4 DB 4 DUP(3 DUP(1, 2,’ABC’)) 答:A1占4个字节 A2占6个字节 A3占40个字节 A4占60个字节 2. 下列指令完成什么功能? MOV AX,00FFH AND 1122H+3344H MOV AL,15 GE 1111B MOV AX,00FFH LE 255+6/5 AND AL, 50 MOD 4 OR AX, 0F00FH AND 1234 OR 00FFH 答:(1)将0066H传送给AX (2)将0FFH传送给AL (3)将0FFFFH传送给AX (4)AND AL,02H (5)OR AX,00FFH 3. 有符号定义语句如下: BUF DB 3,4,5,’123’ ABUF DB 0 L EQU ABUF-BUF 求L的值为多少? 答:L=6 4. 假设程序中的数据定义如下: PAR DW ? PNAME DB 16 DUP(?) COUNT DD ? PLENTH EQU $-PAR 求PLENTH的值为多少?表示什么意义? 答:PAR的偏移地址为0,PLENTH当前偏移地址$=2+16+4=22, $-PAR=22,故PLENTH 的值为22。 若在PLENTH所在行有变量定义,则$表示该变量的偏移地址,即$表示PLENTH所在行的当前偏移地址。故PLENTH表示从当前行到PAR之间定义的变量所占的字节个数。 5. 对于下面的数据定义,各条MOV指令执行后,有关寄存器的内容是什么? DA1 DB ? DA2 DW 10 DUP(?) DA3 DB ‘ABCD’ MOV AX, TYPE DA1 MOV BX, SIZE DA2

实验6继承与接口

山西大学计算机与信息技术学院 实验报告 姓名学号专业班级 课程名称 Java实验实验日期成绩指导教师批改日期实验名称实验 6 继承与接口 [实验目的] 1、掌握java 继承中父类及其子类的定义方法。 2、掌握子类重写父类同名方法的方法。 3、掌握接口的用法。 (1) 学习如何定义接口 ; (2) 掌握接口的实现方式 ; (3) 使用实现了接口的类 ; (4) 理解接口与抽象类的区别。 [实验要求] 1、复习理论教学中所学的内容。 2、认真进行实验预习,查阅参考书,书写源程序,书写实验预习报告。 3、认真总结实验并书写实验报告。 [实验内容] 1、类的继承性练习 (1) 程序源代码如下。 public class Student{ protected String xm; //姓名,具有保护修饰符的成员变量 protected int xh;//学号 void setdata(String xm,int xh){ //设置数据的方法 this.xm=xm; this.xh=xh; } public void print(){ //输出数据的方法 System.out.println(xm+", "+xh); } } class TestStudent{//测试类 public static void main(String[] args) { Student s = new Student(); s.setdata("小红", 2010242555); s.print(); }

} (2) 编译源并运行程序。贴图如下 图一 (二)创建将被继承的类 (1) 程序功能:通过Student类产生子类CollegeStudent,其不仅具有父类的成员变量xm(姓名)、xh(学号),还定义了新成员变量xy(学院)、bj(bj)。在程序中调用了父类的print 方法,同时可以看出子类也具有该方法。 程序代码: public class CollegeStudent extends Student{ protected String xy; protected int bj; void setdata(String xm,int xh,String xy,int bj){ super.setdata(xm, xh); this.xy = xy; this.bj = bj; } public void print() { super.print(); System.out.print("学院:"+xy+"班级:"+bj); } } class TestCollegeStudent{ public static void main(String[] args) { CollegeStudent cs = new CollegeStudent(); cs.setdata("小蓝", 2010242555, "计算机学院", 1); cs.print(); } } 运行结果贴图:

继承与接口实验

深圳大学 实验报告 课程名称:Java 实验序号:实验2 实验名称:继承与接口 班级:计算机3 姓名:卢志敏 同组人:实验日期:2008 年11 月16 日 教师签字:

一、实验目的 1.继承 ●子类的继承性 ●子类对象的创建过程 ●成员变量的继承与隐藏 ●方法的继承与重写 2.上转型对象 掌握上转型对象的使用 3.接口回调 掌握接口回调技术 二、实验环境 JDK1.5 Winxp 三、实验步骤与方法 实验1 编写一个Java应用程序,除了主类外,该程序中还有4个类:People、ChinaPeople、AmericanPeople类。该程序具体要求如下: ●People类有访问权限是protected的double型变量:height和weight,以及public void speakHello()、public void averageHeight() 和public void averageWeight()方法。 ●ChinaPeople类是People的子类,新增了public void chinaGongfu()方法。要求 ChinaPeople重写父类的public void speakHello()、public void averageHeight()和 public void averageWeight()方法。 ●AmericanPeople类是People的子类,新增public void americanBoxing()方法。要求 AmericanPeople重写父类的public void speakHello()、public void averageHeight() 和public void averageWeight()方法。 ●BeijingPeople是ChinaPelple的子类,新增public void beijingOpera()方法。要求 ChinaPeople重写父类的public void speakHello()、public void averageHeight()和 public void averageWeight()方法。 实验2 要求有一个abstract类,类名为Employee。Employee的子类有YearWorker、MonthWorker 和WeekWorker。YearWorker对象按年领取薪水,MonthWorker按月领取薪水,WeekWorker 按周领取薪水。Employee类有个abstract方法: Public abstract earnings(); 子类必须重写父类的earnings()方法,给出各自领取薪水的具体方式。 有一个Company类,该类用Employee数组作为成员,Employee数组的单元可以是YearWorker对象的上转型对象、MonthWorker对象的上转型对象、WeekWorker对象的上转型对象。程序能输出Company对象一年需要支付的薪水总额。 实验3 卡车要装载一批货物,货物有3种商品:电视、计算机和洗衣机。需要计算出大货车和小货车各自做载重的3种货物的总重量。

java继承与接口 实验报告

应用数学学院信息与计算科学专业 2 班学号3111008162 姓名许庆平教师评定_________________ 实验题目继承与接口 一、实验目的与要求 实验目的: 1、掌握类的继承关系。 2、掌握接口的定义与使用。 实验要求: 按下列要求编写Java程序: 1、定义接口Printx,其中包括一个方法printMyWay(),这个方法没有形参,返回值为空。 2、编写矩形类,矩形类要求实现Printx接口,有求面积、求周长的方法,printMyWay()方法要能显示矩形的边长、面积和周长。 3、编写正方形类作为矩形类的子类,正方形类继承了矩形类求面积和周长的方法,新增加求对角线长的方法,重写printMyWay()方法,要求该方法能显示正方形的边长、面积、周长和对角线长。 二、实验方案 先按要求定义接口Printx,再创建一个矩形类Rectangle,有成员变量length 和width,area()求面积,circle()求周长,用PrintMyWay()显示。 然后定义正方形类,继承Rectangle类,定义求对角线长的函数duijiaoxian()。面积和周长用父类中的area()和circle()实现。用PrintMyWay()显示。最后在主类中实现这两个类。 三、代码如下 interface Printx

{ void PrintMyWay();} class Rectangle implements Printx { int length,width; Rectangle(int x,int y){ length=x; width=y; } int area(){ return length*width; } int circle(){ return 2*(length+width); } public void PrintMyWay(){ System.out.println("矩形的长为:"+length); System.out.println("矩形的宽为:"+width); System.out.println("矩形的面积为:"+area()); System.out.println("矩形的周长为:"+circle()); }

第四章 练习题及答案

第四章练习题及答案 一、填空题 1、CPU与I/O接口间的信息一般包括______________三种类型。 答案:数据信息状态信息控制信息 2、CPU通过一个外设接口同外设之间交换的信息包括数据信息、状态信息和_________. 答案:控制信息 3、状态信息表示外设当前所处的_________,例如READY(就绪信号)表示输入设备已准备好信息,BUSY(忙信号)表示输出设备是否能接收数据。 答案:工作状态 4、控制信息是由CPU发出的、用于控制外设接口工作方式以及外设的_________的信息。 答案:启动和停止 5、74LS244是一种__________输出的八缓冲器和线驱动器。 答案:三态 6、74LS245是一种三态输出的__________总线收发器。 答案:八 7、在8086/8088工作于最大模式时,总线周期状态S2、Sl、S0中至少有一个状态为______________. 答案:低电平 8、当LOCK为_______时,其它总线主控部件都不能占用总线。 答案:低电平 9、在DMA期间,LOCK端处于________。 答案:高阻状态 10、在T2、T3、Tw、T4状态时,S6为________,表示8088/8086当前连在总线上。 答案:低电平 11、CPU与内存及I/O装置间传送数据的硬件线路通道称为________。 答案:总线 12、CPU中的总线接口部件BIU,根据执行部件EU的要求,完成CPU与_________________的数据传送。答案:存储器、I/O设备 13、各类微处理器的引脚信号即片总线,例如8086/8088CPU的地址线、数据线和控制线等即构成该芯片的__________。 答案:片总线 14、当存储器的读出时间大于CPU所要求的时间时,为了保证CPU与存储器的周期配合,就要利用_________信号,使CPU插人一个TW状态。 答案:READY 15、片总线通常包括地址总线、数据总线和_________总线等三组总线。 答案:控制 16、地址总线通常是_____总线,由CPU输出,8位微处理器有16条地址总线,16位微处理器有20条或更多。 答案:单向 17、总线通信协议主要是解决信息传输的开始和结束问题,是实现总线__________和信息传送的手段,常用的通信协议有同步方式和异步方式两种。 答案:仲裁 18、8086/8088CPU的数据线和地址线是以_________方式轮流使用的。 答案:分时

实验4 继承与接口(一)

实验4、继承与接口(一) 一、实验目的 1.子类的继承性 2.子类对象的创建过程 3.成员变量的继承与隐藏 4.方法的继承与重写 5.掌握继承实现的各种限制。 6.掌握子类对象的实例化过程。 7.掌握方法重写的概念及实现。 8.了解Object及对Object类的主要方法进行重写。 二、实验内容及步骤 1.理解继承的含义 任务一:学习继承实例 (1)内容及步骤 步骤一:创建一个基本的学生类,源代码如下。 public class Student { protected String name; //具有保护修饰符的成员变量protected int id; void setdata(String name,int id) //设置数据的方法 { https://www.doczj.com/doc/f01402201.html, =name; this.id= id; } public void print() //输出数据的方法 { System.out.println("name="+name+ " ,"+ " id="+id);} } 步骤二:编译Student.java,产生类文件Student.class。 步骤三:创建继承的类

通过Student 类产生子类ColStu,其不仅具有父类的成员变量,还定义了新成员变量xy(学院)、xi(系)。在程序中调用了父类的print 方法,同时可以看出子类也具有该方法。源代码如下: class ColStu extends Student { protected String xy; protected String xi; public static void main(String args[]) { Student p1 = new Student(); p1.setdata("帅零",12321) ; p1.print(); ColStu s1 = new ColStu() ; s1.setdata("郭丽娜",12345); //调用父类的成员方法 s1.xy="经济管理学院"; //访问本类的成员变量 s1.xi="信息管理系"; //访问本类的成员变量 s1.print(); System.out.println("name="+https://www.doczj.com/doc/f01402201.html,+"," +"xy="+s1.xy+","+"xi="+s1.xi); } } 步骤四:编译并运行程序。 注意:公共类Student 与ColStu类要在同一文件夹(包)内。 (1)实验报告 将运行结果写在实验报告中。 思考:如果子类与父类不在同一包中子类会继承父类哪些变量和方法? 任务二:根据父类及以下描述编写子类。 在Vehicle类的基础上创建一个Tractor(拖拉机)类,它不但拥有journey,wheelNum,loadNum,driveSpeed 四种属性和driveAt()方法,而且还拥有自己的plough(耕地)方法,在该方法中要求能够显示journey,wheelNum,loadNum三个属性的值,在应用程序中分别使用Tractor类的对象调用plough()和driveAt方法。 public class Vehicle{ public float journey;

实验报告 继承、多态与接口

实验三继承、多态与接口 一、实验目的 1.掌握Ja v a的继承机制; 2.掌握对象引用的多态方法; 3.掌握接口的特点、结构和调用; 4.掌握接口和继承的混合使用。 二、实验要求 1.编写体现类的继承性(成员变量、成员方法、成员变量隐藏) 的程序。 2.编写体现类的多态性(成员方法重载、构造方法重载)的程 序。 3.编程使用系统接口的技术和创建自定义接口的方法。 三、实验内容 (一)类的继承性练习 1.理解继承的含义 新类可从现有的类中产生,并保留现有类的成员变量和方法并可根据需要对它们加以修改。新类还可添加新的变量和方法。这种现象就称为类的继承。 当建立一个新类时,不必写出全部成员变量和成员方法。只要简单地声明这个类是从一个已定义的类继承下来的,就可以引用被继承类的全部成员。被继承的类称为父类或超类 (su pe rc la ss),这个新类称为子类。 J a va 提供了一个庞大的类库让开发人员继承和使用。设计这些类是出于公用的目的,因此,很少有某个类恰恰满足你的需要。你必须设计自己的能处理实际问题的类,如果你设计的这个类仅仅实现了继承,则和父类毫无两样。所以,通常要对子类进行扩展,即添加新的属性和方法。这使得子类要比父类大,但更具特殊性,代表着一组更具体的对象。继承的意义就在于此。 2.创建公共类S Y3_1_P 编写程序文件S Y3_1_P.ja va,源代码如下:pu bl ic c la ss SY3_1_P{ pr ote c te d St ri ng x m; //具有保护修饰符的成员变量 pr ote c te d in t xh; vo id s et da ta(S tr in g m,in t h) { //设置数据的方法 xm =m; xh = h; } pu bl i c vo id p ri nt(){//输出数据的方法 Sy st em.o ut.pr i nt ln(x m+", "+xh); } }

包、接口和事件

包、接口和事件 【课前思考】 1.什么是包?如何创建和使用包? 2.什么是接口?如何声明和实现接口? 2.在Java中如何处理事件?JDK1.0和JDK2.0处理事件有什么不同? 【学习目标】 掌握如何创建和使用包,了解接口的概念,掌握接口的声明及其实现,理解在Java中如何处理事件,掌握AWT各个组件所采用的事件处理接口。 【学习指南】 理解概念,多实践,勤思考,举一反三。 【难重点】 重点: 接口的用法。 难点: 组件所采用的事件处理接口。 9.1 包 利用面向对象技术开发一个实际的系统时,通常需要定义许多类共同工作,为了更好地管理这些类,Java中引入了包的概念。就像文件夹(目录)把各种文件组织在一起,使硬盘更清晰、有条理一样,Java中的包把各种类组织在一起,使得程序功能清楚、结构分明。特别地,使用包可以有利于实现不同程序间类的复用。 包是一种松散的类的集合。一般不要求处于同一个包中的类有明确的相互关系,如包含、继承等,但是由于同一包中的类在缺省情况下可以互相访问,所以为了方便编程和管理,通常把需要在一起工作的类放在一个包里。 Java系统中包括io、lang、applet、awt、math、net、rmi、security、text、sql、util、beans 等包。 9.1.1创建包 在缺省情况下,系统会为每一个.java源文件创建一个无名包,该.java文件中定义的所有类都隶属于这个无名包,它们之间可以相互引用非private的属性或方法。但是由于这个无名包是没有名字的,所以它不能被其他包所引用,即无名包中的类不能被其他包中的类所引用和复用。为了解决这个问题,可以创建有名字的包。 创建包的语句需要使用关键字package,而且应该是整个.java文件的第一个语句。 package 包名; 利用这个语句就可以创建一个具有指定名字的包,当前 .java文件中的所有类都被放在这个包中。例如下面的语句是合法的创建包的语句: package StudentClass; package StudentClass.SubClass; 实际上,创建包就是在当前文件夹下创建一个子文件夹,以便存放这个包中包含的所有类的 .class文件。上面的第二个创建包的语句中的符号“.”代表了目录分隔符,即这个语句创建了两个文件夹。第一个是当前文件夹下的子文件夹StudentClass;第二个是StudentClass下的子文件夹SubClass,当前包中的所有类就存放在这个文件夹里。 【例9-1】 package com.StudentClass; public class specialStudent{ public static void main(String args[]){ System.out.println("Hello package");

Java实验3 继承与接口

实验3 继承与接口 [实验目的] 1、掌握java 继承中父类及其子类的定义方法。 2、掌握子类重写父类同名方法的方法。 3、掌握接口的用法。 [实验要求] 1、复习理论教学中所学的内容。 2、认真进行实验预习,查阅参考书,书写源程序,书写实验预习报告。 3、认真总结实验并书写实验报告。 [实验课时] 2学时 [实验教学方式] 学生上机实验,教师随堂指导。 [实验内容] 1、定义父类People,分别定义People类的子类ChinaPeople,AmericanPeople和BeijingPeople 并分别重写父类中的各个方法。最后在主方法中分别创建各子类的对象并调用各自的方法打印输出信息。该程序的模板代码如下:请将其补充完整并调试运行。 class People { protected double weight,height; public void speakHello() { System.out.println("yayawawa"); } public void averageHeight() { height=173; System.out.println("average height:"+height); } public void averageWeight() { weight=70; System.out.println("average weight:"+weight); } } class ChinaPeople extends People { 【代码1】 //重写public void speakHello()方法,要求输出类似“你好,吃了吗”这样的 //汉语信息 【代码2】 //重写public void averageHeight()方法,要求输出类似

类继承与接口(一)

实验9 类继承与接口(一) 一、实验目的和要求 1. 掌握Java类的继承特点,包括子类声明、对象创建等。 2. 掌握域的继承与隐藏的特点。 3. 掌握方法的继承与重写的特点。 二、实验内容 1. 程序阅读与分析 2. 程序填空:按照需求将代码空缺处补齐。 3. 成员的访问权限 三、实验步骤 1. 程序阅读与分析 执行类ConstructorChain, 请写出输出结果, 并分析出现该结果的原因。提示:参考构造方法链。 class ConstructorChain{ p ublic static void main(String[] args){ new Son(); } } class Grandpa{ Grandpa(){ S ystem.out.println("Grandpa"); } } class Father extends Grandpa{ Father(){ S ystem.out.println("father"); } } class Son extends Father { S on(){ S ystem.out.println("son"); } }

(1) 运行结果: (2) 分析继承链上各个类构造方法的调用次序: 分析是否是超类构造方法调用在前: Son();Father();Grandpa(); 沿着继承链从子类开始一直到object为止 (2)在命令行上键入java –verbose ConstructorChain, 并回车, 观察各个类的加载次序. 各个类的加载次序是: 分析是否超类先加载: 各个类的加载顺序依次是:class Grandpa->class Father extends Grandpa->class Son extends Father 是,在加载某个类的时候,如果它的某个超类还没有被加载,那么必须首先加载这个超类;继承链上加载超类的顺序是:从object类开始知道当前类。就是继承链上接近object的超类,越优先被加载;默认情况下,同一个类仅需加载一次,既不会重复多次加载同一个类。 2.程序填空。按照以下需求将代码空缺处补齐: 类的继承 ?需求分析: ?校务管理系统,设计类来描述系统中的两个角色:教师与学生 ?public class Teacher ?public class Student ?抽取共性 ?public class Person ?考虑在Person中设计教师与学生的公有域 已知部分代码设计如下

《微机原理与接口技术》第四章习题集与解答

习题集解答

第五章汇编语言程序设计 1.从4000H单元开始定义数据段如下,请画出所定义存储器的分配图。 BUF SEGMENT DAl DW 3456H DA2 DB 2 DUP(7,8) BUF ENDS 答: 存储器的分配图 2.对于习题1的定义,请说明下列每条指令执行后的结果。 1、MOV AX,SEG DAl 2、MOV AX,SEG DA2 3、MOV BX,OFFSET DAl 4、MOV BX,OFFSET DA2 5、MOV CX,TYPE DAl 6、MOV CX,TYPE DA2 7、MOV DX,LENGTH DAl 8、MOV DX,LENGTH DA2 9、MOV AX,SIZE DAl ‘ 10、MOV AX,SIZE DA2 答:1、(AX)=(DS) 2、(AX)=(DS)+2

3、(BX)=4000H 4、(BX)=4002H 5、(CX)=2 6、(CX)=1 7、(DX)=2 8、(DX)=4 9、(AX)=2 10、(AX)=4 3.已知数据定义如下,请计算变量PL的值是多少? DATA DB ‘AB’ DATAl DB 10 DUP(?) PL EQU $-DATA 答:PL=DATA+12-DATA=12 4.已知A=25、B=15、C=4,请计算下列表达式的值。 (1) A × 50+B (2) A MOD C+B (3)(A+4)×B-3 (4) B/3 MOD 4 (5)A LE B (6) A XOR 50 答:(1) A ×50+B= 25 ×50+15=1250+15=12515 (2) A MOD C+B=25 MOD 4+15=1+15=16

相关主题
文本预览
相关文档 最新文档