java实验报告5

一.实验目的

(1)学习类的继承、子类在对象中调用父类定义的方法

(2)学习类继承时方法的覆盖

(3)学习java中抽象类的语法、子类中实现父类的抽象方法

(4)了解JDK参考文档

(5)学习文档注释、javadoc命令的使用

(6)了解同一目录下,多个类并存且同名的情况对程序运行的影响

(7)学习接口

(8)学习内部类

二.实验软件环境

jdk1.6.0_18、windows 7

三.实验内容

(1)编写一个java程序,在程序中定义一个PersonB类,定义一个PersonB类的子类StudentB类,再定义一个C2类,在main()方法生成StudentB类的两个对象

package com.gdut.net.javaoo.class070120;

//C2.java

class PersonB

{

       String name;

       int age;

       public PersonB()

       {

              System.out.println("PersonB()被调用");

       }

       public PersonB(String newName)

       {

              name=newName;

              System.out.println("PersonB(String newName)被调用");

       }

       public void introduce()

       {

              System.out.println("我是"+name+",今年"+age+"岁");

       }

}

class StudentB extends PersonB

{

       public StudentB()//[代码1]创建一个参数为空的StudentB类的构造方法,能显示“StudentB()被调用”

       {

              System.out.println("StudentB()被调用");

       }

       public StudentB(String newName,int newAge)

       {

              super(newName);//[代码2]调用父类的public PersonB(String newName)构造方法,传入newName参数,提示使用关键词super进行调用

              age=newAge;//[代码3]将newAge赋值给age属性

       }

}

class C2

{

       public static void main(String args[])

       {

              StudentB s1=new StudentB();

              StudentB s2=new StudentB("张三",19);

              s2.introduce();//[代码4]调用s2的introduce方法

       }

}

(2)编写一个java程序,在程序中定义一个Animal类,再定义两个Animal类的子类Bird、Fish类,在子类中覆盖父类的play方法

package com.gdut.net.javaoo.class070120;

//Overriding.java

class Animal

{

       void play()

       {

              System.out.println("我是动物,我会很多本领");

       }

}

class Bird extends Animal//[代码1]定义Animal类的子类Bird,覆盖Animal类的play方法,在play方法中输出“我是小鸟,我能飞翔”

{

       void play()

       {

              System.out.println("我是小鸟,我能飞翔");

       }

}

class Fish extends Animal//[代码2]定义Animal类的子类Fish,覆盖Animal类的play方法,在play方法中输出“我是小鱼,我能游泳”

{

       void play()

       {

              System.out.println("我是小鱼,我能游泳");

       }

}

class Overriding

{

       public static void main(String args[])

       {

              Animal s1=new Animal();

              Bird s2=new Bird();

              Fish s3=new Fish();

              s1.play();

              s2.play();

              s3.play();

       }

}

(3)编写一个java程序,随机产生一个0~10的随机整数,并且求这个数的平方根

package com.gdut.net.javaoo.class070120;

//UseJDK.java

import java.lang.Math;

public class UseJDK

{

       public static void main(String args[])

       {

              int a;

              a=(int)(Math.random()*10);

              System.out.println("a="+a);

              System.out.println(a+"的平方根是"+Math.sqrt(a));

       }

}

(4)编写两个java程序,在China.java中,显示“我是中国人”;在America.java中显示“我是美国人”

//man.java

package Chinese;

public class man

{

       public void say()

       {

              System.out.println("我是中国人");

       }

}

//China.java

import Chinese.man;

public class China

{

       public static void main(String args[])

       {

              man zhangsan=new man();

              zhangsan.say();

       }

}

import American.man;

public class America

{

       public static void main(String args[])

       {

              man lisi=new man();

              lisi.say();

       }

}

(5)编写一个java程序,在程序中定义一个接口Achievement,定义一个父类Person,定义一个子类Student继承Person类并实现Achievement接口,在子类Student中实现接口中的抽象方法并调用父类的方法

package com.gdut.net.javaoo.class070120;

//JieKou.java

interface Achievement

{

       public float average();//[代码1]定义一个返回float型的方法average()

}

class Person

{

       String name;

       int age;

       public Person(String newName,int newAge)

       {

              name=newName;

              age=newAge;

       }

       public void introduce()

       {

              System.out.println("你好,我是"+name+",今年"+age+"岁");

       }

}

class Student extends Person implements Achievement//[代码2]继承person类并实现Achievement接口

{

       int Chinese;

       int Math;

       int English;

       public Student(String newName,int newAge)

       {

              super(newName,newAge);//[代码3]调用父类的构造方法public Person(String newName.int newAge)

       }

       public void setScore(int c,int m,int e)

       {

              Chinese=c;

              Math=m;

              English=e;

       }

       public float average()

       {

              return (Chinese+Math+English)/3;

       }

}

class JieKou

{

       public static void main(String args[])

       {

              Student s1=new Student("张三",16);

              s1.introduce();//[代码4]调用s1的introduce方法

              s1.setScore(80,90,80);

              System.out.println("我的平均分是"+s1.average());//[代码5]显示s1的平均分

       }

}

(6)编写一个java程序,在程序中定义一个School类,在School类中定义一个内部类Student,分别创建这两个类的对象,访问个个对象中的方法

package com.gdut.net.javaoo.class070120;

//Inner.java

class School

{

  String name;

  public class Student

  {

    String name;

    int age;

    public Student(String schoolName,String studentName,int newAge)

    {

      School.this.name=schoolName;

      name=studentName;

      age=newAge;

    }

    public void output()

    {

      System.out.println("学校:"+School.this.name);

      System.out.println("姓名:"+this.name);

      System.out.println("年龄:"+this.age);

    }

  }

  public void output()

  {

    Student stu=new Student("金融学院","张三",24);

    stu.output();

  }

}

public class Inner

{

  public static void main(String args[])

  {

    System.out.println("--通过外部类成员访问内部类成员--");

    School a=new School();

    a.output();

    System.out.println("--直接访问内部类成员--");

    School.Student b=a.new Student("金融学院","李四",23);

    b.output();

  }

}

四.实验的结果及分析

五.实验心得体会

通过本章节的学习,对于本章节所要学习的目标都初步达到了。

更好地掌握了java程序的编写以及其思想。

 

第二篇:Java实验报告5

实 验 报 告(五)

相关推荐