教学面向对象程序设计标准课件.ppt

上传人(卖家):晟晟文业 文档编号:5182398 上传时间:2023-02-16 格式:PPT 页数:174 大小:4.15MB
下载 相关 举报
教学面向对象程序设计标准课件.ppt_第1页
第1页 / 共174页
教学面向对象程序设计标准课件.ppt_第2页
第2页 / 共174页
教学面向对象程序设计标准课件.ppt_第3页
第3页 / 共174页
教学面向对象程序设计标准课件.ppt_第4页
第4页 / 共174页
教学面向对象程序设计标准课件.ppt_第5页
第5页 / 共174页
点击查看更多>>
资源描述

1、教学课件面向对象程序设计(优选)第教学课件面向对象程序设计几个概念:程序、程序设计语言、程序设计方法 l程序:是一组有序指令的集合,由某种程序设计语言编写而成。l程序设计语言:是人与计算机之间进行交流的工具。是由字、词和语法规则构成的指令系统。程序设计语言1.机器语言:是计算机能够直接执行的二进制指令代码,每条指令都用0和1组成的序列串表示,这些指令的集合就是指令系统。如加法运算:10110110。2.汇编语言:主要由汇编指令构成,这些汇编指令与机器语言的二进制指令一一对应。如加法运算:ADD。注意:机器语言和汇编语言都是面向机器的程序设计语言,注意:机器语言和汇编语言都是面向机器的程序设计语

2、言,它们与计算机的硬件紧密相关。它们与计算机的硬件紧密相关。程序设计语言3.高级语言:FORTRAN语言和随后出现的BASIC语言、Pascal语言、COBOL语言以及C语言等等,都被称为高级语言。程序员在使用高级语言编写程序时,不需要熟悉计算机的指令系统,可以将精力集中于解题思路和方法上。如加法运算:+。计算机不能直接执行高级语言程序,必须先翻译成为机器语言程序之后才能执行。程序设计方法l程序设计方法是独立于具体程序设计语言的一门技术。由于程序设计通常离不开程序设计语言作为工具,所以容易混淆程序设计方法与程序设计语言的概念。l程序设计语言的设计目的主要是为了支持某种程序设计方法。程序设计方法

3、1.早期的程序设计方法:n早期的高级程序设计语言有FORTROM、COBOL、BASIC等。这一时期由于追求程序的高效率,程序员过份依赖技巧与天份,不太注重程序的结构,一个典型问题是程序中的控制随意跳转,即不加限制地使用goto语句,这样的程序对阅读者来说是难以理解的,程序员也难以修改程序。程序设计方法2.结构化的程序设计方法:n随着程序规模与复杂性的不断增长,20世纪60年代诞生了结构化程序设计方法。结构化程序设计方法的主要技术是自顶向下、逐步求精,采用单入口/单输出的控制结构。这一程序设计方法的代表语言是Pascal、C等。结构化的程序设计方法l结构化程序设计方法的基本思路是,把一个复杂问

4、题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。具体说,采取以下方法保证得到结构化的程序:(1)自顶向下;(2)逐步细化;(3)模块化设计;(4)结构化编码。l结构化的程序设计把程序的结构规定为顺序、选择和循环三种结构,限制使用GOTO语句,并采用了自顶向下、逐步求精的分析和设计方法,即功能分解法,这种方法将需求空间视为一个功能模块,该模块又进行分解,生成多个小的功能模块,重复分解,直至每个模块具有明确的功能和适当的复杂度,而每个模块的功能实现都由上述三种基本结构组成,其目的是为了解决由许多人共同开发大型软件时,如何高效率地完成高可靠系统的问题。结构化的程序设计方

5、法l在接受一个任务后应怎样着手进行呢?有两种不同的方法:1.一种是自顶向下,逐步细化。2.一种是自下而上,逐步积累。l以写文章为 例来说明这个问题:有的人胸有全局,先想好整个文章分成哪几个部分,然后再进一步考虑每一部分分成哪几节,每一节分成哪 几段,每一段应包含什么内容,用这种方法逐步分解,直到作者认为可以直接将各小段表达为文字语句为止。这种方法就叫做“自顶向下,逐步细化”。另有些人写文章时不拟提纲,如同写信一样提起笔就写,想到哪里就写到哪里,直到他认为把想写的内容都写出来了为止。这种方法叫做“自下而上,逐步积累”。l显然,用第一种方法考虑周全,结构清晰,层次分明,作者容易写,读者容易看。如果

