西安邮电大学java类与对象实验报告.doc_第1页
西安邮电大学java类与对象实验报告.doc_第2页
西安邮电大学java类与对象实验报告.doc_第3页
西安邮电大学java类与对象实验报告.doc_第4页
西安邮电大学java类与对象实验报告.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

西 安 邮 电 大 学 (计算机学院)Java程序设计课内实验报告实验名称: 类与对象 专业名称: 软件工程班 级: 学生姓名: 学号(8位): 指导教师: 实验日期: 2014年4月2日一. 实验目的及实验环境理解类与对象的概念,掌握 Java 类的定义(域、方法)、创建对象和使用对象。理解包的概念,会创建包,引入包。掌握访问权限规则。环境:eclipse二. 实验内容1. 设计 Point 类用来定义平面上的一个点,用构造方法传递坐标位置。默认构造方法创建坐标原点,带参数构造方法根据指定坐标创建一个点对象。提供 get、set 方法返回和设置坐标。distance 返回两个点之间距离或当前点到指定坐标之间的距离。同时设计应用类进行测试。2. 设计一个三角形类,能判断给定三边是否构成三角形,能判断三角形的类型(普通、等腰、等边、直角,用枚举类型(参见第六章)能计算周长与面积。并在应用类中演示。3.定义一个 Line 类,该类包含两个 Point 类型的实例变量,用以表示线段的两个端点。提供以下方法:计算线段长度;判断线段是否水平、判断是否为垂直、计算线段斜率、计算线段中点、判断两条线段是否相等。并在应用类中演示。4.定义两个包 p1、p2,三个类 C1、C2、C3.其中 C1、C2 位于 p1 中,C3 位于 p2 中。在 C1 中定义四个不同访问控制修饰类型的变量,在 C2、C3 中进行访问测试。并练习在 JDK 命令行下生成包。三方案设计对于第一题,用了staticstatic double distance(Point p1,Point p2)return Math.sqrt(p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y);对于第二题,采用if else,严谨的判断三角形的形状public void judge()if(a=b | b=c | c=a)if(a=b & b=c)System.out.println(该三角形为等边三角形。);elseSystem.out.println(该三角形为等腰三角形。);if(a*a+b*b=c*c | a*a+c*c=b*b |b*b+c*c=a*a)System.out.println(该三角形为等腰直角三角形。);elseif(a*a+b*b=c*c | a*a+c*c=b*b |b*b+c*c=a*a)System.out.println(该三角形为直角三角形。);elseSystem.out.println(该三角形为普通三角形。);对于第三题和第四题设置相应的类和包,注意继承和构造四测试数据及运行结果1 正常测试数据(3组)及运行结果;(1)(2)(3)2非正常测试数据及运行结果。(1)五总结1实验过程中遇到的问题及解决办法;遇到错误时eclipse显示错误,通过错误提示找到相应地方并进行修改;一个java程序里只能有一个public修饰的class,那就是与文件名相同的类2对设计及调试过程的心得体会。用面向对象的思想写程序,面向对象思想,其最根本的目的是“研发工具”,或者说“代码复用”,或者说“降低软件开发成本”,“工具”开发,开发出的工具是给软件开发人员,进一步开发的。工具本身是用来被别人“使用”,因此,需要防止使用者对工具的随意修改。基本上,数据成员都是私密的;方法成员都是公开的。六附录:源代码(电子版)import java.util.*;class Point double x=0.0,y=0.0;double getx()return x;double gety()return y;void setxy(double x1,double y1)x=x1;y=y1;public class Ex_1 static double distance(Point p1,Point p2)return Math.sqrt(p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y);public static void main(String args) Point obj1 = new Point();Point obj2 = new Point();Scanner reader = new Scanner(System.in);System.out.println(请输入一个点的x,y坐标:);double x,y;x=reader.nextDouble();y=reader.nextDouble();obj1.setxy(x,y);System.out.println(该点坐标为:(+obj1.getx()+,+obj1.gety()+);System.out.println(请输入另一点的x,y坐标:);x=reader.nextDouble();y=reader.nextDouble();obj2.setxy(x,y);System.out.println(该点坐标为:(+obj2.getx()+,+obj2.gety()+);System.out.println(两点之间的距离为:+distance(obj1,obj2);import java.util.Scanner;class Triangleprivate double a,b,c;public void setabc(double a,double b,double c)if(a+b=c | a+c=b | b+c=a | a=0 | b=0 | c=0)System.out.println(这三边不能构成三角形。);this.a=0.0;this.b=0.0;this.c=0.0;elsethis.a=a;this.b=b;this.c=c;public double getArea()return (Math.sqrt(a+b+c)*(a+b-c)*(a+c-b)*(b+c-a)/4;public double geta()return a;public double getb()return b;public double getc()return c;public double getCircumference()return a+b+c;public void judge()if(a=b | b=c | c=a)if(a=b & b=c)System.out.println(该三角形为等边三角形。);elseSystem.out.println(该三角形为等腰三角形。);if(a*a+b*b=c*c | a*a+c*c=b*b |b*b+c*c=a*a)System.out.println(该三角形为等腰直角三角形。);elseif(a*a+b*b=c*c | a*a+c*c=b*b |b*b+c*c=a*a)System.out.println(该三角形为直角三角形。);elseSystem.out.println(该三角形为普通三角形。);public class Ex_2 public static void main(String args) Triangle obj = new Triangle();System.out.println(请输入三角形的三条边:);Scanner reader = new Scanner(System.in);double a=reader.nextDouble();double b=reader.nextDouble();double c=reader.nextDouble();obj.setabc(a, b, c);System.out.println(三角形的周长为:+obj.getCircumference();System.out.println(三角形的面积为:+obj.getArea(); obj.judge();public class Ex_3 public static void main(String args) line l1, l2;l1 = new line(0,0,1,1);l2 = new line(1,1,0,0);l1.judge();System.out.println(l1斜率: + l1.xl();System.out.println(l1长度: + l1.length();l1.zd();l1.judgexd(l2);public class line private Point sp, ep;line(int s1, int s2, int e1, int e2)sp = new Point(s1, s2);ep = new Point(e1, e2);public double length()return sp.distance(ep);public void judge()if(Math.round(ep.gety() - sp.gety() = 0)System.out.println(水平);if(Math.round(ep.getx() - sp.getx() = 0)System.out.println(垂直);public double xl()return (ep.gety()-sp.gety()/(ep.getx()-sp.getx();public void zd()System.out.println(中点: + (ep.getx()+sp.getx()/2 + , + (ep.gety()+sp.gety()/2);public void judgexd(line l2)if(length() = l2.length() & xl() = l2.xl()System.out.println(两线段相等);public class Point private double x, y;Point(double a, double b)x = a;y = b;public void set(double a, double b)x = a;y

温馨提示

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

评论

0/150

提交评论