面向对象编程
面向对象和面向过程
面向过程:C、Basic、汇编
面向对象:C++、Java、PHP
面向过程是从计算机的角度出发考虑问题
面向对象是从人的角度出发考虑问题
比如:学生去教室上课
面向过程:
起床
洗刷刷
穿衣服
吃早餐
出门,往教室方向走
if 遇到红灯:
while 红灯亮:
等待直到绿灯
If 遇到漂亮妹子:
搭讪
到了教室
while 上课时间未到:
等待
开始上课
while 下课时间未到:
吃饭
睡觉
打豆豆
下课
面向对象:
定义学生类
定义学生类的属性:姓名、年龄、身高、专业、班、学号、……
定义学生类的方法:吃饭()、睡觉()、上课()、下课()
定义教室类
定义教室类的属性:位置、容量、网络状态
定义教室类的方法:开门()、关门()、……
创建一个学生类的对象 yangbing
创建一个教室类的对象 204
执行学生的上课的方法 yangbing.上课(204)
面向过程由于适用于底层软件
相对面向过程来说,面向对象更适合组建大团队工作,适用于上层的软件。
面向对象是从第三者的角度出发来考虑问题。
面向对象和面向过程是不同的编程思维,在不同的场合下使用,看问题的角度不同。不能绝对说谁优谁劣
常用面向对象编程语言的区别
C++、Java、Python
Java:纯粹的面向对象编程语言。里面没有任何的面向过程的东西。
public class Test {
public static void main() {
System.out.println(“hello”):
}
}
任何的代码都必须在类里面去编程,脱离了类就什么都没有了
C++:在C语言的基础上,加上面向对象的概念(C加面向对象)
int main() {
printf(“hello”);
}
Python:面向过程或面向对象
print("hello")
什么是对象
Python没有new
程序猿没有对象怎么办?自己new一个
天上飞的:飞机、大炮、小鸟……
地上跑的:蛇、牛、羊、猪、……
水里游的:鱼、虾、蟹、……
抽象的:规则、项目、方法……
世界上万事万物都是对象
如何区分类和对象
思考下面的话:
-
1 狗是类 狗是对象
-
2 yangbing是类 yangbing是对象
对象是具体的;类是抽象的。
-
一个类中可以包含多个对象
-
类是某一系列对象的集合(总称)
声明类和创建对象
OOP:Object Oriented Programming(面向对象编程)
OOA、OOD、OOP:
Python中创建类的方式:
class 类名:
类中的代码
约定的习俗:类名首字母大写。比如:
class Dog:
pass
Python中创建对象的方式
对象名 = 类名()
比如:
# dog1是Dog的对象
dog1 = Dog()
print(dog1) # <__main__.Dog object at 0x000001CAA988FE48>
print(type(dog1)) # <class '__main__.Dog'>
Dog是类
dog1是对象。dog1是Dog的对象