6、发现某一部分中有一段内容不妥,需要修改 只需找出该部分,修改有关段落即可,与其他部分无关。l我们提倡用这种方法设计程序。这就是用工程的方法设计程序。我们应当掌握自顶向下、逐步细化的设计方法。这种设计方法的过程是将问题求解由抽象逐步具体化的过程。结构化的程序设计方法l结构化的程序设计把数据和对数据的处理过程分离为相互独立的实体,即程序结构是“数据结构+算法”。若要修改某个数据结构,就需要改动涉及此数据结构的所有处理模块,所以,当应用程序比较复杂时,人员出错,难以维护。其次,结构化的程序设计方法仍存在与人的思维不协调的地方,所以很难自然、准确地反映真实世界。因此,用此方法开发出来的软件,有时很难保

7、证其质量,甚至需要重新开发程序设计方法3.面向对象的程序设计方法(Object Oriented Object Oriented ProgrammingProgramming,OOPOOP)虽然结构化程序设计提高了软件生产率和软件质量,但随着程序规模与复杂性的增长,程序中的数据结构变得与这些数据上的操作同样重要。在大型结构化程序中,一个数据结构可能由许多个过程来处理,修改数据结构将影响到所有相关的过程。在由几百个过程组成的成千上万行的结构化程序中,这种情况变得相当麻烦并且容易产生错误。60 年代末开始,国际上出现了“软件危机”,主要表现是:软件质量 差、成本及开发进度难以控制,维护工作麻烦,产

8、生这一危机的根本 原因在于结构化方法强烈依赖系统逻辑模型的完整性描述,难以做到系统的动态变化与扩展,系统开发速度慢、周期长、费用高;结构化设计方法讲究的是自顶而下的“瀑布式”设计,使数据结构的设计仅服从于当前功能实现的要求,为以后的扩充和重用设置了巨大的障碍。面向对象的程序设计方法l20世纪80年代兴起的面向对象程序设计方法在结构化程序设计的基础上提出了一种新的设计思路,最重要的改变是程序围绕被操作的数据来设计,而不是围绕操作本身。面向对象程序设计以类作为构造程序的基本单位,具有封装、数据抽象、继承、多态化等特点。l较有影响的采用面向对象程序设计方法的语言有C+、Java等。面向对象的程序设计

9、语言大致可以分为两类,一类是纯面向对象语言,例如Java语言;另一类是混合型面向对象语言,它们往往是由结构化语言发展而来的,例如C+语言和Visual Basic语言。面向对象的程序设计方法l面向对象程序设计思想是将数据以及对数据的操作封装在一个独立的数据结构(对象)中,这种模式更接近现实世界,所有的对象都拥有属性和行为,对象之间的联系通过消息来实现。l面向对象,实际上就是以对象为中心来分析和解决问题。它不再将问题分解为过程,而是将问题分解为对象。例如,设计VB应用程序时,一个窗体就是一个对象,各种控件也是对象,程序员可以直接使用这些对象,程序的设计过程就是设计对象和运用对象的过程。l面向对象

10、的程序设计中程序是“对象+消息”。l面向对象程序设计方法力求符合人们自然的思维习惯,运用类和对象的观点描述问题域,然后用程序设计语言对问题进行描述和实现。面向对象的程序设计方法l面向对象的程序设计是以要解决的问题中所涉及的各种对象为主体,力求程序设计符合人们日常的思维习惯,降低问题的难度和复杂性,提高编程的效率。使用面向对象的程序设计方法来解决问题就是从实际问题中抽象并封装数据和操作的对象,通过定义其状态和操作其行为来表述对象的特征和功能。此外,还可以通过定义接口来描述对象的地位以及与其他对象的关系,最终形成一个广泛联系的可理解、可扩充、可维护及更接近于问题本来面目的动态对象模型系统。OOP的

