2016级java语言实验3指导(面向对象程序设计(继承、封装、多态))

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

上机实验三:面向对象程序设计(继承、封装、多态) 类是面向对象程序设计的基础,是Java的核心和本质所在,在Java中,所有的语言元素都封装在类中。编写java程序的过程就是从现实世界中抽象出java可实现的类,并用合适的语句定义它们的过程,本节将学习类的应用,以及如何创建类的实例,通过类的继承更有效的组织程序结构,明确类之间的关系。掌握本节所讲的内容后,读者就可以使用面向对象技术编写java程序了。

接口是特殊的抽象类,只包含常量和方法的定义,而没有方法的实现,也就是说接口是方法定义和常量值的集合。

包是Java语言中有效管理类的一个机制。通过关键字package声明包语句,package语句作为Java源文件的第一条语句,指明该源文件定义的类所在的包。使用import语句可以引入包中的类。

一、实验目的

1)掌握类的定义和使用

2)掌握对象的声明和使用

3)了解构造函数的概念和使用

4)掌握类的继承关系和派生方法

5)掌握多态的概念与使用

6)掌握接口的定义和使用

7)掌握Java中包的应用

二、实验内容

1)类的声明

2)定义类成员变量以及成员方法

3)实例化类、创建类对象以及类方法的调用

4)类的继承

5)通过实例理解接口的定义

6)通过实例熟悉接口的应用

7)正确应用Java中包和import语句

三、实验步骤

1)类和类的实例化

一个类的实现包括两部分:类声明和类体。

(1)、类声明

[public][abstract][final] class className [extends superclassName]

[implements interfaceNameList]

{……}

期中修饰符[public][abstract][final]说明类的属性

className为类名

superclassName为父类的名字

interfaceNameList为类实现的接口列表

(2)、类体

类体定义如下

class className

{

[public|protected|private] [static] [final] [transient] [volatile]

Type variableName; //成员变量

[public|protected|private] [static] [final] [abstract] [native] [synchronized] returnType methondName ( [paramList] ) [throws exceptionList]

{statements} //成员方法

}

(3)、成员变量

成员变量的声明方式如下

[public|protected|private] [static] [final] [transient] [volatile]

Type variableName; //成员变量

其中:[public|protected|private] →可见性

[static] →静态变量(类变量),相当于实例变量

[final] →常量

[transient]→暂时性变量,用于对象存档

[volatile]→变量,用于共发线程的共享

(4)、成员方法

[public|protected|private] [static] [final] [abstract] [native] [synchronized] returnType methondName ( [paramList] ) [throws exceptionList]//方法体的声明{statements} //方法体

其中:[public|protected|private] →可见性

[static] →静态方法,也叫类方法,可以通过类名直接调用

[final] →方法不能被重写

[abstract]→抽象方法,没有方法体(体现多态时常用)

[native] →集成其他语言的代码

[synchronized]→控制多个并发线程的访问

例子3-1请根据注释填写语句,并上机调试成功

根据注释添加语句,并调试和修改程序,使其能够执行。

--------------------------------------------------------------------------------------------------------------------- class Retangle {

public Retangle(double l, double w)

{ length = l; width = w;}

public double calcPerimeter() //返回周长

{ (1)}

public double calcArea() //返回面积

{ (2)}

public void Show() //显示矩形的长和宽

{ (3)}

protected double length;

protected double width;

}

class Square extends Retangle {

public Square(double side) //调用父类的构造方法

{ (4)}

public double calcPerimeter()

{ return width * 4; }

public void Show() {

System.out.println( “边长为”+ width + “的正方形”);

}

}

public class Test{

public static void main(String args[]){

Square sq1=new Square(2.0);

sq1.Show();

System.out.println("正方形的边长为"+sq1.calcPerimeter());

}

{ length = l; width = w;}

public double calcPerimeter() //返回周长

{ return (width+length)*2; } public double calcArea() //返回面积

{ return width*length; } public void Show() //显示矩形的长和宽

{ System.out.print("length="+length+"\n"+"width="+width ) ; }

protected double length;

protected double width;

}

class Square extends Retangle {

public Square(double side) //调用父类的构造方法

{ super(side,side); }

public double calcPerimeter()

{ return width * 4; }

public void Show() {

System.out.println( "边长为" + width + "的正方形");

相关文档
最新文档