一.实验目的
(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》姓名所属地市实验地点实验日期实验总成绩指导教师签名实验单位(…
五子棋JAVA实验报告一实验目的和要求1能够用编程语言实现一个简单的五子棋程序2在实际系统中使用实现人工智能的相关算法3进一步加深…
信息工程学院Java程序设计实习报告JAVA图形用户界面实验六Java图形用户界面1实验目的1掌握图形用户界面基本组件2了解如何使…
北京联合大学信息学院“面向对象程序设计”课程上机实验报告题目:JAVA上机实验心得体会姓名(学号):专业:计算机科学与技术编制时间…
Java语言程序设计实验报告实验序号3一实验目的及要求1进一步熟练Java语法和常用方法的使用2进一步熟练Java程序结构3进一步…
北京联合大学信息学院“面向对象程序设计”课程上机实验报告题目:JAVA上机实验心得体会姓名(学号):专业:计算机科学与技术编制时间…
Homework3实验报告一实验目的与要求1掌握Java中类和接口的基本知识2继承的基本知识3集合的基本操作二实验内容1PIMCo…
浙江理工大学Java程序设计实验报告20xx20xx学年第二学期学院班级姓名学号任课教师信息学院11数字媒体技术2周咪咪20xx3…
JAVE实验报告学号姓名班级指导教师129074401李阳网124柯栋梁安徽工业大学计算机学院20xx年1月实验一利用JAVA反射…
Java课程设计报告学号姓名班级指导教师129074068叶玉虎计122班柯栋梁安徽工业大学计算机学院20xx年12月实验一利用J…