实验4面向对象基础.doc_第1页
实验4面向对象基础.doc_第2页
实验4面向对象基础.doc_第3页
实验4面向对象基础.doc_第4页
实验4面向对象基础.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

实验报告姓 名 学 号专业班级课程名称 Java实验实验日期成 绩指导教师批改日期实验名称实验 4 面向对象基础一实验目的:(1)掌握类的定义、类的实例化方法;(2)掌握类中的静态变量和静态方法的使用;(3)掌握使用类的构造方法对对象的数据域进行初始化;(4)掌握getter和setter的使用;二实验内容(1)现在要求设计一个表示学生的类,里面有学生的姓名、学号、年龄,还要有三项成绩:计算机成绩、数学成绩、英语成绩,要求可以求总分、平均分、最高、最低分,并且可以输出一个学生的完整信息,请设计此类。提示:程序开发步骤根据需求定义出所要的类;根据题目中的要求规划出类的属性;所有的属性必须封装:private;所有的属性必须通过getter和setter访问;如果需要增加构造方法,为属性赋初值,适当采用构造方法重载;所有的信息不要类中直接输出,而是交给调用处输出,即在该类中尽量不出现System.out.println()语句。例如在调用类中输出如下结果:总分:267.70000000000005平均分:89.23333333333335最高分:91.4最低分:87.3学生信息:|-学号:100|-姓名:John|-年龄:20|-英语:89.0|-计算机:87.3|-数学:91.4程序代码:class Student private int sNo;/学号 private String sName; /姓名 private int sAge; /年龄 private double computerGrade; /计算机成绩 private double mathGrade; /数学成绩 private double englishGrade; /英语成绩 private double totalScore; /总分 private double averageScore; /平均分 private double maxScore; /最高分 private double minScore; /最低分 private String message; / 学生信息 /构造方法 public Student() public Student(int sNo,String sName,int sAge,double computerGrade,double mathGrade,double englishGrade) this.sNo = sNo; this.sName = sName; this.sAge = sAge; puterGrade = computerGrade; this.mathGrade = mathGrade; this.englishGrade = englishGrade; totalScore = computerGrade + mathGrade + englishGrade; averageScore = totalScore/3; maxScore =(computerGrade=mathGrade) ?(computerGrade=englishGrade)?computerGrade:englishGrade) :(mathGrade=englishGrade)?mathGrade:englishGrade); minScore =(computerGrade=mathGrade) ?(computerGrade=englishGrade)?computerGrade:englishGrade) :(mathGrade=mathGrade) ?(computerGrade=englishGrade)?computerGrade:englishGrade) :(mathGrade=englishGrade)?mathGrade:englishGrade); minScore =(computerGrade=mathGrade) ?(computerGrade=englishGrade)?computerGrade:englishGrade) :(mathGrade=mathGrade) ?(computerGrade=englishGrade)?computerGrade:englishGrade) :(mathGrade=englishGrade)?mathGrade:englishGrade); minScore =(computerGrade=mathGrade) ?(computerGrade=englishGrade)?computerGrade:englishGrade) :(mathGrade=mathGrade) ?(computerGrade=englishGrade)?computerGrade:englishGrade) :(mathGrade=englishGrade)?mathGrade:englishGrade); minScore =(computerGrade=mathGrade) ?(computerGrade=englishGrade)?computerGrade:englishGrade) :(mathGrade=1|speed=0) return (-b+Math.sqrt(b*b-4*a*c)/(2*a); else return 0; public double getRoot2() if(b*b-4*a*c)=0) return (-b-Math.sqrt(b*b-4*a*c)/(2*a); else return 0; /测试类public class TestQuadraticEquation public static void main(String args) Scanner input = new Scanner(System.in); System.out.println(请输入一元二次方程的系数a(不为零),b,c的值:t); double a = input.nextDouble(); double b = input.nextDouble(); double c = input.nextDouble(); QuadraticEquation q = new QuadraticEquation(a,b,c); if(a=0) System.out.println(系数a=0,不是一元二次方程); else if(q.getDiscriminant()0) System.out.println(方程+q.getA()+x*x + +q.getB()+x + +q.getC()+ = 0有两个根,为+q.getRoot1() +与+q.getRoot2(); else if(q.getDiscriminant()=0) System.out.println(方程+q.getA()+x*x + +q.getB()+x + +q.getC()+ = 0有一个根,为+q.getRoot1(); else System.out.println(这个方程无根。); 运行结果贴图:图7题8.1A 对象与其定义类之间的关系: 类是用来定义同一类型对象的。类是一个模具、蓝本或者说是合约,用来的定义对象的数据域及方法;一个对象是一个类的实例;可以从一个类中创建多个实例。B Java定义一个类:public class 类名 属性定义 /一般为private 行为定义 C 声明一个对象引用: 类名 对象引用变量名;D 创建一个对象:1. new 类名();2. 对象引用变量名 = new 类名();E 一句语句完成对象的声明和创建: 类名 对象引用变量名 = new 类名();题8.2构造方法与普通方法的之间的区别主要有三点:3. 构造方法必须具备和所在类相同的名字;4. 构造方法没有返回类型,甚至连void也没有;5. 构造方法是在创建一个对象使用new操作符时调用的。 其次,构造方法的作用是初始化对象,它本身也可以完成任何动作。和其他方法一样,构造方法也可以重载。题8.5 代码错误: 类A中定义的为含参的构造方法且没有无参构造方法,而在主类创建对象时没给构造函数传递实参; 解决方法:1.在类A中定义不带形参的构造方法; 2.在主类中创建对象时,构造函数中必须传递相应实参。题8.20代码错误: 语句java.util.Date dates = new java.util.Date10;只是创建的一个长度为10,类型为Date的数组,相当于声明了10个类Date的对象引用变量(初始值为NULL)而并未指向任何创建对象; 接下的语句直接使用dateso对象引用变量是错误的。解决方法: 在使用dates0之前,先让其指向一创建对象,eg: “dates0 = new new java.util.Date();”。题8.5参考代码:import java.util.*;public class TestGregorianCalendar public static void main(String args) GregorianCalendar g =new GregorianCalendar(); System.out.println(现在是:+g.get(GregorianCalendar.YEAR) +年+g.get(GregorianCalendar.MONTH)+月 +g.get(Greg

温馨提示

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

评论

0/150

提交评论