JAVA实验3.doc_第1页
JAVA实验3.doc_第2页
JAVA实验3.doc_第3页
JAVA实验3.doc_第4页
JAVA实验3.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

洛阳理工学院实验报告系别计算机班级B140502学号B14050219姓名刘望课程名称面向对象程序设计实验日期2016.10.10实验名称类的继承与多态成绩实验目的:通过使用类的继承与多态创建新类,进一步了解类的继承和多态概念, 掌握java程序中类的继承和多态的使用方法,掌握类成员的重载和覆盖的区别及应用。实验条件:安装Myeclipse软件的电脑一台实验内容:1. 定义描述平面中点的类Point,包含实数坐标值(x,y),包含以下方法:(1)三个构造方法,分别为无参构造方法(x、y初始化为0)、提供x和y值的有参数构造方法,拷贝构造方法。(2)转换为字符串(形式如“(12.5, 34)”)的方法toString( )。(3)判断与另外点p是否位置相同的方法equals(Point p)。(4)改变点自身位置的方法changeBy(dx,dy),dx、dy分别为该点在x、y坐标方向上的位移量。2. 继承类Point定义像素类Pixel,增加数据成员color(其类型为实验2定义的颜色类Color),定义以下方法:(1)无参构造方法(x, y为0,color为黑色),提供x、y、color值的有参构造方法。(2)覆盖toString()方法,转换为形式“(x, y)RGB(r, g, b)”的字符串。(3)定义方法Point getPoint(),Color getColor(),分别获得Pixel对象的位置和颜色。(4)改变像素自身值的方法changeBy(color),color为要改变的颜色值。3. 另设计一个类,在其中定义main()方法,测试以上两个类的功能,解释产生的结果。(1)定义Point类的两个点p1(0,0)、p2(20,30), 拷贝构造p3(20,30);(2)以字符串“p1(0,0)、p2(20,30)、p3(20,30)”形式输出三个点;(3)用equals判断p2与p3是否相等,输出结果;(4)定义Pixel类的两个像素pixel1(10,5,红色)、pixel2(10,5,蓝色);(5)分别以字符串“(x, y)RGB(r, g, b)”形式输出像素pixel1、像素pixel2的值;(6)用equals判断pixel1与pixel2是否相等,输出结果;(解释结果和使用的方法);(7)移动Pixel1的位置,移动量为(-5,5),改变Pixel1的颜色为绿色;(解释使用的方法);(8)使p1=pixel1; 以字符串输出p1;(解释结果和使用的方法);(9)使用p1.getPoint(); p1.getColor()获得pixel1像素的位置和颜色;(解释出现的情况);实验结果:源程序:Main:package Point;import Color.Color;public class Main public static void main(String args)/(1)定义Point类的两个点p1(0,0)、p2(20,30), 拷贝构造p3(20,30);Point p1 = new Point();Point p2 = new Point(20,30);Point p3 = new Point(p2);/(2)以字符串“p1(0,0)、p2(20,30)、p3(20,30)”形式输出三个点;System.out.println(p1+p1.toString()+, p2+p2.toString()+, p3+p3.toString();/(3)用equals判断p2与p3是否相等,输出结果;System.out.println(p2.equals(p3)?p2与p3相等:p2与p3不相等);/(4)定义Pixel类的两个像素pixel1(10,5,红色)、pixel2(10,5,蓝色);Color red = new Color(255, 0, 0);/红色Color blue = new Color(0, 0, 255);/蓝色Pixel pixel1 = new Pixel(10, 5, red);Pixel pixel2 = new Pixel(10, 5, blue);/(5)分别以字符串“(x, y)RGB(r, g, b)”形式输出像素pixel1、像素pixel2的值;System.out.println(pixe1:+pixel1.toString()+, pixel2:+pixel2.toString();/(6)用equals判断pixel1与pixel2是否相等,输出结果;(解释结果和使用的方法);System.out.println(pixel1.equals(pixel2)?pixel1与pixel2相等:pixel1与pixel2b不相等);/结果是他们相等,因为他们都调用了父类的方法,而他们的父类部分是一样的,所以结果相等/(7)移动Pixel1的位置,移动量为(-5,5),改变Pixel1的颜色为绿色;(解释使用的方法);Color green = new Color(0, 255, 0);pixel1.changeBy(-5, 5);pixel1.setColor(green);/在Pixel类中定义了一个setColor的方法进行颜色的修改System.out.println(pixe1:+pixel1.toString();/(8)使p1=pixel1; 以字符串输出p1;(解释结果和使用的方法);p1 = pixel1;/子类是一个父类,父类对象执行被子类对象重写了的方法System.out.println(p1.toString();/(9)使用p1.getPoint(); p1.getColor()获得pixel1像素的位置和颜色;(解释出现的情况);System.out.println(位置:+pixel1.getPoint().toString()+颜色: +pixel1.getColor().toString();/System.out.println(位置:+p1.getPoint().toString()+颜色: +p1.getColor().toString();/父类对象不能调用执行子类对象增加的方法Pixel:package Point;import Color.Color;public class Pixel extends Point private Color color;/无参构造方法public Pixel()super();this.color = new Color();/有参构造方法public Pixel(int x, int y, Color c)super(x,y);this.color = new Color(c);/覆盖toString()方法,转换为形式“(x, y)RGB(r, g, b)”的字符串。public String toString()return new String(+super.getX()+,+super.getY()+)+ RGB(+color.getrVal()+,+color.getgVal()+,+color.getbVal()+);/定义方法Point getPoint(),Color getColor(),分别获得Pixel对象的位置和颜色public Point getPoint()return new Point(super.getX(), super.getY();public Color getColor()return new Color(color);public void setColor(Color c)this.color.set(c.getrVal(), c.getgVal(), c.getbVal(); Point:package Point;public class Point private int X;private int Y;public Point()this.setX(0);this.setY(0);public Point(int x, int y)this.setX(x);this.setY(y);public Point(Point p)this.setX(p.X);this.setY(p.Y);public String toString()return new String(+this.X+,+this.Y+);public boolean equals(Point p)return (p.X=this.X&p.Y=this.Y)?true:false;public void changeBy(int x, int y)this.X += x;this.Y += y;/* * return the x */public int getX() return X;/* * param x the x to set */public void setX(int x) X = x;/* * return the y */public int getY() return Y;/* * param y the y to set */public void setY(int y) Y = y;Color:package Color;public class Color private int rVal;private int gVal;private int bVal;public Color()this.set(0, 0, 0);public Color(int r, int g, int b)this.set(r, g, b);public void set(int r, int g, int b)this.setrVal(r);this.setbVal(b);this.setgVal(g);public static Color RGB(int r, int g, int b)return new Color(r,g,b);public String toString()return new String(RGB(+this.getrVal()+,+this.getgVal()+,+this.getbVal()+);public Color(Color c)this.set(c.getrVal(),c.getgVal(),c.getbVal();/* * return the rVal */public int getrVal() return rVal;/* * param rVal the rVal to set */public void setrVal(int rVal) this.rVal = rVal;/* * return the gVal */public int getgVal() return gVal;/* * param gVal the gVal to set */public void setgVal(int gVal) this.gVal =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论