版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、班级: 姓名: 学号: 成绩 实验二 Java面向对象技术必做实验目的:1. 理解继承的概念2. 掌握继承的实现3. 理解继承中的覆盖现象4. 理解抽象类的概念,掌握定义抽象类的方法和应用5. 掌握接口的定义和实现接口的方法实验数据记录及分析(或程序及运行结果)1. 按照要求完成程序:1) 声明一个图形类(Shape),含有一个成员变量color(字符串类型),一个无参构造方法,一个有一个字符串参数的构造方法用于初始化颜色变量,一个getColor方法返回颜色值,一个抽象方法getArea获取图形面积,一个toString()方法显示图形的详细信息。public abstract class
2、Shape String color = "兰色"public Shape() public Shape(String color) this.color = color;public String getColor() return color;public void setColor(String color) this.color = color;public String toString() return "颜色:" + color + ",面积:" + getArea();public abstract double ge
3、tArea();2) 声明一个圆形类(Circle)继承自图形类,含有一个成员变量半径r;有一个有两个参数的构造方法用于初始化颜色和半径;一个getArea方法获取圆的面积;一个toString()方法显示圆形的详细信息。public class Circle extends Shape double r;public Circle(String color, double r) super(color);this.r = r;public Circle(double r) this.r = r;public Circle(String color) super(color);public C
4、ircle() public String toString() return "圆形【半径:" + r + " " + super.toString() + "】"public double getArea() return Math.PI * r * r;3) 声明一个矩形类(Rectangle)继承自图形,含有两个double类型的成员变量长a和宽b;有一个有三个参数的构造方法用于初始化颜色、长和宽;一个getArea方法获取矩形的面积;一个toString()方法显示矩形的详细信息。public class Rectangle
5、 extends Shape private double width, height;public Rectangle(String color, double width, double height) super(color);this.width = width;this.height = height;public Rectangle(double width, double height) this.width = width;this.height = height;public Rectangle(double width) this(width, width);public
6、Rectangle() public String toString() return "矩形【宽:" + width + ", 高:" + height + " " + super.toString() + "】"public double getArea() return width * height;4) 声明一个图形工厂类型,内含一个createShape方法,根据用户输入的图形类型的名称,进而提示输入相应信息生成图形对象。import java.util.Scanner;public class Shap
7、eFactory public static Shape createShape(String shape) Scanner sc = new Scanner(System.in);if (shape.equalsIgnoreCase("Circle") System.out.println("请输入圆形的半径:");double r = sc.nextDouble();return new Circle(r); else if (shape.equalsIgnoreCase("Rectangle") System.out.print
8、ln("请输入矩形的宽和高:");double w = sc.nextDouble();double h = sc.nextDouble();return new Rectangle(w, h); else return null;5) 声明一个测试类(TestShape):不断询问用户欲生成图形类型的名称,由图形工厂创建相应图形类型,并打印相应图形的详细,直到用户输入quit为止。import java.util.Scanner;public class TestShape public static void main(String args) Scanner sc =
9、 new Scanner(System.in);System.out.println("请输入欲创建图形的名称(Circle或Rectangle):");String name;while (sc.hasNextLine() name = sc.nextLine();Shape s = ShapeFactory.createShape(name);System.out.println(s);System.out.println("请输入欲创建图形的名称(Circle或Rectangle):");2. 根据要求完成程序:1) 定义名称为PCI的接口,包括启
10、动方法start和关闭方法stop;public interface PCI void start();void stop();2) 定义名称为NetworkCard 的类表示网卡,实现PCI接口,并且其在实现start方法时输出“sending data”,在实现stop方法时输出“network stop.”public class NetworkCard implements PCI public void start() System.out.println("sending data.");public void stop() System.out.println
11、("network stop");3) 定义名称为SoundCard 的类表示声卡,实现PCI接口;并且其在实现start方法时输出“dudu”,在实现stop方法时输出“sound stop.”public class SoundCard implements PCI public void start() System.out.println("dudu.");public void stop() System.out.println("sound stop");4) 定义名称为MainBoard 的类表示主板,包含方法publi
12、c void startPCICard(PCI p),在方法体内通过p来启动组件;包含方法public void stopPCICard(PCI p),在方法体内通过p来关闭组件;public class MainBoard public void startPCICard(PCI p) p.start();public void stopPCICard(PCI p) p.stop();5) 定义一个包含main方法的Test类,在main方法内创建一个MainBoard 对象(用mb来引用),创建一个NetworkCard对象,通过mb分别启动和停止声卡;创建一个SoundCard对象,通过
13、mb分别启动和停止网卡。public class Test public static void main(String args) MainBoard mb = new MainBoard();PCI pci;pci = new NetworkCard();mb.startPCICard(pci);mb.stopPCICard(pci);pci = new SoundCard();mb.startPCICard(pci);mb.stopPCICard(pci);3. 按照要求完成程序(知识点:子类的构造方法一定会调用父类的构造方法)public class Testpublic static
14、 void main(String args)System.out.println("创建父类对象:");SuperClass sc0 = new SuperClass();System.out.println("n创建第一个子类对象:");SubClass sc1 = new SubClass();System.out.println("n创建第二个子类对象:");SubClass sc2 = new SubClass(1);class SuperClassSuperClass( )System.out.println("
15、父类的构造函数");class SubClass extends SuperClassSubClass( )/super();System.out.println("子类的第一个构造函数");SubClass(int i)/super();System.out.println("子类的第二个构造函数");写出程序的运行结果:子类构造函数若没有显式调用父类构造函数,则隐含调用父类无参构造函数,上面代码等价如下代码:public class Testpublic static void main(String args)System.out.pri
16、ntln("创建父类对象:");SuperClass sc0 = new SuperClass();System.out.println("n创建第一个子类对象:");SubClass sc1 = new SubClass();class SuperClassSuperClass( )System.out.println("父类的构造函数");class SubClass extends SuperClassSubClass( ) super();System.out.println("子类的第一个构造函数");S
17、ubClass(int i) super();System.out.println("子类的第二个构造函数");所以得出如下结果:创建父类对象:父类的构造函数创建第一个子类对象:父类的构造函数子类的第一个构造函数创建第二个子类对象:父类的构造函数子类的第二个构造函数要求:去掉SubClass的所有构造函数,然后将Test类中main方法的最后两行语句删除。预测修改后程序的运行结果,并进行验证。public class Testpublic static void main(String args)System.out.println("创建父类对象:")
18、;SuperClass sc0 = new SuperClass();System.out.println("n创建第一个子类对象:");SubClass sc1 = new SubClass();class SuperClassSuperClass( )System.out.println("父类的构造函数");class SubClass extends SuperClass 去掉SubClass的所有构造函数,上面代码等价于如下代码:public class Testpublic static void main(String args)System.out.println("创建父类对象:")
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深度解析(2026)GBT 19212.11-2020变压器、电抗器、电源装置及其组合的安全 第11部分:高绝缘水平分离变压器和输出电压超过1000V的分离变压器的特殊要求和试验
- 财务面试宝典财务知识面试题及答案
- 光纤融接设备项目可行性分析报告范文
- 实战面试题员工自助岗运营专员岗位解析与参考答案
- 物流主管面试题库与参考答案
- 系统集成项目经理的职位全解及答案
- 特殊人群毒理数据亚组展示策略
- 深度解析(2026)《GBT 18481-2001电能质量 暂时过电压和瞬态过电压》
- 电信行业网络运营总监面试题网络优化与安全保障
- 工程项目经理职位的招聘面准备题集
- 医药KA经理工作总结
- 南京市烟草公司2025秋招市场分析岗位面试模拟题及答案
- 冠脉痉挛诊疗新进展
- 舞蹈培训机构薪酬制度设计方案
- 乙肝抗病毒治疗禁忌症
- 中职电动机正反转教学教案示范
- 2025年煤矿矿长招聘考试题库
- DB1331∕T 034-2022 建筑与市政工程无障碍设计图集
- 《ISO 37001-2025 反贿赂管理体系要求及使用指南》专业深度解读和应用培训指导材料之4:6策划(雷泽佳编制-2025A1)
- 委托加工项目管理制度
- 房屋结构安全培训
评论
0/150
提交评论