面向对象基础(中)
- 格式:pptx
- 大小:876.38 KB
- 文档页数:45
面向对象编程的基础理论与应用面向对象编程,简称OOP,是一种程序设计范式,是现代计算机程序设计的主流方法之一。
它将程序中的数据和函数封装在对象中,以对象为核心,实现代码的模块化和重用。
本文将介绍OOP的基础理论和应用。
一、面向对象编程的基础理论1.1. 类和对象类是面向对象编程的基本概念,它是一种用户自定义的数据类型,用于描述具有相同特征和行为的对象的抽象概念。
类具有属性和方法两种成员,属性用于描述对象的状态,而方法用于描述对象的行为。
例如,人类是一个类,拥有身高、体重、年龄、性别等属性,以及行走、说话、工作等方法。
对象是类的一个实例,是具有类定义的属性和方法的实体。
对象由类创建而来,可以看成是类的一种具体实现。
例如,小明是人类的一个对象,拥有身高170cm、体重60kg、年龄20岁、男性等属性,以及行走、说话、上学等方法。
1.2. 封装、继承和多态封装是指将数据和方法封装在对象中,对外部屏蔽对象的内部实现细节,只提供公共接口供外部使用。
封装允许程序员隐藏复杂性和保护代码不受外部干扰,提高程序的可维护性和安全性。
继承是指在已有类的基础上,创建一个新的类,新类可以继承原有类的属性和方法,并可以增加或修改其功能。
继承可以提高代码的重用,减少代码的冗余,同时还可以使程序的层次结构更为清晰。
多态是指在不同的对象上调用相同的方法,可以产生不同的结果。
它允许程序员使用一种统一的方式处理不同的对象,使程序更具灵活性和可扩展性。
二、面向对象编程的应用2.1. 程序的模块化和重用OOP的一大优势是可以将程序按照功能模块化,不同的模块之间可以独立地设计、编写和测试。
每个模块都是一个对象,可以单独进行维护或调试,这大大提高了程序的可维护性和可扩展性。
同时,OOP的封装和继承机制,也可以使代码的重用更为方便和高效。
2.2. 图形界面编程OOP特别适合于图形界面编程,因为图形界面程序需要处理大量的对象,例如窗口、按钮、文本框、标签等,每个对象都是一个类的实例。
面向对象的基础思想1 类与对象(重点)1.1类与对象的基本关系类与对象是整个面向对象概念之中的最为重要的组成部分。
类:类是对整个现实世界的一种合理的抽象,是一种共性的产物,在类之中主要有两个组成部分:属性(变量)、行为(方法);对象:是一个具体的,可以使用的产物,是一种个性的表示。
实际上类中规定了一个对象的具体行为,而对象是一个类的具体表现。
类只有通过对象才可以使用,所以在开发之中一定要先有类之后再定义对象。
但是一个类产生之后就好比汽车的设计图纸那样,本身并不能直接使用,必须按照图纸生产出具体的汽车之后才可以开,所以需要对象,而对象定义格式如下:格式一:声明并实例化对象格式二:分步完成通过以上的格式可以发现,依然存在了关键字new,所以这一操作也一定表示要开辟堆内存空间,同时需要注意的是,当一个对象开辟空间之后可以按照如下的两个方式来操作类中的内容:·操作类中的属性:对象.属性;·操作类中的方法:对象.方法();范例:声明并实例化对象但是类本身属于引用数据类型,所以以上的程序依然要牵扯到内存的划分,同样使用两块内存:·堆内存:保存的是每一个对象所具备的属性;·栈内存:保存的是一块堆内存的使用地址,可以简单理解为对象名称。
1.2浅深入引用传递清楚了以上的内存关系之后,下面再来对另外一个类似的程序进行观察。
如果说现在同时产生了两个只要发现了关键字new,那么一定表示要开辟的是一块新的内存空间,每一块堆内存空间都有一个栈内存指向它。
范例:观察如下程序发现现在一个per对象没有进行实例化的操作,这个时候程序编译没有任何的语法错误,但是程序执行的时候出现了以下的错误提示:现在给出的是“NullPointerException”,表示空指向异常。
此异常肯定会伴随你的开发人生走完的那一刻,此异常只有在引用数据类型操作的时候才会出现。
NullPointerException更准确的讲法是指使用只声明而未开辟空间的引用类型所造成的问题,所以为了区分此概念,以后对于对象而言,在操作上就会给出两个不同的名词:·声明对象:只开辟了栈内存空间的对象,无法直接使用;·实例化对象:有了对应的堆内存空间指向,可以使用;以上的分析流程和数组是完全一样的,因为数组也属于引用数据类型,在数组学习的时候强调过,所谓的引用传递实际上指的就是一块堆内存空间可以同时被多个栈内存所指向的操作,那么对于类也是一样的,引用传递指的是一块堆内存同时被不同的对象(不同的栈)所指向。
第6章【⾯向对象基础--中】理解封装的概念掌握权限修饰符的使⽤掌握成员变量的私有化掌握构造器的声明与使⽤会声明标准的JavaBean能够写出类的继承格式能够说出继承的特点能够说出⽅法重写的概念以及和重载的区别能够使⽤this关键字解决问题能够使⽤super关键字解决问题能够分析类初始化过程(为⾯试服务)能够分析实例初始化过程(为⾯试服务)能够应⽤多态解决问题理解向上转型与向下转型能够使⽤instanceof关键字判断对象类型了解native关键字掌握final关键字了解Object类的常⽤⽅法会重写Object的常⽤⽅法6.1 封装6.1.1 封装概述1我要⽤洗⾐机,只需要按⼀下开关和洗涤模式就可以了。
有必要了解洗⾐机内部的结构吗?有必要碰电动机吗?我们使⽤的电脑,内部有CPU、硬盘、键盘、⿏标等等,每⼀个部件通过某种连接⽅式⼀起⼯作,但是各个部件之间⼜是独⽴的现实⽣活中,每⼀个个体与个体之间是有边界的,每⼀个团体与团体之间是有边界的,⽽同⼀个个体、团体内部的信息是互通的,只是对外有所隐瞒。
⾯向对象编程语⾔是对客观世界的模拟,客观世界⾥每⼀个事物的内部信息都是隐藏在对象内部的,外界⽆法直接操作和修改,只能通过指定的⽅式进⾏访问和修改。
封装可以被认为是⼀个保护屏障,防⽌该类的代码和数据被其他类随意访问。
适当的封装可以让代码更容易理解与维护,也加强了代码的安全性。
随着我们系统越来越复杂,类会越来越多,那么类之间的访问边界必须把握好,⾯向对象的开发原则要遵循“⾼内聚、低耦合”,⽽“⾼内聚,低耦合”的体现之⼀:⾼内聚:类的内部数据操作细节⾃⼰完成,不允许外部⼲涉;低耦合:仅对外暴露少量的⽅法⽤于使⽤隐藏对象内部的复杂性,只对外公开简单的接⼝。
便于外界调⽤,从⽽提⾼系统的可扩展性、可维护性。
通俗的讲,把该隐藏的隐藏起来,该暴露的暴露出来。
这就是封装性的设计思想。
2通俗的讲,封装就是把该隐藏的隐藏起来,该暴露的暴露出来。
面向对象分析与设计基础知识全掌握在软件开发领域,面向对象分析与设计(Object-Oriented Analysis and Design,简称OOAD)是一种广泛应用的方法论。
它以对象为核心,通过抽象、封装、继承和多态等特性,实现对软件系统的理解和构建。
本文将全面介绍面向对象分析与设计的基础知识,帮助读者全面掌握这一方法。
一、面向对象思想的基本概念面向对象思想是现代软件开发的基石,理解其中的基本概念对于深入学习面向对象分析与设计至关重要。
1.1 类和对象在面向对象的世界里,类是对象的抽象和模板,定义了对象的属性和行为。
类可以看作是一种数据类型的定义,它具有封装、继承和多态的特性。
而对象是类的实例,是具体的、可以被使用的实体。
1.2 封装封装(Encapsulation)指将数据和对数据的操作封装在一个类中,通过访问权限控制,隐藏对象的内部细节,仅向外部提供必要的接口。
封装提高了代码的安全性和复用性,减少了代码的耦合度。
1.3 继承继承(Inheritance)是面向对象编程中的重要概念,它允许我们创建新的类,从已存在的类中继承属性和方法。
继承可以提高代码的可扩展性和复用性,实现了代码的层次化组织。
1.4 多态多态(Polymorphism)是面向对象编程中的另一个重要概念,它允许不同类的对象对同一消息作出响应,实现了不同对象之间的互换使用。
多态提高了代码的灵活性和可维护性。
二、面向对象分析与设计的过程面向对象分析与设计是一种系统化的方法,它通过一系列步骤来分析和设计软件系统。
下面是面向对象分析与设计的基本过程。
2.1 需求获取需求获取是面向对象分析与设计的第一步,通过与用户沟通、分析文档等方式,准确地理解用户的需求和期望。
在这一阶段,我们需要收集用户需求并进行整理和分析。
2.2 需求分析需求分析是根据获取到的需求,进一步分析需求的优先级、相互关系和约束条件等。
通过需求分析,我们可以消除需求的模糊性和冲突,为后续的设计工作提供准确的依据。
面向对象基础总结篇一、几个基本概念1、面向对象的编程和面向过程编程参考lesson4中的面向过程与面向对象介绍.docx结构化程序设计:主张按功能分析系统需求,主要原则为:自顶向下、逐步求精、模块化、结构化。
一般步骤:结构化分析(SA)→结构化设计(SD)→结构化编程(SP)结构化程序设计里最小的程序单元是函数结构化设计需要采用自顶向下的设计方式,在设计阶段就需要考虑每个模块应该分解成哪些子模块,每个子模块又分解成哪些更小的模块……以此类推,直至将模块细化成一个个函数。
面向对象程序设计:使用类、对象、继承、封装、消息等基本概念进行程序设计。
它以现实世界中客观存在的事物(对象)出发来构造软件系统,并在构造中尽可能使用人类的自然思维方式,强调直接以现实世界中的事物(对象)为中心来思考,认识问题,并根据这些事物的本质特点,把它们抽象地表示为系统中的类,作为系统的基本构成单元,这使得软件系统可以直接反映客观世界,并保持客观世界中事物及其相互关系的本来面貌。
2、类和对象:对象是类的实例,类是对象的模板3、成员变量和局部变量成员变量在整个类的内部都有效。
局部变量只在方法内部有效。
二、方法1、方法的所属性2、方法的组成:方法的返回值类型和参数的名字不参与比较,也就是说如果两个方法的名字相同,即使返回值类型或者是参数的名字不同,也不能称为方法的重载,必须是参数个数或者是参数类型不同。
3、方法和重载和重写方法重载是指一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。
方法的返回值类型和参数的名字不参与比较,也就是说如果两个方法的名字相同,即使返回值类型或者是参数的名字不同,也不能称为方法的重载,必须是参数个数或者是参数类型不同。
三、构造方法(构造器)1、特点:与类名相同并且没有任何显示的返回类型。
2、作用:完成对象的初始化3、何时被调用:在创建对象的时候被自动调用(new )4、构造方法的重载:构造方法可以重载是指一个类中有多个方法有相同的名字但这些方法的参数必须不同即或者是参数的个数不同或者是参数的类型不同5、父类和子类的构造方法先创建父类的构造方法,在创建子类对象的时候,子类会先主动调用父类的无参数的构造方法,再调用自身的构造方法,若父类构造方法有参数,子类必须使用super。
C#学习基础之⼀——⾯向对象编程及new的⽤法总结⼀、理解⾯向对象编程1.C#,是纯⾯向对象编程。
所谓⾯向对象编程,我个⼈理解是,我们只⽤对象去实现我们的功能,这样可以很容易达到重复利⽤。
过去⽤C编程时,我们要⽤重复的代码,⾸先考虑到肯定是声明⼀个函数来封装,使⽤时再调⽤即可。
但是我想重复使⽤⼀类代码(⽐如创建⼀个窗体的代码),我们⽤⾯向过程的⽅式去归这⼀类代码⽐较困难,⽽且调⽤起来也不灵活,于是出现了 ”类“ 这个玩意,对应的便是⾯向对象编程。
2.C#,创建对象变量。
格式:类名对象名; 是不是看起来像在C语⾔中声明⼀个变量。
没错,格式是⼀模⼀样。
⽽且在⾯向对象编程语⾔中(C#、java等),万物皆对象。
你声明⼀个变量,⽐如:sting str;,”str“也是对象。
我们声明对象变量就⽤类名去声明就好了。
上⾯我们声明了⼀个可以放对象的变量,但是它⾥⾯啥也没有,可以理解为创建了⼀个可以放该类型的空盒⼦。
其实它的默认值是”null“,就是没有分配内存。
假设有⼀个类叫“服装”,然后我想声明⼀个盒⼦(对象变量)叫“裤⼦1号”,具体操作就是:“ 服装裤⼦1号;”3.C#,创建对象(实例化)。
格式:new 类的构造函数(); 先缕清⼏个词语: 对象:名词,就是从抽象类中造出来实物。
⽐如”服装“,这个名词⽐较抽象,没有具体的说明是这件上⾐还是那条裤⼦。
那么我们就要把它具体化,”new 服装类构造函数()“,这⾥得到的是⼀个”⾐服“的具体对象,于是对象就创出来了,可以存到变量⾥,也可以直接创建出来被引⽤。
对象变量:名词,就是类似普通变量,存放相应对象的变量。
实例化:动词,创建对象的过程叫做实例化。
在C#中”new“关键字功能很多,下⾯会详细⼀起谈。
最常⽤功能的就是实例化。
4.C#,为对象变量赋值。
格式:对象变量名 = 对象; 和变量赋值⼀模⼀样,就是把对象赋给对象变量。
⽐如:裤⼦1号 = new 服装(); 上⾯的“裤⼦⼀号”是提前声明了的,也可以连在⼀起:服装裤⼦ = new 服装();声明对象变量的同时,实例化并赋值。