11、逻辑过程 l面向对象设计分析的完整过程如图所示:现实域现实域抽象抽象类类对象对象实例化映射抽象数据类抽象数据类物理实体物理实体逻辑实现概念域概念域计算机世界计算机世界已知摄氏温度C,则华氏温度F=(C*9/5)+32。height=1.对象的创建和使用公有的(public):该类的成员可以被其他任何所有的类访问静态成员与实例成员public class theThisprivate String cellPhoneCode;/手机号码getInfo();求属性x和y的商,并返回结果的方法;这种设计方法的过程是将问题求解由抽象逐步具体化的过程。System.public static void

12、main(String args)name和user2.name与 age是User类的私有成员变量,外部类不能访问。/把构造方法参数x赋给类中的成员变量xpublic EmpInfo()/缺省的构造方法designation=Manager ;/给成员变量赋值friendly修饰符又称为缺省访问控制符。就可以直接修改User类中的成员变量。class Chinese面向对象的重要特征l 面向对象具有以下几个重要特征:抽象封装 继承多态性 33313234抽象l抽象(Abstraction):抽象是面向对象编程的起点,也是其最本质的特征之一。抽象的广义概念是这样定义的:从研究对象中提取与当前目

13、标主题关系最密切的主要方面,而忽略掉与目标无关的那些方面或关系不大的细枝末节,从而更充分地注意与当前目标有关的方面,更明确地突出主题,这就是抽象。抽象示例l下图阐述了如何由自然界众多的动物实体出发,经过抽象的处理过程,最终得到动物这一概念 封装l 封装(Encapsulation):封装也可称为信息隐藏(Information Hiding),是通过对象的方法来访问与改变对象属性的一种机制。封装是面向对象的一个重要原则,其实现的核心是将类的属性与相关的操作捆绑起来,包装成不可分割的、独立的对象实体,将内部的数据与实现细节尽可能隐蔽起来,使外部用户不能直接操纵对象的内部信息,只能通过对象对外提供

14、的施加有一定限制的访问接口来使用对象封装示例l下图形象地说明了一个类的封装原理。类对数据与行为的封装是借助于不同级别的访问修饰符来达到控制目的的 继承l继承(Inheritance):继承是指从已有的类中可以派生出若干个新类,已有类称为基类或父类,新类称为派生类或子类;子类将自动地获得基类的属性与方法,从而不需再重复定义这些属性与方法;当然子类还可以修改父类的方法或增加新的方法,从而使自己更适合特殊的需要。类之间的继承关系是现实世界中遗传关系的直接模拟多态性l多态性(Polymorphism):是指允许不同类的对象对同一消息作出各自的响应,即以统一的风格处理已存在的数据及相关的操作。多态性语言

15、具有灵活、抽象、行为共享、代码共享的优势,较好地解决了应用程序中方法同名的问题 OOP的优越性 l从面向过程到面向对象是程序设计技术的一个飞跃。人们之所以要采用面向对象的程序设计技术,其目的在于:1.按照与人类习惯思维方法一致的原则开发系统 2.提高代码的可重用性(或者称为复用性)3.提升程序的开发与运行效率 4.提高程序的可靠性与可维护性 5.提高程序的可扩展性 6.增强程序的可控制性总之,面向对象的程序设计,能够有效分解、降低问题的难度与复杂性,提高整个求解过程的可控制性、可监视性和可维护性,从而获得较高的开发效率与可靠效果结构化与面向对象程序设计之比较结构化与面向对象程序设计之比较l面向

16、对象程序设计方法与人类习惯的思维方式一致,比如希望完成“猪八戒吃西瓜”这样一件事情:在结构化的程序里,一切都是函数,函数最大,因此这件事情会用如下语句来表达:吃(猪八戒,西瓜);在面向对象程序里,一切以对象为中心,对象最大,因此这件事情会用如下语句来表达:猪八戒.吃(西瓜);l对比两条语句不难发现,面向对象的语句更接近自然语言的语法,主语、谓语、宾语一目了然,十分直观,程序员更容易理解。public static void main(String args)信息隐蔽,即尽可能隐蔽类的内部细节,对外形成一个边界(或者说形成一道屏障),只保留有限的对外接口使之与外部发生联系因为静态方法属于类本身,

