当前位置: 首页 > news >正文

01什么是面向对象,面向对象的基本操作

1.0---面向对象的概念
.
类: 具有相同属性和技能的一类事物; (人类就可以作包含了多个对象(人)的)
对象: 具体类的表现,具体到个体,实实在在的一个实例; (高小波是一个人,就是人类中实实在在的个体)

为什么要学习类,对象: 可以将代码形成一个个代码块,这些代码块可以进行相互间的操作(类间的继承,对象对类的操作),有利于代码的规范和引用
.
2.0---类的格式
.
类体: 包括俩部分 变量部分(静态变量) ,方法(函数)部分(普通函数,构造方法)

class Person:           #  Person 类名
    name='有名字'             #  静态变量,(也叫静态字段)
    animal='高级动物'
    faith='有信仰'

    def work(self):            #  方法(函数)
        print('有没有工作')
    def house(self):
        print(self)
        print('有没有房子')

.
3.0---面向对象的操作
.
对类的操作可以从俩个角度来讲:通过类名对类进行操作,通过对象对类进行操作
从类名的角度:
.
a.-- dict
Person.dict 操作 查询类中的所有内容;不能进行增删改操作
b.--万能的 . (可实现增删改查)

print(Person.name)   # 查
Person.age=25    # 增     在类的函数中也可以操作
Person.name='高波'    # 改
del Person.animal        # 删

操作类中的方法(在工作中基本不用)
Person.work(11)

.
从对象的角度

class Person:
    name='有名字' #  静态变量,或者是静态字段
    animal='高级动物'
    faith='有信仰'
    def __init__(self,name,age,sex,hobby):     #  构造方法(每个类都要有构造方法)
        self.name=name
        self.age=age
        self.sex=sex
        self.hobby=hobby      # 给对象封装相应的属性(变量,可控);
    def work(self):
        print('有没有工作')
    def house(self):
        print(self)
        print('有没有房子')

ret=Person('高波',25,'boy','不知道')
默认将Person的空间地址传给self,其他得参数会依次传入
#1, 类名+()产生一个实例(对象,对象空间.)
#2, 自动执行类中的init方法,将对象空间传给init的self参数,
#3, 给对象封装相应的属性(变量). 可控的

自动执行类中的init方法,将对象空间传给init的self参数,
Person() # 类名+() 的这个过程:实例化的过程(创建一个对象的过程)
Person() 实例化对象,实例,对象

a.--操作对象中的静态变量
1.0 dict 查询对象中的所有内容
2.0 万能的 .

print(ret.name)
ret.hith=1.68
del ret.hobby
ret.name='高小波'
 print(ret.__dict__)

b.--对象操作类中的静态变量

print(ret.name) # 如果对象中有就会先查询对象中的,没有的得话,向上一步查询类中的
print(ret.faith)
c.--对象操作类中的方法 (工作中,通过对象)
ret.work()
ret.house()

转载于:https://blog.51cto.com/13747953/2301516

相关文章:

  • day-19 django2
  • Go 语言编译器的 //go: 详解
  • 《2019年世界发展报告》发布,阿里巴巴助力小企业发展创造就业
  • @Service注解让spring找到你的Service bean
  • python 3.5 解决csv 读入中的'utf-8' codec can't decode办法
  • 2018 JVM 生态报告:79% 的 Java 开发者使用 Java 8
  • 微信小程序 - 使用七牛云 API 截取第 n 秒图像为封面图
  • 《netty入门与实战》笔记-03:数据传输载体 ByteBuf 介绍
  • 【转】使用 lsof 查找打开的文件
  • 实验报告五201521460014 综合渗透
  • EDMA3浅析
  • Lua与C/C++的交互
  • java网络编程之IO
  • 最好用的中间人***工具mitmproxy
  • linuxcentos忘记root管理用户密码 单用户模式维护重置密码操作指引
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • Angular 2 DI - IoC DI - 1
  • es6要点
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • Mocha测试初探
  • Rancher如何对接Ceph-RBD块存储
  • scrapy学习之路4(itemloder的使用)
  • Spark学习笔记之相关记录
  • WePY 在小程序性能调优上做出的探究
  • 产品三维模型在线预览
  • 翻译:Hystrix - How To Use
  • 关于Java中分层中遇到的一些问题
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 小程序测试方案初探
  • 写给高年级小学生看的《Bash 指南》
  • ​ssh免密码登录设置及问题总结
  • #include到底该写在哪
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (2)STL算法之元素计数
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (转)jQuery 基础
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • .sys文件乱码_python vscode输出乱码
  • @EnableWebMvc介绍和使用详细demo
  • @font-face 用字体画图标
  • @RequestMapping用法详解
  • [ vulhub漏洞复现篇 ] Celery <4.0 Redis未授权访问+Pickle反序列化利用
  • [20161214]如何确定dbid.txt
  • [20170713] 无法访问SQL Server