• 领导讲话
  • 自我介绍
  • 党会党课
  • 文秘知识
  • 转正申请
  • 问题清单
  • 动员大会
  • 年终总结
  • 工作总结
  • 思想汇报
  • 实践报告
  • 工作汇报
  • 心得体会
  • 研讨交流
  • 述职报告
  • 工作方案
  • 政府报告
  • 调研报告
  • 自查报告
  • 实验报告
  • 计划规划
  • 申报材料
  • 当前位置: 勤学考试网 > 公文文档 > 工作汇报 > 正文

    JAVA实验报告(圆类,动物继承,人类继承)DOC

    时间:2020-09-11 18:00:01 来源:勤学考试网 本文已影响 勤学考试网手机站

    《 Java 程序设计》 实验报告

    2014年 10 月17日

    姓名

    软工班

    课程

    Java 语言程序设

    实验项目

    构造方法与

    指导教师

    名称

    继承

    一、实验目的: 。

    编写程序定义圆类 Circle ,把圆的性质和行为用代码块封装起来。圆的性质包括圆

    的半径, 圆心坐标, 行为包括计算圆面积, 计算圆周长、 设置半径、 获取半径、 计算圆个数。实例化若干个圆对象,调用相应方法计算出圆面积、圆周长并计圆个数。

    编程实现类的继承。编写父类 People ,子类 Student 继承自人类。人类具有姓名,性别,年龄等性质,还具有吃和说的行为。学生类继承父类,还拥有学号性质和学习行为。

    构造人类和学生类的对象,调用吃、说、学习的方法输出有关信息。

    使用 Java 的继承关系来描述动物世界的特征和关系。

    ( 1 ) 抽象出项目问题中的对象 :动物、老鼠、熊猫。

    ( 2 ) 抽象出每种对象所具有的性质:名字和食物。

    ( 3 ) 抽象出每种对象所具有的行为,动物具有吃的行为和睡觉的行为,老鼠除具有动

    物行为外还具有打洞行为。

    ( 4 ) 抽象出继承关系,老鼠类和熊猫类作为子类继承父类动物类,子类继承父类的属

    性和方法。

    4.定义汽车类,其中包含所有汽车共有的属性如名字、排量、油耗、时速等,包含行为

    如点火、熄火、前进、倒退、鸣笛等,然后在测试类中用定义的类来创建对象,输出该

    对象的属性和行为信息。

    按以下要求编写程序

    创建一个正方形类,添加正方形的边作为成员变量

    在正方形类中添加两种方法分别计算正方形的周长和面积

    编程在测试类中输出一个正方形的周长和面积二、实验原理(可以流程图的形式出现,加以文字说明)

    定义圆类 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( ) 方法来输出该

    对象的半径、周长、面积属性及圆个数。

    实现类的继承 .

    ( 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. 描述动物世界的特征和关系 .

    Animal

    Panda Mouse

    eat sleep dig

    ( 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() 分别求周

    长和面积。

    创建有参构造方法 square(int sl), 初始化边长,创建圆对象并输出周长和面积。三、实验代码

    定义圆类 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);//

    创建对象圆 1

    Circle circle2 = new Circle(20,1,1); //

    创建对象圆

    2

    Circle circle3 = new Circle(30,1,1); //

    创建对象圆

    3

    System.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());

    }

    }

    实现类的继承 .

    class People {// 父类——人

    protected String name;//

    

    姓名

    protected String sex;//

    

    性别

    protected int age;//

    

    年龄

    protected String getName() {//

    return name;

    

    返回姓名

    }

    protected void setName(String name) {// this.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) {// 初始化共有属性

    this.name = 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;

    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) {// 设置名字

    this.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){// 构造方法

    this.name = 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) {// 设置名字

    this.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) {// 构造方法

    this.name = 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();

    System.out.println(" 汽车的行为: ");

    System.out.println();

    Car.fire();// 点火

    Car.outfire();// 熄火

    Car.go();// 前进

    Car.back();// 倒退

    Car.whistle();// 鸣笛

    }

    }

    5.求正方形的周长和面积 .

    class Squre {// 定义正方形类

    private int sl;// 定义边长

    public int getSl() {// 返回边长

    return sl;

    }

    public void setSl(int sl) {// 设置边长

    this.sl = sl;

    }

    public int grith() {//

    return 4*this.sl;

    

    求周长

    }

    public int area() {// 求面积

    return this.sl*this.sl;

    }

    public Squre(int sl) {// 构造方法

    this.sl = sl;

    }

    }

    public class Test {// 测试类

    public static void main(String args[]) {

    Squre s = new Squre(5);

    System.out.print(" 正 方 形 边 长 : "+s.getSl()+"\t"+" 周 长 : "+s.grith()+"\t");

    System.out.println(" 面积 :"+s.area());

    }

    }

    四、实验过程原始记录(数据、图表、计算等)

    注:此次报告没有相关数据,实验过程详见第二部分实验原理。

    五、实验结果及分析,以及心得体会

    1. 定义圆类 Circle.

    心得体会:主要是构建 3 个对象,操作过程中,老是出现 3 个圆对象结果相同的情况,反

    复上机测试才发现是成员变量中的 radius ,应该用 this.radius 才能获取到。

    实现类的继承 .

    心得体会:主要运用构造方法的实例化和继承知识。

    3. 描述动物世界的特征和关系 .

    心得体会:主要对 name 和 food 进行初始化,以及继承的使用。

    4. 汽车的基本属性和行为 .

    5.求正方形的周长和面积 .

    总的心得体会:经过这 5 个小程序的编写,我已经能够熟练地操作程序,对构造方法和

    继承方面的知识有了更深的理解,并能够编写简单的有关继承和构造方法的小程序。

    • 考试时间
    • 范文大全
    • 作文大全
    • 课程
    • 试题
    • 招聘
    • 文档大全

    推荐访问