17、所以只要声明了类,它的静态方法就存在,就可以直接使用类来调用。(2)当调用方法时,系统按照实参与形参一一对应的关系将实参的值或引用传递给对应的形参。public Student(String name)/一个参数的构造方法String name;/成员变量同样地,任何一个类的对象去修改它,也都是在对同一个内存单元进行操作。EmpInfo employee=new EmpInfo();/创建对象并实例化系统运行时为每一个静态成员变量只分配一个存储单元,使得所有通过该类实例化的对象共享同一个静态成员变量的存储空间。实例成员则属于类的实例(即对象),包括实例成员变量和实例成员方法。类实际上是一种复杂

18、的数据类型,它是将数据和对数据的操作封装在一起的集合体。Class14.println(str);public 变量名;定义一个由“人”类实例化而来的具体的“人”对象,该对象也就具有了“人”类的属性和行为,比如姓名为张三。friendly:此方法可以由本类中的方法和本包中其他类中的方法访问,为默认修饰符。Class27 ob2=new Class27(20);三角形、圆形和梯形的类封装:让学生学习使用类来封装对象的属性和行为。class Studentpublic static void main(Stringargs)l 面向对象程序设计方法面向对象程序设计方法l 类的定义类的定义l 构造方

19、法构造方法l 对象的创建和使用对象的创建和使用l this关键字关键字l 类的封装性类的封装性l 静态成员与实例成员静态成员与实例成员l 方法调用与参数传递方法调用与参数传递l 匿名对象匿名对象内 容 提 要 类 与对象 现实世界u现实世界中的类:在现实世界中把众多的事物归纳、划分成一些类是人类在认识客观世界时经常采用的思维方法。类是具有相同属性和行为的一组对象的集合,其内部包括属性和行为两个主要部分。例如,如果把“人”看成是一个抽象的类,那么人的姓名、性别、年龄等数据就是“人”类的属性,而说话、跑步等称为“人”类的行为(或者叫方法)。u现实世界中的对象:对象是类的一个实例。例如每一个具体的人

20、就是“人”类中的一个实例,即一个对象。定义一个由“人”类实例化而来的具体的“人”对象,该对象也就具有了“人”类的属性和行为,比如姓名为张三。但是不同的“人”对象的属性和行为是不尽相同的,例如两个人的姓名就是互不相同的。u总之,对象是类具体化的实例,类是同一种类型对象的抽象。类与对象的关系l可以用计算机模型与计算机实体之间的关系来更形象地说明类与对象之间的关系:l将冯诺依曼计算机模型看作计算机类,则不同品牌的计算机实体就对应为一个个的实例对象。类与对象的关系示例l计算机模型与计算机实体之间的关系:类与对象uJavaJava中的类与对象中的类与对象uJava中的类:u在Java语言中,将数据与对数

21、据进行的操作合起来定义为类。类实际上是一种复杂的数据类型,它是将数据和对数据的操作封装在一起的集合体。u类是普通数据类型的扩展,类不但含有数据,还包含了对数据进行操作的方法。类中的数据称为类的成员变量,类中的对数据进行的操作称为类的成员方法。二者统称为类的成员。lJava中的对象:在面向对象的方法学中,“对象”是现实世界的实体或概念在计算机逻辑中的抽象表示。一个对象被称为其类的一个实例,是该类的一次实例化的结果。在Java语言中,在Java语言中总是先有类,然后才能创建对象。脱离类的对象是无法创建的,而脱离了对象的类也是毫无意义的。类与对象是抽象与具体的关系。对象是由类创建的。对象的最主要特点

22、是以数据为中心,它是一个集成了数据和其上操作的封装。封装隐藏了类的内部实现细节,强制类的使用者通过规定的接口访问对象,提高了代码的可维护性。对象是具有唯一对象名和固定对外接口的一组属性和操作的集合,用来模拟组成或影响现实世界问题的一个或一组因素。类与对象之间的关系,类似于数据类型与变量之间的关系;一个类可以生成无数个不同的对象,每个对象属性值不同,其状态也不同。JavaJava中类的定义 类是组成java程序的基本要素,也是java程序设计的重要思想表现。作为程序的基本要素,类可以看作定义对象的模板。当编写Java程序时,既可以使用Java系统类库提供的类,也可以使用Java开发人员自己编写的

