zoukankan      html  css  js  c++  java
  • 面向对象

    ⑴对象。

    对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件,主要是用来描述某个事物的属性。


    ⑵对象的状态和行为。

    对象具有状态,一个对象用数据值来描述它的状态。
    对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。
    对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中 


    ⑶类。

    具有相同特性(数据元素)和行为(功能)的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象,类实际上就是一种数据类型。
    类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。
    类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。

    面向对象: 具有相同的属性值的实际存在的例子,也就是实例

     : 具有相同方法的属性的一类事物

    函数定义方式: 使用def 函数() :

    类的定义方式:使用class 类名:          #类名第一个字母应该要大写(约定俗成)

    class Dog:
        变量  = 1000:
        变量2 = 'abc'
        变量3 = [(1,2),(3,4)]

    #  上面这个式子中,变量,变量2,变量3,就是对象,描述了类的详细属性

    如果想要调用类中的对象,也就是变量或者方法的话有两种方式

    第一种:使用__dic__t方法 ,如果直接运行这个方法,可以查类中的所有的可调用的参数

    # 使用.__dict__['变量']
    class Dog:
        变量 = 1000
        变量2 = 'abc'
        变量3 =  [(1,2),(3,4)]
    print(Dog.__dict__['变量'])
    print(Dog.__dict__['变量2'])
    print(Dog.__dict__['变量3'])

    第二种 ,这种方式也是最常用的方式

    #第二种是直接调用
    #print(类名.类中的变量或者方法)
    
    class Dog:
        变量 = 1000
        变量2 = 'abc'
        变量3  = [(1,2),(3,4)]
    print(Dog.变量)
    print(Dog.变量2)
    print(Dog.变量3)

    实例化的 过程

    1 开辟一个新的空间

    2 定义一个__init__(self)方法,这个方法默认有一个参数,如果有其他参数需要按照顺序一一对应

    3 执行init 方法

    4 类会将返回值自动返回给调用者

    class Dog:   # 开一个空间用来存放Dog类
         def __init__(self,name,blood,ad,kind): #  定义一个init 方法
             self.name = name  
             self.hp = blood             # 执行init方法
             self.ad = ad
             self.kind = kind
     hei = Dog('小黑',300,20,'哈士奇')      # self返回值会自动返回给调用者print(hei.name)
    

    我们不光可以在类外直接调用变量,还可以进行增删改

    1  改

    class Dog:   # 开一个空间用来存放Dog类
         def __init__(self,name,blood,ad,kind): #  定义一个init 方法
             self.name = name  
             self.hp = blood       #  这是在内部进行增加,赋值,
             self.ad = ad
             self.kind = kind
     hei = Dog('小黑',300,20,'哈士奇')
    
     print(hei.name)
    hei.name = '不请自来'        # 这样可以在类的外部进行修改self参数

    2  增

    class Dog:   # 开一个空间用来存放Dog类
         def __init__(self,name,blood,ad,kind): #  定义一个init 方法
             self.name = name  
             self.hp = blood   
             self.ad = ad
             self.kind = kind
     hei = Dog('小黑',300,20,'哈士奇')
     print(hei.name)
    hei['maxhp']    = 10          # 这几做到了在类的外部数值进行增加
    print(hei.hp)     #

     3  删除

    class Dog:   # 开一个空间用来存放Dog类
         def __init__(self,name,blood,ad,kind): #  定义一个init 方法
             self.name = name  
             self.hp = blood   
             self.ad = ad
             self.kind = kind
     hei = Dog('小黑',300,20,'哈士奇')
     print(hei.name)
    
    del hei.hp     #这就做到了在外部进行删除,删除了hp的内容

    类中的变量:

    动态变量:  方法,函数(对象)

    静态变量: 定义的普通变量比如  a  =1  ....

    rom math import pi
    print(pi)
    class Circle:
        def __init__(self,r):
            self.r = r
        def area(self):
            return pi * self.r**2
        def perimeter(self):
            return 2*self.r*pi
    c1 = Circle(5)
    c2 = Circle(15)
    print(c1.area())         
    print(c1.perimeter()) 
    print(c2.area())
    print(c2.perimeter())
    # 在类中把操作一般都写在方法内,
    # 如果直接写在init方法内,
    from math import pi
    print(pi)
    class Circle:
        def __init__(self,r):
            self.r = r
            return pi * self.r**2
    
    
    c1 = Circle(5)
    print(c1.area())    
    c1 = Circle(10 )    #  这个只是修改了self中的r,而不会改变结果。在第一次调用的时候他已经被定义了,r就是一个一个键的值,如果改了这个值,对整个式子没有影响
    print(c1.area())    #这两个的结果相同
  • 相关阅读:
    Lync 2013和Exchange 2013集成
    eclise配置tomcat出现服务Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4 and Java EE 5 Web modules
    二叉树C语言
    NYOJ 298 相变点(矩阵高速功率)
    简化网站开发:SiteMesh小工具
    Android Ant 和 Gradle 包装工艺和效率控制
    [Webpack 2] Chunking common modules from multiple apps with the Webpack CommonsChunkPlugin
    [Webpack 2] Grouping vendor files with the Webpack CommonsChunkPlugin
    [Webpack 2] Hashing with Webpack for long term caching
    [Webpack 2] Maintain sane file sizes with webpack code splitting
  • 原文地址:https://www.cnblogs.com/mk-lovefreedom/p/10594016.html
Copyright © 2011-2022 走看看