实验3:继承、抽象类与包重点讲义_第1页
实验3:继承、抽象类与包重点讲义_第2页
实验3:继承、抽象类与包重点讲义_第3页
实验3:继承、抽象类与包重点讲义_第4页
实验3:继承、抽象类与包重点讲义_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、广东技术师范学院实验报告学院:计算机科学学院专业:计算机科学与技术班级:成绩:姓名:孔哥哥学号:组别:组员:实验地点:Win10实验日期:指导教师签名:预习情况操作情况考勤情况数据处理情况实验名称: 继承、抽象类与包 一、 实验目的:1、熟练掌握抽象类abstract概念。 2、熟练掌握接口interface的概念。3、熟练包package的概念以及编译运行的方法。4、熟练掌握内部类inner class的概念。5、熟练掌握递归的概念。二、实验内容和步骤:(说明代码及运行结果)1 编写求解几何图形(如三角形,矩型,圆,多边型)的周长、面积的应用程序,要求用到继承、抽象类、异常处理机制等面向对象

2、程序设计技术的特点。同时要求程 序能从键盘上接受几何图形在顶点坐标数据以便求解周长和面积。(几何图形之间的类图关系参看第4章课件56页)。提示:从键盘上输入双精度数的一种方法 (程序片段)     public static void main(String args) throws IOException             BufferedReader keyin=new BufferedReader(new InputStreamReader(System

3、.in);       String x;       x=keyin.readLine();       double a=Double.parseDouble(x); 我编写的这程序是可以根据输入数字的不同位数不同而选择不同的计算方法,下面是我的程序内容:package tuXing;/抽象类public abstract class Shape public String getArea() retu

4、rn null;/计算面积public String getGirth() return null;/计算周长package tuXing;/三角形public class Triangle extends Shape/三角形的三边长protected double a;protected double b;protected double c;public String getArea(double a,double b,double c)this.a=a;this.b=b;this.c=c;double s=(a+b+c)/2;return("三角形的面积: "+(Ma

5、th.sqrt(s*(s-a)*(s-b)*(s-c);public String getGirth()return("三角形的周长: "+(this.a+this.b+this.c);package tuXing;/矩形public class Rectangles extends Shape protected double width;/矩形的宽protected double height;/矩形的高public String getArea(double width,double height)this.width=width;this.height=height

6、;return("矩形的面积: "+(this.width*this.height);public String getGirth()return ("矩形的周长: "+2*(this.height+this.width);package tuXing;/圆形public class Circle extends Shape protected double radius;/半径public String getArea(double radius)this.radius=radius;return("圆的面积: "+(Math.PI

7、*this.radius*this.radius);public String getGirth()return("圆的周长: "+(2*Math.PI*this.radius);package tuXing;import java.io.IOException;import java.util.Scanner;import java.util.ArrayList;import java.util.List;public class test public static void main(String args) throws IOException System.out

8、.println("输入的数不能少于0个或大于3个!");/* * * 输入一个数字是计算圆形的面积和周长的 *输入两个数字是计算矩形的面积和周长的 *输入三个数字是计算三角形的面积和周长的 * */System.out.println("半径/(宽 高)/三角形的三边长");Scanner sc=new Scanner(System.in);/定义一个double型的数组队列List<Double> list=new ArrayList<Double>();/定义temp接受double型数据double temp=0;whil

9、e(true)System.out.println("请输入一个数,输入-1结束");temp=sc.nextDouble();if(int)temp)!=-1)list.add(temp);else System.out.println("输入结束");break;if(list.size()=1)Circle circle=new Circle();System.out.println(circle.getArea(list.get(0);System.out.println(circle.getGirth();else if(list.size()

10、=2)Rectangles rectangles=new Rectangles();System.out.println(rectangles.getArea(list.get(0), list.get(1);System.out.println(rectangles.getGirth();else if(list.size()=3)Triangle triangle=new Triangle();System.out.println(triangle.getArea(list.get(0), list.get(1), list.get(2);System.out.println(triang

11、le.getGirth();elseSystem.out.println("请输入1到3个数字!"); 2完成父类及子类的申明(书上146页,第11题)(1)package student;public class Student String id; String name; float scoreOfenglish; float scoreOfmath; float scoreOfcomputer; float scoreOfsum;/构造方法public Student() public Student(String aid,String aname,flo

12、at ascoreOfenglish,float ascoreOfmath,float ascoreOfcomputer) this.id=aid; =aname; this.scoreOfenglish=ascoreOfenglish; this.scoreOfmath=ascoreOfmath; this.scoreOfcomputer=ascoreOfcomputer; this.scoreOfsum=sum(); /sum方法public float sum() return(this.scoreOfenglish+this.scoreOfmath+this.scor

13、eOfcomputer); /testScore测评成绩/平均分public float testScore() return(this.scoreOfsum/3); /6个get方法public String getid() return(id); public String getname() return(name); public float getscoreOfenglish() return(scoreOfenglish); public float getscoreOfmath() return(scoreOfmath); public float getscoreOfcompu

14、ter() return(scoreOfcomputer); public float getscoreOfsum() return(scoreOfsum); /5个set方法public void setid(String newid) this.id=newid; public void setname(String newname) =newname; public void setscoreOfenglish(float newscoreOfenglish) this.scoreOfenglish=newscoreOfenglish; this.scoreOfsum=

15、sum(); public void setscoreOfmath(float newscoreOfmath) this.scoreOfmath=newscoreOfmath; this.scoreOfsum=sum(); public void setscoreOfcomputer(float newscoreOfcomputer) this.scoreOfcomputer=newscoreOfcomputer; this.scoreOfsum=sum(); /toString方法public String toString() return("学号:"+this.id+

16、"n姓名:"+name+"n英语:"+this.scoreOfenglish+"n数学:"+this.scoreOfmath+"n计 算机:"+this.scoreOfcomputer+"n总 分 : "+this.scoreOfsum); /compare方法/比较2学生总分public void compare(Student x) if(this.getscoreOfsum()>x.getscoreOfsum()System.out.println(this.getname()+&q

17、uot;总分大于"+x.getname(); if(this.getscoreOfsum()<x.getscoreOfsum()System.out.println(this.getname()+"总分小于"+x.getname(); else System.out.println(this.getname()+"总分等于"+x.getname();  (2)package student;public class StudentXW extends Student String responsibility;/构造方法publ

18、ic StudentXW() super(); public StudentXW(String aid,String aname,float ascoreOfenglish,float ascoreOfmath,float ascoreOfcomputer,String aresponsibility) super(aid,aname,ascoreOfenglish,ascoreOfmath,ascoreOfcomputer); responsibility=aresponsibility; /testScore测评成绩/平均分public float testScore() return(t

19、his.scoreOfsum/3+3); /toString方法public String toString() return("学号:"+this.id+"n姓名:"+name+"n英语:"+this.scoreOfenglish+"n数学:"+this.scoreOfmath+"n计算机:"+this.scoreOfcomputer+"n总 分 : "+this.scoreOfsum+"n职位:"+this.responsibility); (3)pa

20、ckage student;public class StudentBZ extends Student String responsibility;/构造方法public StudentBZ() super(); public StudentBZ(String aid,String aname,float ascoreOfenglish,float ascoreOfmath,float ascoreOfcomputer,String aresponsibility) super(aid,aname,ascoreOfenglish,ascoreOfmath,ascoreOfcomputer);

21、 responsibility=aresponsibility; /testScore测评成绩/平均分 public float testScore() return(this.scoreOfsum/3+5); /toString方法public String toString() return("学号:"+this.id+"n姓名:"+name+"n英语:"+this.scoreOfenglish+"n数学:"+this.scoreOfmath+"n计 算机:"+this.scoreOfcom

22、puter+"n总 分 : "+this.scoreOfsum+"n职位:"+this.responsibility); (4)package student;import java.text.DecimalFormat;public class test02 public static void main(String args) Student su=new Student("001"," 围城",56.00f,87.00f,95.00f); Student du=new Student("002&q

23、uot;,"孔哥 ",86.00f,75.00f,80.00f); Student bai=new Student("003","小肥羊",42.00f,77.00f,65.00f); Student liu=new Student("004","磊缓缓",67.00f,67.00f,67.00f); StudentXW ou=new StudentXW("005","丽叶鹏",89.00f,98.00f,90.00f,"数学代表");

24、 StudentXW wang=new StudentXW("006","罗浩",98.00f,87.00f,36.00f,"英语代表"); StudentBZ li=new StudentBZ("007","逗逼",89.00f,87.00f,87.00f,"班长"); System.out.print(li); System.out.println("n评测成绩:"+new DecimalFormat("0.00").format(

25、li.testScore(); System.out.println(); System.out.print(wang); System.out.println("n评测成绩:"+new DecimalFormat("0.00").format(wang.testScore(); System.out.println(); System.out.print(ou); System.out.println("n评测成绩:"+new DecimalFormat("0.00").format(ou.testScore(); System.out.println(); System.out.print(su); System.out.println("n评测成绩:"+new DecimalFormat("0.00").format(su.testScore(); System.out.println(); System.out.print(du); System.o

温馨提示

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

评论

0/150

提交评论