23、类。Java类的定义格式如下:class extends implements /类头 说明:(1)类头定义该类的名称、访问权限、与其他类的关系以及实现的接口等。(2)类体定义该类中的成员,包含成员变量和成员方法。成员方法是用来描述对成员变量进行的操作,不但定义方法,一般还要实现该方法。javajava类的定义 n类头说明:(1)class是定义类的关键字,、都应该是合法的Java标识符。习惯上类名的第一个字母大写,但这不是必须的。类名最好见名知意,当类名由几个”单词”复合而成时,每个单词的首写字母使用大写,如BeijingTime、AmericanMap、ChongQing,CarNumbe

24、r等。(2)在类的声明中必须包括关键字class和自定义的类名,而方括号 中的是可选项。(3)子句extends 显式地指明当前类的父类,子句implements 则说明当前类要实现接口。javajava类的定义修饰符修饰符关键字关键字含义含义限制限制访问权限修饰符public声明类是公有的,可以被任何类使用或继承。一个源程序中最多只能存在一个公有类。只能是主类终结类说明符final声明该类不能被继承。abstract与final为互斥的两个修饰符,不能同时出现于一个类的声明中抽象类说明符abstract声明该类不能被实例化,但可以被继承。无修饰符可以被同一个程序包中的其他类访问和继承(4)修

25、饰符:javajava类的定义l类是创建对象的模板,因此它应该能够描述一类事物共有的属性和功能,这个描述过程由类体实现。类声明之后的一对大括号“”、“”以及它们之间的内容称做类体。l类体的定义格式如下:说明:(1)类体的数据声明为成员变量,针对数据的操作声明为成员方法,数据的操作过程在成员方法的实现中体现。(2)构造方法主要用于类对象的实例化,又称构造器。(3)类体中声明的成员变量和方法的排列顺序可以任意。成员变量 n类的成员变量(Member Variable)是在类的内部、方法定义的外部所定义的变量,成员变量又称为属性(Attribute)或数据域(Data Field),用来描述类的数据

26、特征。n声明类的成员变量格式如下:访问权限修饰符 static final 数据类型 成员变量名1,成员变量名2,说明:(1)访问权限修饰符的作用是限定成员变量的可访问权限,主要有:public:公共的,此变量可以在任何地方访问。protected:受保护的,此变量可以在本包及其子类中访问。private:私有的,此变量只可以在本类中访问。friendly:此变量只可以在本包中访问,这是默认的修饰符。(2)static用于声明类成员变量,用于保存与整个类有关的状态数据的成员变量称为静态成员变量或者类成员变量,简称为类变量,final用于声明常量。(3)成员变量的数据类型既可以是基本数据类型,也

27、可以是引用数据类型,如数组或者其他类对象等。对象的创建和使用name+,年龄是:+user2.(2)初始化对象中的实例变量的值,初始值可以是缺省值,或者变量按指定的值初始化;较有影响的采用面向对象程序设计方法的语言有C+、Java等。private String cellPhoneCode;/手机号码各种访问权限的访问级别a=b;/静态变量aJava中的开平方:Math./引用成员变量面向对象的程序设计方法类是组成java程序的基本要素,也是java程序设计的重要思想表现。第一种做法,按照最原始的方式:也就是说,不论一个类具有多少个对象,静态变量只有一个,任何一个类的对象访问它,取得的都是相同

28、的数值。public static void main(String args)public void setX(int x)setX(-100);public class Rectanglepublic static void main(String args)class User静态成员方法在不创建对象的时候也可以被调用。成员变量成员变量定义示例class People /类头 int age;/成员变量 String name;/成员变量 double height;/成员变量 在该类中定义了三个成员变量,分别是int age、String name和double height。三个成员

29、变量的修饰符都是默认的friendly。成员变量定义示例【例】定义一个学生类Student其属性包含学号、姓名、性别、出生日期、电子邮箱、手机号码、QQ号码、通讯地址等。类的定义代码如下:class Student public String code;/学号 public String name;/姓名 public boolean sex;/性别 private Date birthDate;/出生日期 private String Email;/电子邮箱 private String cellPhoneCode;/手机号码 private int QQCode;/QQ号码 public

30、String address;/通讯地址 /成员方法定义(略)成员变量初始化1.1.如果定义成员变量时没有指定初值,则系统自动指如果定义成员变量时没有指定初值,则系统自动指定初值。定初值。成员变量初始化2.2.在定义成员变量时也可以指定初值。例如:在定义成员变量时也可以指定初值。例如:public class Point public class Point private int x=10;private int x=10;注意:注意:public class Point public class Point private int x private int x;/错误,因为错误,因为x=

