面向对象
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象相关的知识,希望对你有一定的参考价值。
面向对象技术简介
类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。
方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
实例变量:定义在方法中的变量,只作用于当前实例的类。
继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。
实例化:创建一个类的实例,类的具体对象。
方法:类中定义的函数。
对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。
面向对象三大特性
封装:
class Animal: def __init__(self): #构造方法 一个对象创建后会立即调用此方法 self.Name="Doraemon" print self.Name def accessibleMethod(self): #绑定方法 对外公开 print "I have a self! current name is:" print self.Name print "the secret message is:" self.__inaccessible() def __inaccessible(self): #私有方法 对外不公开 以双下划线开头 print "U cannot see me..." @staticmethod def staticMethod(): #self.accessibleMethod() #在静态方法中无法直接调用实例方法 直接抛出异常 print "this is a static method" def setName(self,name): #访问器函数 self.Name=name def getName(self): #访问器函数 return self.Name name=property(getName,setName) #属性 可读可写
继承
class Animal: def __init__(self): self.Name="Animal" def move(self,meters): print "%s moved %sm." %(self.Name,meters) class Cat(Animal): #Cat是Animal的子类 def __init__(self): #重写超类的构造方法 self.Name="Garfield" ## def move(self,meters): #重写超类的绑定方法 ## print "Garfield never moves more than 1m." class RobotCat(Animal): def __init__(self): #重写超类的构造方法 self.Name="Doraemon" ## def move(self,meters): #重写超类的绑定方法 ## print "Doraemon is flying." obj=Animal() obj.move(10) #输出:Animal moved 10m. cat=Cat() cat.move(1) #输出:Garfield moved 1m. robot=RobotCat() robot.move(1000) #输出:Doraemon moved 1000m
以上是关于面向对象的主要内容,如果未能解决你的问题,请参考以下文章