欢迎来到天天文库
浏览记录
ID:59942466
大小:254.00 KB
页数:52页
时间:2020-11-28
《面向对象特征讲解培训资料.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、面向对象特征讲解面向对象(ObjectOriented-OO)面向对象编程(ObjectOrientedProgramming-OOP)面向对象是一种软件开发的方法,“面向对象的分析与设计”(OOA&OOD—研究生课程)第一个面向对象的语言:Simula-67第一个成功的面向对象编程语言:SmalltalkC++,JAVA,C#,PERL等用客观世界中描述事物的方法来描述程序中要解决的问题万事万物都是对象程序便是成堆的对象,彼此通过消息的传递,请求其他对象进行工作4.1基本概念(续)2五个基本概念对象类封装性继承性多
2、态性4.1基本概念(续)3对象(object)everythingisanobject现实世界的对象:桌子、书、自行车、电视、狗、文件、表格、按钮、窗口对象包含两个特性状态:指对象本身的信息(内部信息/内部变量)行为:实现对信息的访问/对象的操作标志:代表对象的标识符山地车的状态(两个车轮、一些齿轮、速度、挡数),行为(刹车、加速、减速和换挡)书包含很多信息,拥有访问所包含信息的方法,一页一页的看,通过目录找到感兴趣的内容4.1.1对象4对象(object)状态变量(variables)行为方法(method)对
3、象就是变量和相关方法的软件集合一个对象可以由其他对象组合而成,窗口(按钮,菜单条,文本框,状态栏等)程序就是对象的集合,对象之间相互交互和通信完成任务搭积木Aprogramisabunchofobjectstellingeachotherwhattodobysendingmessages4.1.1对象(续)5类(class)亚里士多德:theclassoffishesandtheclassofbirds现实世界中,存在很多同类的对象,很多桌子、书、自行车一种原型,一种抽象,一种共性,一个模板Everyobjectha
4、satype实例(instance),某类对象的一个特定实体,类是对象的一个抽象表格(类)填入不同的个人信息不同的对象4.1.2类6封装性对象本身的数据得到保护/隐藏其他对象仅仅需要知道对该对象的访问方法(接口/interface)即可好处模块化--每个对象的源文件可以是相互独立的,可以被不同的程序调用,每个对象是一块积木,可以搭建不同的形状信息隐藏--通常定义一个公共接口/方法实现对对象的访问,可以调整对象的私有信息和方法,而不会对其他调用它的对象产生影响可重用性黑盒子电脑的DIY喷墨打印机,硒鼓坏/彩色硒鼓4.
5、1.3封装性7继承性为什么会有继承?建立一个类后,发现另一个新的类有相同的特性,两个选择:重新定义一个新的类;在已有类的基础上,修改(加加/减减)父类和子类,子类继承(拥有)父类所有的数据和方法,同时子类可以有新的数据和方法,“青出于蓝,而胜于蓝”树型结构(层次化结构)根(基类)4.1.4继承性8继承性运输工具航空运输工具陆地运输工具水上运输工具人力驱动引擎驱动二轮四轮客运货运4.1.4继承性(续)9继承性多重继承类A类B类C类D类F类G一个类拥有多个父类产生二义性,例类C和类D都有一个同名的方法,类G?Java中
6、仅仅支持单一继承,同时Java采用Interface(接口)实现多重继承而避免父类二义性4.1.4继承性(续)10多态性表现在继承中方法的重写子类从父类继承(extends扩展)而来多个子类同属一个父类,所有子类有相同的父类继承父类的方法在不同的子类中有不同的表现形式表现在用一个类中方法的重载4.1.5多态性11多态性多态性在继承中的表现4.1.5多态性(续)12多态性classSquareextendsShape{voiddraw(){System.out.println("Square.draw()");}v
7、oiderase(){System.out.println("Square.erase()“);}}classTriangleextendsShape{voiddraw(){System.out.println("Triangle.draw()");}voiderase(){System.out.println("Triangle.erase()");}}classShape{voiddraw(){}voiderase(){}}classCircleextendsShape{voiddraw(){System.out
8、.println("Circle.draw()");}voiderase(){System.out.println("Circle.erase()");}}4.1.5多态性(续)13多态性publicclassTest{publicstaticShaperandShape(){switch((int)(Math.random()*3)){def
此文档下载收益归作者所有