面向过程与面向对象的区别
面向过程编程思想:是一种机械化的思维,就像一条流水线,指定流水线只能生产指定产品
缺点:牵一发而动全身 扩展性非常低,可维护性差
优点:将复杂的事情,简单化,并流程化 应用场景:对扩展要求较低的程序
eg:系统内核,shell脚本,计算器啥的
面向对象是一种编程思
对象是什么
面向对象关注点是对象,把你的思维角度从具体操作这 变成了一个指挥者
例如把大象装进冰箱
1.打开冰箱
2.塞入大象
3.关闭冰箱
以上就是典型面向过程思想
换成面向对象
找一个具备装大象这个技能的对象 然后命令它装大象
注意:对象不是凭空产生的 需要我们自己先设计对象 然后在使用它们
优点:
不需要在关注具体的实现细节 可以更好的关注业务逻辑
扩展性提高了,维护性高,复用性高
缺点:
对比面向过程而言.程序需要先设计,结构更复杂,编程复杂度提高了
无法准确预知执行结果
应用场景:
对于扩展性要求较高的应用程序
qq,微信,王者荣耀
面向对象是一种编程思想,让你不需要关心具体实现细节,而是关注对象
什么是对象?
万事万物都是对象
对象:具备某种特征与行为的集合体并且是具体存在的就称之为对象
如来佛祖,owen
类: 某些具备相同特征和相同行为的集合体 ,是一种抽象概念 类型==类
人,动物,狗,老男孩的老师
特征==属性
行为==技能
对象和类的关系
在生活中 先有对象 再有类
在代码中 必须现有类 才能产生对象 (因为你需要提前告诉计算机这个对象是什么样的有什么技能)
编程思想不是某一个具体语言或技术 ,
面向对象的语言:
python,Java,C++,C#
面向过程:
C,ruby
使用class关键字来定义一个类
类名称为大驼峰命名法
所有单词首字母大写
小驼峰 第一个单词首字母小写
"""
# class ClassName:
# pass
class Student:
# 描述特征使用变量 (属性)
school = "olbBoy"
# 描述技能使用函数 (方法)
def say_hi():
print("hello i am tiger")
# class中的代码仅在第一次加载时执行
print("test...")
pass
#
print(Student.say_hi)
Student.say_hi()
print(Student.school)
# Student.say_hi()
# 调用类来获得一个对象
# stu1 = Student()
# stu1.say_hi()
class Person:
country = "china"
def eat(self):
print("正在吃面...")
p1 = Person()
# print(p1)
# print(Person)
# print(p1.country)
# p1.eat()
# 为对象增加了属性
p1.name = "张三"
print(p1.name)
# 给p1对象单独添加了country
p1.country = "USA"
# 在访问时优先访问自己名称空间的内容 如果找不到 会自动找类中的属性
print(p1.country)
print(Person.country)
# 每个对象都会存储自己所在类的地址 可以使用__class__来访问
print(p1.__class__)
print(type(p1))
# 查看名称空间中的内容
print(p1.__dict__)
print(Person.__dict__)