31、10;x=10;是赋值语句,对成员变量的操作必须放在方法中是赋值语句,对成员变量的操作必须放在方法中 ,不能直接放在类中,不能直接放在类中 x=10;x=10;3.3.更为常用初始化方法是通过构造方法。例如:更为常用初始化方法是通过构造方法。例如:public Point(int x1,int y1)public Point(int x1,int y1)x=x1;x=x1;y=y1;y=y1;成员方法l成员方法(Member Method)又称为功能接口(Function Interface),简称为方法(Method),是类与外界的接口,描述了类的行为方式,反应了对象的行为特征,特别是对属性

32、进行操作的特征。l成员方法对成员变量的操作主要体现在以下两个方面:改变对象的属性,一般记为set方法 返回对象的属性,一般记为get方法成员方法n类的行为即对数据的操作由它的成员方法实现。成员方法是可被调用执行并返回值的、能实现特定功能的程序段。n成员方法声明格式如下:访问权限修饰符abstractstaticfinal 返回值类型 方法名(形式参数列表)throws 异常类 方法体 说明:(1)成员方法的访问权限修饰符和成员变量的修饰符一样有四种情况:public:此方法可以在任何地方访问。private:此方法只可以由本类中的方法访问。friendly:此方法可以由本类中的方法和本包中其他

33、类中的方法访问,为默认修饰符。protected:此方法可以由本类及其子类中的方法访问。成员方法(2)abstract、static和final分别用于指定所声明的方法为抽象方法、静态方法和终结方法。静态方法又称类成员方法或类方法,一般用于与类有关的数据操作,可以使用类名直接调用。(3)成员方法执行数据操作功能后都会向调用者返回数据操作的结果,返回值类型就是用于声明该成员方法返回值结果的数据类型,可以是包括基本数据类型和引用类型在内任何合法的类型。(4)若成员方法不返回任何值,则返回值类型用void标记,不能缺省。(5)每个成员方法都有一个方法名,紧邻方法名的是用一对括号()括起来的参数列表,

34、参数列表也称为形式参数表,简称形参表。成员方法(6)形参表主要用于声明该成员方法在被调用时需要调用者提供的、与数据操作相关的参数的个数与数据类型。每个成员方法允许声明的形参可以有零到多个,每个形参由形参数据类型、空格符和形参名组成,多个形参之间用逗号分隔,即便成员方法没有形参,括号()也不能缺省。(7)形参的作用域是局部的,只限于声明它的成员方法之内有效。(8)throws用于声明该成员方法在执行过程中可能会抛出的异常类型。成员方法(9)花括号所括起来的就是方法体,方法体可以包含一到多条语句,用以实现成员方法所负责的数据操作功能。若成员方法的返回值类型不为void,则在方法体中需要使用retu

35、rn语句返回其数据操作的结果,且结果类型必须与方法声明的返回值类型相一致。方法体也可以是一个分号“;”(没有),表示无方法体,该方法没有实现。当且仅当方法的修饰符中有abstract或native时,方法才无方法体。(10)在方法体内可以定义局部变量,其作用域只限于声明它的方法体内,且声明中不能使用public等访问修饰符和static关键字,同时需遵循“先赋值,后使用”的原则,且在同一个类的不同方法中可以声明同名的局部变量,包括形式参数在内的所有局部变量都不能在方法体外被访问。hello();void eat()/成员方法,空类型,无参数,方法名为eat计算机不能直接执行高级语言程序,必须先

36、翻译成为机器语言程序之后才能执行。对象运行结束后或生命周期结束时,将成为垃圾对象,但并不意味着就立即会被回收,仅当垃圾回收器空闲或内存不足时,才会回收它们。name=name;静态成员变量可以通过类名直接访问,也可以由对象变量来引用。print();/调用本类中的print方法Class15.其次,结构化的程序设计方法仍存在与人的思维不协调的地方,所以很难自然、准确地反映真实世界。静态成员与实例成员public class Example void idea()System.System.Circle类具有类型为double的半径、周长和面积属性,并具有返回周长和面积的方法。通过this可以引

