姓名 实验报告成绩
评语:
指导教师(签名)
年 月 日
一、实验目的
1. 掌握接口的概念,实现定义接口的方法。
2. 理解抽象类的概念。
3. 理解接口与抽象类的区别。
二、实验内容
1. 设计一个Person 类,其成员变量有:姓名(name)、性别(gender)、年龄(age);再设计一个Student类,它是类Person的子类,其成员变量有:学号(id)、班名(cname)、成绩(score),类Student中要有一个方法 display(),用来显示一个学生的信息。
编写一个测试程序,创建一个Student类的对象,要求name和id 是自己的姓名和学号,输出学生的各种信息,学生的基本信息在类Student的带参数的构造方法中设定。
publicclass Main {
publicstaticvoid main(String args[]){
Student A = new Student(" ","男","18","1243102140","计算班",100);
A.display();
}
}
class Person{
String name;
String gender;
String age;
}
class Student extends Person{
String id;
String cname;
intscore;
Student(String name,String gender,String age,String id,String cname,int score){
this.name=name;
this.gender=gender;
this.age=age;
this.id=id;
this.cname=cname;
this.score=score;
}
void display(){
System.out.println(name+' '+gender+' '+age+' '+id+' '+cname+' '+score);
}
}
2. 定义一个类A,该类有一个方法f,方法f可以输出英文字母,再定义一个类B是A的子类,子类B不能重写父类A的方法f,子类有一个方法g,可以输出中文字符串。
编写测试程序,创建B的对象,输出英文字母和中文字符串。
publicclass Main {
publicstaticvoid main(String args[]){
B temp = new B();
temp.f('A');
temp.g("你好");
}
}
class A{
void f(char c){
System.out.println(c);
}
}
class B extends A{
void g(String str){
System.out.println(str);
}
}
3. 定义一个坐标类Pointer,成员变量包括x和y;成员方法有:
(1)构造方法
(2)setX、setY、getX、getY、display方法
(3)类方法distance用来计算两点之间的距离
编写测试程序,创建Pointer的两个对象并计算两个点坐标的距离。
publicclass Main {
publicstaticvoid main(String args[]){
Pointer p1 = new Pointer(1.0,1.0);
Pointer p2 = new Pointer(0.0,0.0);
System.out.println(p1.distance(p2));
}
}
class Pointer{
double x,y;
Pointer(double x,double y){
this.x=x;
this.y=y;
}
void setX(double x){
this.x=x;
}
void setY(double y){
this.y=y;
}
double getX(){
return x;
}
double getY(){
return y;
}
double distance(Pointer b){
return Math.sqrt((x-b.x)*(x-b.x)+(y-b.y)*(y-b.y));
}
}
4. 定义一个抽象类Area、两个Area的子类RectArea和RoundArea,以及一个实现类ImpleArea。要求如下
(1)抽象类Area类中只包含一个抽象方法double area()。
(2)子类RoundArea类通过覆盖父类中的抽象方法area()来求圆的面积,另一个子类RectArea类通过覆盖父类中的抽象方法area()求长方形的面积。
(3)圆的半径和长方形的边分别定义为子类RoundArea类和RectArea类的域,都为double娄型。
(4)ImpleArea类中创建对象,接收键盘输入,输入内容分别为圆的半径和长方形的边,并求出圆和长方形的面积,在屏幕上显示。
import java.util.Scanner;
publicclass Main {
publicstaticvoid main(String args[]){
ImpleArea.test();
}
}
abstractclass Area{
abstractdouble area();
}
class RoundArea extends Area{
double r;
RoundArea(double r){
this.r=r;
}
publicdouble area(){
return 3.14*r*r;
}
}
class RectArea extends Area{
double a,b;
RectArea(double a,double b){
this.a=a;
this.b=b;
}
publicdouble area(){
return a*b;
}
}
class ImpleArea{
staticdoublea,b;
staticvoid test(){
Scanner sc = new Scanner(System.in);
System.out.println("请输入半径:");
RoundArea A = new RoundArea(sc.nextDouble());
System.out.println("请输入宽:");
a=sc.nextDouble();
System.out.println("请输入高:");
b=sc.nextDouble();
RectArea B = newRectArea(a,b);
sc.close();
System.out.println(A.area());
System.out.println(B.area());
}
}
5. 编写一个Flyable接口,包含:
方法:double flySpeed(),用于返回最大的飞行速度。并实现该接口.
publicclass Main {
publicstaticvoid main(String args[]){
A fly = new A();
System.out.println(fly.flyspeed());
}
}
interface Flyable{
publicdouble flyspeed();
}
class A implements Flyable{
publicdouble flyspeed(){
double speed = 0;
/*
* 计算过程
*/
return speed;
}
}
第二篇:JAVA实验报告3
数学与计算机学院
实 验 报 告
(2011/ 20## 学年 第 1 学期)