zoukankan      html  css  js  c++  java
  • (2)类与对象

    什么是类

    类即类别、种类,是面向对象设计最重要的概念,对象是特征与技能的结合体,而类则是一系列对象相似的特征与技能的结合体

    在现实世界中:先有对象,再有类

    世界上肯定是先出现各种各样的实际存在的物体,然后随着人类文明的发展,人类站在不同的角度总结出了不同的种类,如人类、动物类、植物类等概念

    也就说,对象是具体的存在,而类仅仅只是一个概念,并不真实存在

    在程序中:务必保证先定义类,后产生对象

    这与函数的使用是类似的,先定义函数,后调用函数,类也是一样的,在程序中需要先定义类,后调用类

    不一样的是,调用函数会执行函数体代码返回的是函数体执行的结果,而调用类会产生对象,返回的是对象

    PS: 站的角度不同,定义出的类是截然不同的

    PS:现实中的类并不完全等于程序中的类,比如现实中的公司类,在程序中有时需要拆分成部门类,业务类...... 

    PS:有时为了编程需求,程序中也可能会定义现实中不存在的类,比如策略类,现实中并不存在,但是在程序中却是一个很常见的类

    类有两种属性:数据属性和函数属性

    1. 类的数据属性是所有对象共享的

    类的数据属性是所有对象共享的,id都一样

    print(id(OldboyStudent.school))

    print(id(s1.school))

    print(id(s2.school))

    print(id(s3.school))

    '''

    4377347328

    4377347328

    4377347328

    4377347328

    '''

    2. 类的函数属性是绑定给对象用的

    类的函数属性是绑定给对象使用的,obj.method称为绑定方法,内存地址都不一样

    ps:id是python的实现机制,并不能真实反映内存地址,如果有内存地址,还是以内存地址为准

    print(OldboyStudent.learn)

    print(s1.learn)

    print(s2.learn)

    print(s3.learn)

    '''

    <function OldboyStudent.learn at 0x1021329d8>

    <bound method OldboyStudent.learn of <__main__.OldboyStudent object at 0x1021466d8>>

    <bound method OldboyStudent.learn of <__main__.OldboyStudent object at 0x102146710>>

    <bound method OldboyStudent.learn of <__main__.OldboyStudent object at 0x102146748>>

    '''

  • 相关阅读:
    struts2标签处理下拉列表
    JS中parseInt使用问题解析
    使用jquery异步无刷新删除
    html中table标签的td标签居中左(右)对齐
    struts2拦截器来防止sql注入
    在S2SH中调用返回参数的存储过程
    使用jquery的getJSON从服务器端获得数据
    【vue】vuecli中 对于public文件夹的处理
    oracle10新建表时大小定问题
    会议记录
  • 原文地址:https://www.cnblogs.com/shizhengquan/p/10083563.html
Copyright © 2011-2022 走看看