37、用当前对象的成员变量或者调用当前对象的成员方法。Rectangle ob=new Rectangle();System.结构化的程序设计把程序的结构规定为顺序、选择和循环三种结构,限制使用GOTO语句,并采用了自顶向下、逐步求精的分析和设计方法,即功能分解法,这种方法将需求空间视为一个功能模块,该模块又进行分解,生成多个小的功能模块,重复分解,直至每个模块具有明确的功能和适当的复杂度,而每个模块的功能实现都由上述三种基本结构组成,其目的是为了解决由许多人共同开发大型软件时,如何高效率地完成高可靠系统的问题。访问权限修饰符abstractstaticfinal 返回值类型 方法名(形式参数列表)

38、throws 异常类机器语言:是计算机能够直接执行的二进制指令代码,每条指令都用0和1组成的序列串表示,这些指令的集合就是指令系统。面向对象的程序设计中程序是“对象+消息”。成员方法例如下面的代码声明了一个名为People的类,其中定义了两个成员方法。class People int age;/成员变量String name;/成员变量double height;/成员变量void laugh()/成员方法,空类型,无参数,方法名为laugh System.out.println(哈哈);/方法体 void eat()/成员方法,空类型,无参数,方法名为eat System.out.print

39、ln(人要吃饭);/方法体 /类体结束 成员方法l如果方法有返回值类型,则方法体中必须有如果方法有返回值类型,则方法体中必须有returnreturn语句语句如果想让方法执行后得到值如果想让方法执行后得到值a a,即返回值为,即返回值为a a,那么在方法,那么在方法中要使用中要使用returnreturna a语句。语句。return return有有“返还返还”之意,它把之意,它把表达式的值返回到调用之处。例如:表达式的值返回到调用之处。例如:public class Class3public class Class3 double f(int x)double f(int x)return

