面向对象编程(0)

上传人:zw****58 文档编号:53962351 上传时间:2018-09-06 格式:PPT 页数:84 大小:386KB
返回 下载 相关 举报
面向对象编程(0)_第1页
第1页 / 共84页
面向对象编程(0)_第2页
第2页 / 共84页
面向对象编程(0)_第3页
第3页 / 共84页
面向对象编程(0)_第4页
第4页 / 共84页
面向对象编程(0)_第5页
第5页 / 共84页
点击查看更多>>
资源描述

《面向对象编程(0)》由会员分享,可在线阅读,更多相关《面向对象编程(0)(84页珍藏版)》请在金锄头文库上搜索。

1、第四章 面向对象编程,1、面向对象编程基础 2、Java中的类、方法和变量 3、Java名字空间及访问规则 4、Java中的抽象类、接口和程序包 5、对象的构造方法,1、面向对象编程基础,面向对象概述程序设计语言的发展 面向机器的程序设计语言,如汇编 面向过程的程序设计语言,如PASCAL、C 面向对象的程序设计语言,如C+,JAVA,面向对象概述,面向过程的程序设计 面向过程的程序设计以具体的解题过程为研究和实现的主体,数据结构和算法是其解题的核心组成。 面向过程的问题求解可以精确、完备的描述具体的求解过程,但随着软件规模和复杂度的不断增加,面向过程的程序设计语言不能将复杂的系统描述清楚,使

2、程序员感到力不从心。,面向对象概述,面向对象的程序设计 以求解问题中涉及的各种对象为主体,力求求解过程符合人们的日常思维习惯,降低求解问题的难度和复杂度,提高编程效率 力图从实际问题中抽象出封装了数据和操作的对象,通过定义属性和操作来表述他们的特性和功能,通过定义接口来描述他们的地位及他们与其他对象的关系,最终形成一个广泛联系的可理解、可扩充、可维护及更接近于问题本来面目的动态对象模型系统,面向对象概述,面向对象的程序设计的特点 对象的数据封装特性彻底消除了传统结构方法中数据和操作分离所带来的问题,将对象的私有数据和共有数据分离开。 对象具有良好的自理性,通过自身定义的操作来管理自己。改变自身

3、的状态或向外界发布消息。 通过一定的接口和相应的消息机制与外界联系 对象通过继承实现代码重用,面向对象概述,面向对象的程序设计是将数据及对数据的操作封装在一起,成为一个不可分割的整体。 同时,将具有相同特征的对象抽象成为一种新的数据类型类。 通过对象间的消息传递使整体系统运转 通过类的继承提供代码重用。,面向对象技术主要围绕以下几个概念:对象、抽象数据类型、类、类型层次(子类)、继承性、多态性。,面向对象的概念,对象有两个层次的概念:现实生活中对象指的是客观世界的实体;程序中对象就是一组变量和相关方法的集合,其中变量表明对象的状态,方法表明对象所具有的行为。,面向对象的概念对象,可以将现实生活

4、中的对象经过抽象,映射为程序中的对象。对象在程序中是通过一种抽象数据类型来描述的,这种抽象数据类型称为类(Class)。,面向对象的概念对象,类是描述对象的“基本原型”,它定义一类对象所能拥有的数据和能完成的操作。在面向对象的程序设计中,类是程序的基本单元。相似的对象可以归并到同一个类中去,就像传统语言中的变量与类型关系一样。程序中的对象是类的一个实例,是一个软件单元,它由一组结构化的数据和在其上的一组操作构成。,面向对象的概念类,面向对象的概念类,变量:指对象的所知道的状态。 方法:指对象的功能单元。 消息 软件对象通过相互间传递消息来相互作用和通信,一个消息由三部分组成:1. 接受消息的对

5、象2. 接收对象要采取的方法3. 方法需要的参数,面向对象的概念类,一个例子在程序中所操作的对象是类的一个实例。 创建一个对象: Hello obj=new Hello(); 调用方法: obj.showString();调用对象的方法相当于给对象发送消息,收到消息的对象通过改 变自身的状态或者向其它对象发送消息来响应消息。,面向对象的概念类,为什么要使用类? 采用简单数据类型表示现实世界中概念的局存在很大的限性。例如:采用int型数据表示一个日期概念,需要使用3个变量:int day, month, year; 如果要表示2个人的生日,就要使用6个变量 并且在使用中必须时刻注意三者的联系和约

6、束关系 同时在使用日期概念时要同时对三个变量进行访问使用类可以把现实问题中的对象映射为程序中的一个整体类。,面向对象的概念类,类中不但有变量,还有与之相关的操作所定义的方法。将变量和方法封装在一个类中,可以对成员变量进行隐藏,外部对类成员的访问都通过方法进行,能够保护类成员不被非法修改。,class BirthDate public int day,month,year;public int tomorrow() BirthDate mybirth, yourbirth;,BirthDate date; 已知当前日期对象,求第2天的日期对象:date.day =date.day+1; 如果da

