免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
验2类和对象一、 实验目的:1、 学习定义类和使用类创建对象。2、 掌握对象变量和普通变量的区别,学习掌握使用对象调用其成员的方法。3、 学习掌握类的构造方法。4、 学习掌握给方法传递对象。5、 学习掌握类的静态变量和静态方法。二、 实验任务:1、 创建Java程序,学习类的定义、使用类创建对象、通过对象调用其成员、类的构造方法的作用、如何给方法传递对象、掌握静态变量、静态方法的用法。程序要求:(1) 首先创建Circle类表示平面上的圆,要求该类具备构造方法,以初始化表示半径的私有数据成员radius;具备求圆面积的方法;还要具备一个静态数据成员numOfObjects,用来统计程序运行过程中创建圆对象的个数。(2) 创建一个静态方法public static void printCircle(Circle c),功能是输出参数圆对象c的相关信息,包括半径和面积的值。(不是Circle的成员方法)(3) 程序运行中创建2个以上的圆对象,分别输出相关信息,并统计输出对象的数目。2、 创建Java程序,进一步学习上述的内容以及关键字this的使用和类抽象的概念。程序要求:(1) 首先创建有理数类Rational,该类包含构造方法和加、减、乘、除方法。(2) 程序主方法中创建两个有理数对象,分别进行加、减、乘、除运算,并输出运算结果。三、 实验步骤:1、 按照任务1的要求创建一个表示圆形的Circle类。2、 按照任务1的要求创建一个类TestInstanceAndClassVariable,其中包含静态方法public static void printCircle(Circle c)和程序的主方法main,在main方法中创建两个或多个Circle对象,调用printCircle(Circle c)方法显示每个Circle对象的相关信息,最后统计程序中所有创建的Circle类对象的数目。实验代码:public class TestInstanceAndClassVariablepublic static void main(Stringargs) Circle circle1=new Circle();System.out.println(Beforecreatingcircle2);System.out.print(circle1is:);printCircle(circle1); Circle circle2=new Circle(5);circle1.setRadius(9); System.out.println(nAftercreatingcircle2andmodifying+circle1sradiusto9);System.out.print(circle1is:);printCircle(circle1);System.out.print(circle2is:);printCircle(circle2); public static void printCircle(Circle c) System.out.println(radius(+c.getRadius()+)andnumberofCircleobjects(+c.getNumOfObjects()+); class Circle private double radius; private static int numOfObjects=0; public Circle() radius=1.0; numOfObjects+; public Circle(double r) radius=r; numOfObjects+; public double getRadius() return radius; public void setRadius(double newRadius) radius=newRadius; public static int getNumOfObjects() return numOfObjects; public double findArea() return radius*radius*Math.PI; 实验结果:3、 按照任务2的要求创建一个有理数类Rational,应包含2个私有的长整型数据成员numerator和denominator分别存储一个有理数的分子和分母;该类应包含不带参数的构造方法,和带参数的构造方法。其中不带参数的构造方法把有理数的分子和分母初始化为0和1;带参数的构造方法中应对该有理数进行约分,为此需为该类创建一个成员方法private long gcd(long n, long d);该方法返回分子和分母的最大公约数。4、 为理数类Rational创建四个成员方法分别实现2个有理数的加、减、乘、除运算,四个方法的方法签名如下:public Rational add(Rational secondRational);public Rational subtract(Rational secondRational);public Rational multiply(Rational secondRational);public Rational divide(Rational secondRational);5、 为Rational类改写toString()方法,该方法改写后的功能是:以分数的形式输出一个有理数。例如:2/36、 创建一个程序TestRationalClass,该类中分别创建2个Rational类的对象r1和r2,计算并显示它们的和、差、积、商。程序运行的结果应如下图所示:实验代码:public class Rational / Data fields for numerator and denominator private long numerator = 0; private long denominator = 1; / Default constructor public Rational() this(0, 1); / Construct a rational with specified numerator and denominator public Rational(long numerator, long denominator) long gcd = gcd(numerator, denominator); this.numerator = numerator/gcd; this.denominator = denominator/gcd; / Find GCD of two numbers private long gcd(long n, long d) long t1 = Math.abs(n); long t2 = Math.abs(d); long remainder = t1%t2; while (remainder != 0) t1 = t2; t2 = remainder; remainder = t1%t2; return t2; / Getter method for numerator public long getNumerator() return numerator; public long getDenominator() return denominator; / Add a rational number to this rational public Rational add(Rational secondRational) long n = numerator*secondRational.getDenominator() + denominator*secondRational.getNumerator(); long d = denominator*secondRational.getDenominator(); return new Rational(n, d); / Subtract a rational number from this rational public Rational subtract(Rational secondRational) long n = numerator*secondRational.getDenominator() - denominator*secondRational.getNumerator(); long d = denominator*secondRational.getDenominator(); return new Rational(n, d); / Multiply a rational number to this rational public Rational multiply(Rational secondRational) long n = numerator*secondRational.getNumerator(); long d = denominator*secondRational.getDenominator(); return new Rational(n, d); / Divide a rational number from this rational public Rational divide(Rational secondRational) throws RuntimeException if (secondRational.getNumerator() = 0) throw new RuntimeException(Denominator cannot be zero); long n = numerator*secondRational.getDenominator(); long d = denominator*secondRational.getNumerator(); return new Rational(n, d); / Override the toString() method public String toString() if (denominator = 1) return numerator + ; else return numerator + / + denominator; public class TestRationalClass / Main method public static void main(String args) / Create and initialize two rational numbers r1 and r2. Rational r1 = new Rational(4, 2); Rational r2 = new Rational(2, 3); / Display results System.out.println(r1.toString() + + + r2.toString() + = + (r1.add(r2).toString(); System.out.println(r1.toString() + - + r2.toString() + = +
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年派遣业务测试题及答案
- 2026年变阻器动态测试题及答案
- 2026年文明上网知识测试题及答案
- 2026年cf小落测试题及答案
- 2026年放线工高级测试题及答案
- 2026年妇联业务测试题及答案
- 2026青海西宁大通县中医院招聘消防控制室操作员2人备考题库及一套答案详解
- 2026首钢工学院 首钢技师学院第二批招聘12人备考题库含答案详解(模拟题)
- 2026黑龙江佳木斯市富锦市面向社区专职网格员招聘社区工作者207人备考题库(含答案详解)
- 2026黑龙江哈尔滨市道外区大兴社区卫生服务中心招聘1人备考题库含答案详解(考试直接用)
- 2026年哈三中高三下学期三模数学试卷及答案
- 2026年西医医师定期考核练习题库附答案详解(精练)
- 2026年人教版三年级下册道德与法治知识点总结
- 《降维沟通:成为社牛的说话之道》阅读记录
- (2026版)医疗保障基金使用监督管理条例实施细则(定点医疗机构学习与解读)课件
- 2026年十大时事热点话题命题作文素材(全新版)
- 人工智能训练师三级理论知识试题及答案
- 2026抖音小游戏行业白皮书
- 【《离子速度成像技术研究文献综述》5500字】
- 离婚协议书 2026年民政局标准版
- 回款KPI考核制度
评论
0/150
提交评论