40、 2.5+x;return 2.5+x;public static void main(String args)public static void main(String args)Class3 aaa=new Class3();Class3 aaa=new Class3();double y=aaa.f(3);double y=aaa.f(3);System.out.println(y);System.out.println(y);System.out.println(aaa.f(2);System.out.println(aaa.f(2);return 语句 return语句用在方法中,

41、每一个方法可以有一个返回值,也可以没有,没有即返回return void。当程序执行到该语句时,终止当前方法的执行,返回到调用该方法语句的后面一条语句。return语句可以从一个方法返回,并把控制权交给调用它的语句,return语句通常被放在方法的最后,用于退出当前方法并返回一个值。它的语法格式为:return 表达式;l表达式是可选参数,表示要返回的值。它的数据类型必须同方法声明中的返回值类型一致。如果不一致时,表达式的类型强制转换为方法返回值的类型。return语句 例如:编写返回a和b两数相加之和的方法可以使用如下代码:public int set(int a,int b)return

42、sum=a+b;l计算表达式的值,然后将该值返回到调用该方法的语句中return语句l如果方法没有返回值,可以省略return关键字的表达式,使方法结束。代码如下:public void set(int a,int b)sum=a+b;return;/也可以省略return语句,因为方法的结束标记大花括号也具有该语句的功能,这种格式一般用于if语句或者switch语句等选择结构。return语句类课堂练习 l定义满足下列条件的Pen类:Pen类拥有的属性有:笔尖的粗细、墨水量、墨水颜色、有无笔帽、长度及半径。Pen类拥有的方法:画图、写字、更换墨水l 面向对象程序设计方法面向对象程序设计方法l

43、 类的定义类的定义l 构造方法构造方法l 对象的创建和使用对象的创建和使用l this关键字关键字l 类的封装性类的封装性l 静态成员与实例成员静态成员与实例成员l 方法调用与参数传递方法调用与参数传递l 匿名对象匿名对象内 容 提 要 构造方法n构造方法是类用来创建对象、初始化类的属性的一种特殊方法,它本身不属于类的成员方法。每当由类创建对象时都要调用该类特定的构造方法,在Java中,每个类都至少有一个构造方法。构造方法可以确保用户正确地构造类的对象,同时,构造方法也会对对象作初始化工作。n构造方法的声明格式如下:()初始化的程序代码块可以使用参数值作可以使用参数值作为变量的初值,也为变量的

44、初值,也可以直接给变量赋可以直接给变量赋具体的数值。具体的数值。构造方法说明:(1)一个类的构造方法可以有多个,它们都具有相同的方法名,即类名;(2)与类的成员方法不同,构造方法用于创建类的对象并对对象的成员变量进行初始化。(3)构造方法没有返回值类型,但是也不能有void关键字,且只能通过new运算符调用。(4)修饰符一般采用public(或者没有),以便于在其他位置根据需要定义并实例化该类的对象。修饰符也可以使用private,private类型的构造方法表明该类类不能被其他类实例化,通常用于只含有静态成员的类。(5)当一个类没有显式声明其构造方法时,Java编译器会自动为该类生成一个默认

45、的、无参数的构造方法,且实例化后对象的成员变量在没有特别赋值的情况下自动获得其所声明类型的默认值。这种模式更近似于现实世界,在这里,所有的对象都同时拥有属性以及与这些属性相关的行为。所以,我们在实际编程的时候有时候需要在一个构造方法中调用另外一个构造方法,但是,在使用this关键字调用其他构造方法时,this()只能放在构造方法的首行,为的是能够为类中的属性初始化,而且至少有一个构造方法是不用this调用的,否则程序会出错。类的访问权限有public和缺省两种。程序设计语言的设计目的主要是为了支持某种程序设计方法。对象的创建和使用显然,用第一种方法考虑周全,结构清晰,层次分明,作者容易写,读者

46、容易看。创建一个对象后,在程序中就可以引用对象中的成员变量,调用对象的成员方法(即使用对象),语法格式如下:如果不一致时,表达式的类型强制转换为方法返回值的类型。public Student(String name)/一个参数的构造方法结构化的程序设计方法:如果发现某一部分中有一段内容不妥,需要修改 只需找出该部分,修改有关段落即可,与其他部分无关。class People /类头同一个类的不同对象可以互相访问对方的private实例变量或者调用对方的private实例方法,这是因为访问控制符是在类级别上,而不是对象级别上。声明类是公有的,可以被任何类使用或继承。【例】定义一个学生类Stude

47、nt其属性包含学号、姓名、性别、出生日期、电子邮箱、手机号码、QQ号码、通讯地址等。第一种做法,按照最原始的方式:class Student 提升程序的开发与运行效率如果使用实例成员变量,那么每个中国人的实例对象都会分配一个country属性,有多少个中国人的实例对象,就会创建多少份country属性的内存空间。例如:张三=new People()构造方法的分类1.不带参数的构造方法,又分为:缺省的构造方法 显式的不带参数的构造方法2.带参数的构造方法 构造方法(1)缺省的构造方法 如果类的定义没有编写构造方法,Java语言会自动为用户提供。这个由Java自动提供的构造方法就是所谓的缺省构造方

48、法。缺省的构造方法确保每个Java类都至少有一个构造方法,该方法应符合方法的定义。但如果自定义了构造方法,则系统不再提供无参构造方法。如果需要无参的构造方法,则需要显式定义。例如在下例的类EmpInfo中,我们没有定义构造方法,则Java自动提供了一个缺省的构造方法,如下:public EmpInfo()/缺省的构造方法缺省的构造方法EmpInfo.javapublic class EmpInfo String name;/雇员的姓名雇员的姓名 String designation;/雇员的职务雇员的职务 String department;/雇员的部门雇员的部门 void print()/成

49、员方法成员方法 System.out.println(name+is +designation+at +department);public static void main(String argv)EmpInfo employee=new EmpInfo();/创建对象并实例化创建对象并实例化 employee.name=Robert Javaman ;/给成员变量赋值给成员变量赋值 employee.designation=Manager ;/给成员变量赋值给成员变量赋值 employee.department=Coffee Shop ;/给成员变量赋值给成员变量赋值 employee.p

50、rint();/调用方法调用方法print()print()运行结果如下:Robert Javaman is Manager at Coffee Shop调用缺省的构造方法调用缺省的构造方法构造方法(2)显式的不带参数的构造方法。例如,可以为People类增加一个如下所示的构造方法Class People string name;int age;float height;float weight;public People()/无参数 name=沈昕;age=26;height=1.62;weight=55.5;构造方法(3)带参数的构造方法 带有参数的构造方法能够实现这样的功能:当构造一个新

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(教学面向对象程序设计标准课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|