GDOU-B-11-112广东海洋大学学生实验报告书
实验名称实验3:高级类特性编程课程名称Java程序设计2 成绩
学院(系)软件学院专业计算机软件工程班级软件1074
学生姓名陈瑞彬学号200711701401 实验地点04004 实验日期09-03-26
实验目的:
1.理解Java抽象类的概念;
2.掌握接口的概念,掌握接口的多重实现和多重继承;
3.了解内部类的概念;
实验内容:
1.创建一个实例来演示内部类的使用。
创建类Inner,在类中定义一个变量,两个方法和一个内部类Inn。
具体如下:(根据下列要求写出源文件Inner.java)
外部类Inner的成员域: int a=10;
外部类的成员方法如下:
public void getB() //实现打印内部类的成员变量b的值。
public void getN() //实现调用内部类的成员方法getA(int a)和getS();
public static void main(String args[]) //生成Inner的实例对象,并实现调用其所有的
成员方法。
内部类Inn的成员域和成员方法如下:
int a=20;
int b=5;
public void getA(int a) //该方法实现打印局部变量a,内部类的成员变量a,以及外
部类的成员变量a的值。
public void getS() //该方法调用外部类的成员方法getB();
2. 创建一个抽象类Animal,其中包括的成员域和成语方法如下:
private String name;
public String showInfo() // 该方法返回姓名的字符串值。
public abstract void eat(); // 抽象方法
创建一个类Person继承Animal,要求重写其父类抽象方法。
自己添加代码,要求能生成Person
类的对象并调用所有的方法。
3. 接口的多重实现问题。
创建一个抽象类和多个接口,要求定义一个子类能继承抽象类并实现下
列所有的接口。
abstract class Animal {public abstract void eat();}
interface Runner { public void run();}
interface Swimmer{ public void swim();}
指导教师日期
注:请用A4纸书写,不够另附纸。
第页,共页
4.接口的多重继承问题:
interface A { int age=8;}
interface B { int age=10;}
创建一个类实现上面的两个接口要求能打印上述两个接口中age的值。
5.匿名内部类的问题:
定义一个接口
interface Runner
{ void start();
void run();
void stop();}
要求能写出一个实现上述接口的匿名内部类,并生成该匿名类的对象并调用上述的所有方法。
1.
public class Inner
{
int a=10;
class Inn
{
int a=20;
int b=5;
public void getA(int a)
{
System.out.println(a);
System.out.println(this.a);
System.out.println(Inner.this.a);
}
public void getS()
{
getB();
}
}
public void getB()
{
Inn e=new Inn();
System.out.println(e.b);
}
public void getN()
{
Inn f=new Inn();
f.getA(2);
getB();
}
public static void main(String args[])
{
Inner d=new Inner();
Inner.Inn c=d.new Inn();
d.getB();
d.getN();
c.getA(1);
c.getS();
}
}
2.
abstract class Animal
{
private String name="cmd";
public String showInfo()
{
System.out.println(name);
return name;
}
public abstract void eat();
}
public class Person
{
public static void main(String args[])
{
Animal b=new Animal()
{
public void eat()
{
System.out.println("avc");
}
};
b.eat();
b.showInfo();
}
}
3.
abstract class Animal
{
public abstract void eat();
}
interface Runner
{
public void run();
}
interface Swimmer
{
public void swim();
}
public class Person1
{
public static void main(String args[])
{
Animal e=new Animal()
{
public void eat()
{
System.out.println("eat");
}
};
Runner r=new Runner()
{
public void run()
{
System.out.println("run");
}
};
Swimmer s=new Swimmer()
{
public void swim()
{
System.out.println("swim");
}
};
e.eat();
r.run();
s.swim();
}
}
4.
interface A
{
int age=8;
public abstract void A_method();
}
interface B
{
int age=10;
public abstract void B_method();
}
class AB implements A,B
{
public void A_method()
{
System.out.println(A.age);
}
public void B_method()
{
System.out.println(B.age);
}
}
public class C
{
public static void main(String args[])
{
AB a=new AB();
a.A_method();
a.B_method();
}
}
5.
interface Runner
{
void start();
void run();
void stop();
}
public class Runners
{
public static void main(String args[])
{
Runner r=new Runner()
{
public void start()
{
System.out.println("start");
}
public void run()
{
System.out.println("run");
}
public void stop()
{
System.out.println("stop");
}
};
r.start();
r.run();
r.stop();
}
}
指导教师蔡莉华日期09-03-26 注:请用A4纸书写,不够另附纸。
第6页,共6页。