JAVA实验报告(圆类动物继承人类继承).doc_第1页
JAVA实验报告(圆类动物继承人类继承).doc_第2页
JAVA实验报告(圆类动物继承人类继承).doc_第3页
JAVA实验报告(圆类动物继承人类继承).doc_第4页
JAVA实验报告(圆类动物继承人类继承).doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

Java程序设计 实验报告2014年10 月17日姓名班 级软工班学 号13139042课程名称Java语言程序设计实验项目名 称构造方法与继承指导教师一、实验目的:。1. 编写程序定义圆类Circle,把圆的性质和行为用代码块封装起来。圆的性质包括圆的半径,圆心坐标,行为包括计算圆面积,计算圆周长、设置半径、获取半径、计算圆个数。实例化若干个圆对象,调用相应方法计算出圆面积、圆周长并计圆个数。 2. 编程实现类的继承。编写父类People,子类Student继承自人类。人类具有姓名,性别,年龄等性质,还具有吃和说的行为。学生类继承父类,还拥有学号性质和学习行为。构造人类和学生类的对象,调用吃、说、学习的方法输出有关信息。 3. 使用 Java的继承关系来描述动物世界的特征和关系。( 1 ) 抽象出项目问题中的对象 :动物、老鼠、熊猫。( 2 ) 抽象出每种对象所具有的性质:名字和食物。( 3 ) 抽象出每种对象所具有的行为,动物具有吃的行为和睡觉的行为,老鼠除具有动物行为外还具有打洞行为。( 4 ) 抽象出继承关系,老鼠类和熊猫类作为子类继承父类动物类,子类继承父类的属性和方法。 4.定义汽车类,其中包含所有汽车共有的属性如名字、排量、油耗、时速等,包含行为如点火、熄火、前进、倒退、鸣笛等,然后在测试类中用定义的类来创建对象,输出该对象的属性和行为信息。 5按以下要求编写程序(1) 创建一个正方形类,添加正方形的边作为成员变量(2) 在正方形类中添加两种方法分别计算正方形的周长和面积(3) 编程在测试类中输出一个正方形的周长和面积二、实验原理(可以流程图的形式出现,加以文字说明)1. 定义圆类Circle.( 1 ) 抽象出Circle类包含成员变量radius、x和y,它们的类型均为double,代表了圆的半径和坐标属性。成员方法setRadius( )、getRadius( )、calcArea( )、calcGirth( ),分别实现设置半径、返回半径、计算面积、计算周长的行为。其中setRadius( )方法用于给半径赋值没有返回值,类型为void。calcArea( )、calcGirth( ) 、getRadius( )方法用于计算和返回半径值,类型为double。( 2 ) 声明用于保存圆数量的成员变量num,由Circle类创建任意圆对象时num值均要加1。 num变量应该是被所有圆对象共享,所以使用static关键字声明num为静态变量。使用static声明静态方法getNum( )用来返回num值,返回类型为int。具体声明语句为:private static int num; public static int getNum() return num;( 3 ) 使用static final关键字声明静态的符号常量PI(符号常量通常定义为大写字母),并给其赋值为3.14159,该常量可以被所有Cirlce类的圆对象使用,具体声明语句为:public static final double PI = 3.14159; ( 4 ) 定义两个构造方法,一个无参的构造方法和一个带参数构造方法,其中带参构造方法对圆对象进行初始化,将参数r传递给圆对象的成员变量radius,。无参构造方法则不初始任何变量。若需要在圆对象被创建时将圆的数量num增加,可以在构造方法里对num变量进行增加。( 5 ) 程序的入口方法main,在该方法中实例化若干个圆对象,并调用该对象的setRadius( )、getRadius( )、calcArea( )、calcGirth( )、getNum( )方法来输出该对象的半径、周长、面积属性及圆个数。2. 实现类的继承.( 1 ) 人类是学生类的父类,人类具有姓名,性别,年龄等性质,学生类是人类的子类也具有如上性质,并且学生类还具有学号这一特性。所以人所具有的共性都封装在人类这一父类中,学生类不但继承了人类的共性还具有自己的特有属性学号。人类中具有了吃和说的行为,学生也继承了这些行为,并且学生还具有了学习这一行为。 根据以上分析定义两个类People和Student,People类包括成员变量name、sex、age属性,成员方法eat( )和speek( )。其中name、sex、age属性的访问控制符定义为protected,protected修饰的成员可以被本包中的类以及其子类继承访问。eat( )、speek( )方法的访问控制符定义为public,public修饰的方法其访问权限最大可以被所有类访问。( 2 ) 使用extends关键字实现继承,学生类继承人类共有的属性和方法,此外具有stuNo学号属性和learn( )学习方法。( 3 ) 父类People中定义的构造方法负责对name、sex、age变量初始化,子类Student中定义构造方法继承父类构造并对stuNo属性初始化。在Student类的构造方法的第一句使用super(name, sex, age) 语句显式调用父类构造,保证父类构造被调用之后再调用子类构造。( 4 ) 编写程序的入口方法main,在该方法中实例化人类对象和学生对象,并调用对象的相应方法输出信息。3. 描述动物世界的特征和关系.AnimalPandasleepMouseeatdig( 1 ) 动物世界的名字和食物是共有的属性,吃和睡觉是共有的行为。定义Animal类,在该类中定义成员变量name 和food,成员方法eat( )和sleep( )。根据封装性的要求将name和food属性定义为private私有的,保证该属性只能被在本类内部访问,其他类或派生类要访问该属性可以通过public公有的方法setName( )、getName( )、setFood( )、getFood( )进行访问,其中setXXX( )方法用于给属性赋值,getXXX( )方法用于返回属性。( 2 ) 定义老鼠类Mouse和熊猫类Panda,这两类均继承自Animal类,继承动物类的name 和food属性以及eat( )和sleep( )方法。Mouse类和Panda类在构造方法中调用setName( )和setFood( )方法对名称和食物属性初始化。( 3 ) 老鼠类定义打洞方法dig( )输出信息。( 4 ) 定义测试类AnimalTest,编写程序入口main( )方法,在该方法中创建老鼠和熊猫对象,调用相应方法输出信息。4.汽车的属性和行为。(1)建立汽车类Car,汽车属性:名字,排量,油耗,时速分别记作成员变量name,pailia,oilconsume,speed.均用private修饰。定义公共方法点火,熄火,前进,倒退,鸣笛分别为fire(),unfire(),go(),back(),whistle().(2)创建有参构造函数car(String name,int pailia,int oilconsume,int speed)初始化属性,创建类事例car输出属性和行为。5.求正方形周长和面积。(1)建立Square类,定义边长为sl,用private修饰。创建方法grith()和are()分别求周长和面积。(2)创建有参构造方法square(int sl),初始化边长,创建圆对象并输出周长和面积。三、实验代码1. 定义圆类Circle.public class Circle private double radius;/圆的半径private double x;/横坐标private double y;/纵坐标private static int num;/圆的个数private static final double PI = 3.14159;public double getRadius() /返回半径return radius;public void setRadius(double radius) /设置半径this.radius = radius;public double calcArea() /计算圆面积return PI*this.radius*this.radius; public double calcGrith() /计算圆周长return 2*PI*this.radius;public static int getNum() /返回圆的个数return num; public Circle()/无参数构造方法num+;public Circle(double radius,double x,double y) /带参数构造方法if (radius 0) System.out.println(半径不可以为负数!);else /初始化圆的属性this.radius = radius; this.x = x;this.y = y;num +; public static void main(String args) Circle circle1 = new Circle(10,1,1);/创建对象圆1Circle circle2 = new Circle(20,1,1); /创建对象圆2Circle circle3 = new Circle(30,1,1); /创建对象圆3System.out.print(圆1的半径: +circle1.getRadius()+t);System.out.print(圆1的面积: +circle1.calcArea()+t);System.out.println(圆1的周长: +circle1.calcGrith();System.out.print(圆2的半径: +circle2.getRadius()+t);System.out.print(圆2的面积: +circle2.calcArea()+t);System.out.println(圆2的周长: +circle2.calcGrith();System.out.print(圆3的半径: +circle3.getRadius()+t);System.out.print(圆3的面积: +circle3.calcArea()+t);System.out.println(圆3的周长: +circle3.calcGrith();System.out.println(圆的个数: +Circle.getNum();2. 实现类的继承.class People /父类人protected String name;/姓名protected String sex;/性别protected int age;/年龄protected String getName() /返回姓名return name;protected void setName(String name) /设置姓名=name;protected String getSex() /返回性别return sex;protected void setSex(String sex) /设置性别this.sex=sex;protected int getAge() /返回年龄return age;protected void setAge(int age) /设置年龄this.age=age;public static void eat() /吃System.out.print(我在吃饭! );public static void speak() /说话System.out.print(我在说话!); public People(String name, String sex, int age) /初始化共有属性 = name; this.sex = sex; this.age = age; class Student extends People /子类学生protected long stuNo;/学号protected long getStuNo() /返回学号return stuNo; protected void setStuNo(long stuNo) /设置学号this.stuNo=stuNo;public static void learn() /学习方法System.out.println(我的学习方法!);public Student(String name, String sex, int age, long stuNo) /构造方法 super(name, sex, age); this.stuNo = stuNo;public class TestPeople /测试类public static void main(String args) Student student = new Student(张一飞,男,18,13130001);System.out.print(姓名:+student.getName()+ );System.out.print(性别:+student.getSex()+ );System.out.print(年龄:+student.getAge()+ );System.out.print(学号:+student.getStuNo()+ );People.eat();/吃People.speak();/说话Student.learn();/学习方法3. 描述动物世界的特征和关系.class Animal /动物类private String name;/名字private String food;/食物public String getName() /返回名字return name;public void setName(String name) /设置名字 = name;public String getFood() /返回食物return food;public void setFood(String food) /设置食物this.food = food;public static void Eat() /吃System.out.print(我在吃饭 );public static void Sleep()/睡觉System.out.print(我在睡觉 );public Animal(String name,String food)/构造方法 = name;this.food = food;class Mouse extends Animal /老鼠类public Mouse(String name,String food) /构造方法super(name,food);public static void dig() /打洞System.out.println(我在打洞);class Panda extends Animal /熊猫类public Panda(String name,String food) /构造方法super(name,food); public class AnimalTest /测试类public static void main(String args)Panda panda = new Panda(熊猫,竹叶);/实例化熊猫System.out.print(名字: +panda.getName()+t);System.out.println(食物: +panda.getFood()+t);Panda.Eat();/吃Panda.Sleep();/睡觉System.out.println();Mouse mouse = new Mouse(老鼠,大米);/实例化老鼠System.out.print(名字: +mouse.getName()+t);System.out.print(食物: +mouse.getFood()+t);Mouse.Eat();/吃Mouse.Sleep();/睡觉Mouse.dig();/打洞 4.汽车的基本属性和行为 .public class Car /汽车类private String name;/定义名字private int pailia;/定义排量private int oilconsume;/定义油耗private int speed;/定义时速public String getName() /返回名字return name;public void setName(String name) /设置名字 = name;public int getPailia() /返回排量return pailia;public void setPailia(int pailia) /设置排量this.pailia = pailia;public int getOilconsume() /返回油耗return oilconsume;public void setOilconsume(int oilconsume) /设置油耗this.oilconsume = oilconsume;public int getSpeed() /返回时速return speed;public void setSpeed(int speed) /设置时速this.speed = speed;public static void fire() /点火System.out.print(点火! );public static void outfire() /熄火System.out.print(熄火! );public static void go() /前进System.out.print(前进! );public static void back() /倒退System.out.print(倒退! );public static void whistle() /鸣笛System.out.print(鸣笛! );public Car(String name,int pailia,int oilconsume,int speed) /构造方法 = name;this.pailia = pailia;this.oilconsume = oilconsume;this.speed = speed;Public static void main(String args) Car car = new Car(宝马,100,50,100);/实例化一个汽车System.out.println(汽车的属性:);System.out.println();System.out.print(汽车品牌:+car.getName()+t);System.out.print(排量:+car.getPailia()+ml+t);System.out.print(油耗:+car.getOilconsume()+ml/h+t);System.out.println(时速:+car.getSpeed()+km/h);System.out.println();System.out.println();S

温馨提示

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

评论

0/150

提交评论