面向对象概念
面向对象是利用类和对象来创建各种模型对真实世界进行描述,也能使程序变得简单。
class 类
一个类即对一类拥有相同属性的对象的抽象。其中类定义了这些对象都具备非属性以及方法。
object 对象
一个对象即是一个类的实例化后的实例,一个类必须经过实例化后才能在程序中调用,一个类可以有多个属性,每个对象也可以有不同的属性
encapsulation 封装
在类中对数据的赋值、内部调用对外部用户是透明的,这使类变成了一个容器,里面包含着类的属性以及方法。
防止数据被随意修改
使外部程序不需要关注对象内部结构,只需要通过对象对外提供的接口进行直接访问即可
inheritance 继承
一个类可以派生出子类,在这个类里定义的属性、方法自动被子类继承
通过父类->子类的方式以最小编码实现不同角色的不同点与共同点
polymorphism 多态
一个基类中派生出不同的子类,且每个子类在继承同样方法名的同时对父类的方法做了不同的实现,就是同一种事物表现出的多种状态。
定义类和对象
类的定义
1 class person(object):
2 #person类名,object是固定格式
3 def __init__(self,name):
4 #类的构造函数,对象的参数都由此处传入。self表示是对象自身
5 self.name = name
6
7 def hello(self):
8 #由于self等于对象自身,而构造函数已经将所有参数传给self了。所以类的方法可以直接调用类的属性。不会出现构造函数的局部不按量不能被其它方法访问
9 print("hello world,i'm %s"%self.name)
10
11 obj1 = person('zsq') #类的实例,即对象
12 obj1.hello() #对象调用方法
类的私有属性
对象的属性保存在对象内,对象的方法保存在类里面。类似于下面介绍的类的公有属性
1 __author__ = 'zhang'
2
3 class person(object):
4 def __init__(self,name): self.name = name
5 self.__heart = 'normal' #私有属性,对象不可调用。 类的方法可以进行调用,进行操作即外部不能调用,内部可以调用
6 def hello(self):
7 print("hello world,i'm %s"%self.name)
8
9 def get_heart(self): #访问私有属性的方法,让外部能访问但不能修改
10 return self.__heart
11
12 obj1 = person('zsq')
13 obj1.hello()
14 print(obj1.get_heart())#通过类的方法访问私有属性
15 print(obj1._person__heart) #强制访问私有属性
类的公有属性
对象的公有属性默认是引用类里面的,当通过对象操作公有属性其实是在对象本地新建一个与公有属性同名的变量而已,与原来的公有属性没有任何关系。只不过访问时候先在本地寻找对应的变量名,找不到再去类中寻找而已。 删除对象自己的公有属性其公有属性会恢复到类里面公有属性的值。
1 class person(object):
2 nationality = "CHINA"
3 def __init__(self,name):
4 self.name = name
5
6 obj1 = person('zsq')
7 obj2 = person('zsq1')
8 print(obj1.nationality)
9 print(obj2.nationality)
10 print('-------------')
11 person.nationality = "CN"
12 print(obj1.nationality)
13 print(obj2.nationality)
14 obj1.nationality = "USA"
15 print('-------------')
16 print(obj1.nationality)
17 print(obj2.nationality)
18 print('-------------')
19 del obj1.nationality
20 print(obj1.nationality)
21 print(obj2.nationality)
将类方法修改为私有方法
1 class person(object):
2 nationality = "CHINA"
3 def __init__(self,name):
4 self.name = name
5 def get_name(self):
6 print("get name is %s"%self.name)
7
8 obj1 = person('zsq')
9 obj2 = person('zsq1')
10
11 def get_name2(self):
12 print("this is private fun get name %s"%self.name)
13 obj2.get_name = get_name2
14 obj1.get_name()
15 obj2.get_name(obj2)
分享到:
相关推荐
JavaScript程序设计 面向过程与面向对象 6.1.1 面向过程与面向对象 ...1、面向对象的特征 面向对象具有三大特征: 封装性 继承性 多态性 6.1.2 面向对象的特征 特征一 封装性 封装:指的是隐藏内部的实现细节
JAVA 面向对象。程序设计。java初级。入门
计算机后端-PHP视频教程. php之面向对象1 达标检测.wmv
易语言面向对象学习 1 一.枯燥的理论 2 1.对象和类 2 2.类的“成员”与“方法” 2 3.实例化 2 4.继承 3 二.牛刀小试 3 1.定义一个类,生成实例对象 3 2.“_初始化” 与 “_销毁” 5 三.一个更丰富的“员工...
面向对象是目前最流行的一种程序设计和实现思想,无论你是从事企业级开发、互联网应用开发,还是手 机软件开发,都会使用到面向对象的技术;主流的编程语言中,C++,Java,C#,PHP,Python等都是支持 面向对象的语言;...
1. 面向对象的基本概念:对象、类、继承、封装和多态性的深入解释。 2. UML(统一建模语言):学习如何使用UML图表进行系统建模,包括类图、用例图、序列图和状态图等。 3. 设计模式:详细解析常用的设计模式,以及...
Python 是一种面向对象的解释型语言,面向对象是其非常重要的特性。《Python 3面向对象编程》通过Python 的数据结构、语法、设计模式,从简单到复杂,从初级到高级,一步步通过例子来展示了Python 中面向对象的概念...
面向对象概要设计模板 面向对象设计是一种软件设计方法,它强调对象之间的交互和协作,以达到软件系统的高内聚、低耦合的目标。在软件设计中,面向对象设计方法可以帮助开发者更好地理解系统的需求和行为,从而提高...
### 面向对象技术-1 #### 面向对象技术的基本原理 面向对象技术是一种基于对象概念的软件开发方法。它强调的是对现实世界中的事物进行抽象,并将其映射到计算机程序中,以此来解决软件开发中的复杂性和可维护性等...
面向对象编程是计算机语言的一种先进的编程模式,在工业控制系统的PLC程序中也可以采用这种设计思想,虽然我们无法实现面向对象的很多特点如“继承”,甚至于它根本就不具备面向对象编程语言的特点,但面向对象编程...
国外计算机科学经典教材-面向对象分析与设计(UML 2.0版) 简介:本书详细介绍了面向对象的分析与设计,全面探讨了面向对象概念、软件开发过程、UML和多层技术。 本书使用最常见的技术和方法,通过一个贯穿全书的...
详细介绍了面向对象的分析与设计,全面探讨了面向对象概念、软件开发过程、UML和多层技术。本书使用最常见的技术和方法,通过一个贯穿全书的案例分析,对面向对象的软件开发过程和使用面向对象技术的编程过程进行了...
借助于漫画展示的形式,面向对象的简、由类创建一个对象的方法、类的编写与对象的创建、类的构造函数、类的方法、修饰符、Java中的封装/继承/多态等特征、Java中的线程、用Java创建一个小世界、多线程共享数据,以及...
面向过程、面向对象、面向组件、面向服务软件架构的分析与比较 软件开发历程与架构演进 软件开发从汇编语言、过程式语言、面向对象、面向组件发展到面向服务,这一进程不仅反映了编程技术的不断进步,更是软件工程...
面向对象分析(Object-Oriented Analysis,OOA)是软件工程中的一种重要方法,它着重于从实际问题出发,抽象出问题域内的对象及其相互关系,以构建问题域模型。在“软件工程-张海藩编著--面向对象分析实验报告”中,...
1. 面向对象基础: 面向对象方法基于现实世界中对象的概念。这些对象具有属性(或状态),并且可以执行动作(或行为)。面向对象的三个核心概念是封装、继承和多态。封装是将数据和操作数据的代码捆绑在一起形成一个...
《面向对象软件工程》 作者:Stephen.R.Schach 学校:(美)范德比尔特大学 书名原名:Objected-Oriented Software Engineering 目录: 第一部分 面向对象软件工程简介 第一章 面向对象软件工程的范畴 第二章 ...
本书内容由浅入深,紧密结合实际,利用大量典型实例,详细讲解Java面向对象的编程思想、编程语法和设计模式,介绍常见Java类库的用法,总结优化 Java编程的各种宝贵经验,深入阐述Java虚拟机执行Java程序的原理。...