7、te.day已经为31,操作结果是非法状态。可以定义一个成员方法tomorrow(),求第2天的日期对象。外部要获得当前日期的后一天时,只要调用: date.tomorrow();,面向对象的概念类,封装把对象的所有组成部分组合在一起,封装定义程序如何引用对象的数据,封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。,面向对象的概念封装,子类是作为另一个类的扩充或修正而定义的一个类。,面向对象的概念子类,继承是子类利用父类中定义的方法和变量,就像它们属于子类本身一样。,class Car int color_number; int door_number;int spe

8、ed;public void push_break()public void add_oil() ,class Trash_Car extends Car double amount;public void fill_trash() ,面向对象的概念继承,方法的覆盖 覆盖使得在子类中可以重新定义父类中已有的方法,从而体现出子类自己的行为。,class Car int color_number; int door_number;int speed;public void push_break()speed = 0;public void add_oil() ,class Trash_Car ex

9、tends Car double amount;public void fill_trash() public void push_break()speed = speed 10; ,面向对象的概念方法的覆盖,重载指得是在同一个类中至少有两个方法用同一个名字,但有不同的参数。,面向对象的概念方法的重载(多态性),例如对于StringBuffer类,它有方法public StringBuffer append(int i);public StringBuffer append(double d);public StringBuffer append(String s);public String

10、Buffer append(char str,int offset,int len);,import java.awt.Graphics; import java.applet.Applet; import java.awt.Color; class circle protected int x,y,width,height;circle(int a,int b,int c,int d)x=a;y=b;width=c;height=d; ,/用extends继承Applet类 public class circle4_2 extends Applet circle t;public void

11、paint(Graphics g)t=new circle(30,30,40,80);g.setColor(Color.red);g.fillOval(t.x,t.y,t.width,t.height);t=new circle(80,80,30,30);g.setColor(Color.blue);g.fillOval(t.x,t.y,t.width,t.height); ,Circle4_2.html,类、方法、变量定义的语法规范 对象的创建和使用 继承、覆盖、重载、多态等概念,2、Java中的类、方法和变量,2、Java中的类、方法和变量类定义的语法规范,类的严格定义及修饰字,类的修饰字

12、: public abstract | final缺省方式为 friendly,一个简单的类,class Car int car_number;void set_number(int car_num)car_number=car_num;void show_number()System.out.println (“My car No. is : ”+car_number); ,class CarDemo public static void main(String args)Car Democar=new Car();DemoCar.set_number(3838);DemoCar.show_

13、number(); ,My car No. is : 3838,2、Java中的类、方法和变量一个简单的类,import java.awt.Graphics; import java.applet.Applet; import java.awt.Color; class Peopleprotected String name,addr,age;People(String a,String b,String c)name=a;addr=b;age=c; public class Men4_3 extends AppletPeople p;/声明People对象public void paint(

14、Graphics g)p=new People(“徐博“,“北京市“,“20“);/创建People对象g.setColor(Color.blue); /设置输出字体颜色g.drawString(p.name,30,20); /输出字符串g.drawString(p.addr,30,40); /输出字符串g.drawString(p.age,30,60); /输出字符串 ,Men4_3.html,变量修饰字 变量数据类型 变量名1,变量名2=变量初值;,变量的定义及修饰字,public | protected | private static final transient volatile,

15、成员变量的类型可以是Java中任意的数据类型,包括简单类型,类,接口,数组。在一个类中的成员变量应该是唯一的。,2、Java中的类、方法和变量变量定义的语法规范,变量的定义及修饰字,访问控制符 Public:定义的变量能被所有类访问 Private:定义的变量在所定义的类中访问 Protected:定义的变量在类的子类或由类生成的实例中访问例4.6,import java.applet.Applet; import java.awt.*; import java.awt.Graphics; class Circle private String x,y,width,height;/Circle

16、类定义四个私有变量,它只能在定义的类内部使用,/要想在外部使用,则需要protected变量的帮助protected String x1,y1,width1,height1;/用来将private值传递出去Circle()/调用四个私有变量并做赋值运算x=“20“;x1=x; /将其值赋给保护变量以做传递y=“25“;y1=y; /将其值赋给保护变量以做传递width=“30“;width1=width; /将其值赋给保护变量以做传递height=“35“;height1=height; /将其值赋给保护变量以做传递 ,public class ok4_6 extends Applet public void paint(Graphics g)Circle c=new Circle();g.setColor(Color.blue);g.drawString(c.x1,10,20);g.drawString(c.y1,10,40);g.drawString(c.width1,10,50);g.drawString(c.height1,10,70); ,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号