码迷,mamicode.com
首页 > 其他好文 > 详细

面向对象

时间:2016-07-02 10:20:26      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:

面向对象技术简介

类(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

 

面向对象

标签:

原文地址:http://www.cnblogs.com/zhaijunming5/p/5634817.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!