2016级java语言实验3指导(面向对象程序设计(继承、封装、多态))(共14页).docx
《2016级java语言实验3指导(面向对象程序设计(继承、封装、多态))(共14页).docx》由会员分享,可在线阅读,更多相关《2016级java语言实验3指导(面向对象程序设计(继承、封装、多态))(共14页).docx(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上上机实验三:面向对象程序设计(继承、封装、多态)类是面向对象程序设计的基础,是Java的核心和本质所在,在Java中,所有的语言元素都封装在类中。编写java程序的过程就是从现实世界中抽象出java可实现的类,并用合适的语句定义它们的过程,本节将学习类的应用,以及如何创建类的实例,通过类的继承更有效的组织程序结构,明确类之间的关系。掌握本节所讲的内容后,读者就可以使用面向对象技术编写java程序了。接口是特殊的抽象类,只包含常量和方法的定义,而没有方法的实现,也就是说接口是方法定义和常量值的集合。包是Java语言中有效管理类的一个机制。通过关键字package声明包语
2、句,package语句作为Java源文件的第一条语句,指明该源文件定义的类所在的包。使用import语句可以引入包中的类。一、实验目的1) 掌握类的定义和使用2) 掌握对象的声明和使用3) 了解构造函数的概念和使用4) 掌握类的继承关系和派生方法5) 掌握多态的概念与使用6) 掌握接口的定义和使用7) 掌握Java中包的应用二、实验内容1) 类的声明2) 定义类成员变量以及成员方法3) 实例化类、创建类对象以及类方法的调用4) 类的继承5) 通过实例理解接口的定义6) 通过实例熟悉接口的应用7) 正确应用Java中包和import语句三、实验步骤1) 类和类的实例化一个类的实现包括两部分:类声
3、明和类体。(1)、类声明publicabstractfinal class className extends superclassNameimplements interfaceNameList期中修饰符publicabstractfinal说明类的属性className为类名superclassName为父类的名字interfaceNameList为类实现的接口列表(2)、类体类体定义如下class classNamepublic|protected|private static final transient volatileType variableName; /成员变量public|
4、protected|private static final abstract native synchronizedreturnType methondName ( paramList ) throws exceptionListstatements /成员方法(3)、成员变量成员变量的声明方式如下 public|protected|private static final transient volatileType variableName; /成员变量其中:public|protected|private 可见性 static 静态变量(类变量),相当于实例变量 final 常量 tr
5、ansient 暂时性变量,用于对象存档 volatile 变量,用于共发线程的共享(4)、成员方法public|protected|private static final abstract native synchronizedreturnType methondName ( paramList ) throws exceptionList/方法体的声明statements /方法体其中:public|protected|private 可见性 static 静态方法,也叫类方法,可以通过类名直接调用 final 方法不能被重写abstract 抽象方法,没有方法体(体现多态时常用) na
6、tive 集成其他语言的代码 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; protec
7、ted 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();Syste
8、m.out.println("正方形的边长为"+sq1.calcPerimeter();(1) return (width+length)*2;(2) return width*length;(3) System.out.print("length="+length+"n"+"width="+width;(4) super(side,side);-填写的语句是:class Retangle public Retangle(double l, double w) length = l; width = w; publ
9、ic 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 Retan
10、gle public Square(double side) /调用父类的构造方法 super(side,side); 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.prin
11、tln("正方形的周长为"+sq1.calcPerimeter();2) 类的继承继承是面向对象程序设计的方法中的一种重要手段,通过继承可以更有效的组织程序的结构,明确类之间的关系。继承通过extends关键字来实现,子类继承父类的属性和行为,同时可以修改父类的属性和行为,并添加新的属性和行为。Java不支持多重继承。创建子类的格式如下class SubClass extends SuperClass其中 SubClass子类的名称extends继承的关键字SuperClass父类的名字 例子3-2 请分析程序,填写语句的功能注释,并上机调试成功。下面这个例子通过点、圆的层
12、次结构,介绍类的继承。-import java.text.DecimalFormat; /调用格式化数字输出import javax.swing.JOptionPane; / joptionpane让您轻松弹出一个标准的对话框class Point /父类点的的定义 protected int x,y ; / 定义点的坐标public Point() / 确定构造函数setPoint(0,0); public Point(int a,int b) /构造函数重载 带参数的构造函数setPoint(a,b);public void setPoint(int a,int b) / (1) x=a;
13、y=b;public int getX()return x; /获得X的坐标public int getY() return y; / 获得Y的坐标public String toString()return ""+x+","+"y"+""/*子类圆的定义*/class Circle extends Point /圆类继承父类点类 protected double radius ;/定义圆的半径public Circle() setRadius(0);/ 定义子类的构造函数,隐含调用了父类的构造函数public C
14、ircle(double r,int a,int b)super(a,b);/ (2) setRadius(r);public void setRadius(double r)radius = (r>=0.0?r:0.0); / (3) public double getRadius() / 获得圆半径 return radius; public double area() / (4) return Math.PI*radius*radius; public String toString()/圆的半径。以及圆心坐标转换成字符串输出return "Center="+&
15、quot;"+x+","+y+""+"Radius="+radius; public class InheritanceTestpublic static void main(String args)Point pointRef,p;/声明两点对象Circle circleRef,c;/声明两圆对象String output;/定义一个字符串变量p=new Point(30,50);/给点对象赋值c=new Circle (2.7,120,89);/给圆对象赋值 /把点对象和圆对象转换成字符串后给字符串output赋值out
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2016 java 语言 实验 指导 面向 对象 程序设计 继承 封装 多态 14
限制150内