目录
一、编程思想
(一)面向过程编程
- 面向过程编程思想:将大的问题按照功能模块划分,编程设计围绕功能模块展开,是一种面向“客体”的编程思想。
面向过程程序设计
:面向过程就是先分析出解决问题所需要的步骤,然后用一个子函数实现一个子功能,再按照层次调用子函数,类似流水线的工作原理。- 并行设计与开发:各个子函数可以并行设计与开发。
- 数据可共享:一个函数可以使用任何一组公共数据,一组公共数据也可被多个函数调用。
- 设计程式:程序=函数程式+数据
(二)面向对象编程
- 面向对象编程思想:用“类”抽象表示现实世界中具有相同特性的一类“主体”;用“对象”抽象表示现实世界中某类“主体”下的“实体”。
面向对象程序设计
:用“数据”表示“类”的特征;用”过程“或”函数“表示类的功能。- 并行设计与开发:各个子函数可以并行设计与开发。
- 数据可共享:一个类可以使用其他类下的公共数据
- 设计程式:对象=算法+数据 程序=(对象1+对象2+对象3+...)+数据
面向对象的编程思想具有以下特点:
-
对象:面向对象的编程思想主要是围绕对象展开的,一个对象是一个类的实例,它有自己的属性和行为。
-
封装:将对象的属性和行为组合在一起,形成一个封装的单元,对外部来说只暴露接口,而不显示实现细节。
-
继承:从现有类派生出新类,新类可以继承父类的属性和方法,也可以重写父类的方法,实现代码重用和扩展。
-
多态:同一种方法可以在不同的对象上产生不同的结果,使得程序具有更强的灵活性和扩展性。
面向对象的编程思想已成为现代软件开发的主要方式,在很多编程语言中都得到了广泛应用。
二、类和对象
(一)类和对象的概念
1、类:是指现实世界中的一类事物在计算机中的抽象的描述。
2、对象:是指按照类的描述在计算机中创建的实体。
(二)类的特点
1. 抽象性:类是对现实世界中的一类对象的抽象描述,它具有共同的属性和方法。类定义了对象的通用特征,而不涉及具体的实例。
2. 封装性:类将数据和方法封装在一起,通过定义公共接口来控制对数据的访问。类隐藏了实现细节,只暴露给外部的接口,提供了一种更加安全和可控的方式来使用对象。
3. 继承性:类可以通过继承来实现代码的复用。通过继承,子类可以继承父类的属性和方法,然后可以根据需要进行修改或扩展。继承能够简化代码的编写,提高代码的可维护性。
在c#中规定:子类具有父类所有特性;一个子类只能有一个父类;类的继承具有传递性。
4. 多态性:多态是指同一个方法在不同的对象上具有不同的行为。通过在父类中定义一个方法,然后在子类中根据需要进行重写,可以实现多态性。多态性提高了代码的灵活性和可扩展性。
(三)类或对象的三大要素
1、属性:是类或对象用于描述事物特征的数据
2、方法:是类或对象描述事物的动作的过程或函数
3、事件:是类或对象对外界刺激的一种响应
(四)类的创建(python)
Python中的类是一种面向对象编程的概念,用于创建对象的蓝图或模板。类是由属性和方法组成的。属性是类的数据成员,代表了类的特征或状态。方法是类的函数成员,用于定义类的行为或操作。要创建类,在python中可以使用class关键字,其创建方式如下:
class ClassName(bases): #class是关键字,bases是要继承的父类,默认继承object类。
class_suite #class_suite是类体,主要包含属性和方法。
类、属性和方法的命名应当具有描述性且易于理解和使用。下面是一些通用的命名规则:
-
类名应当使用大写字母开头的驼峰式命名法(例如:Person、Student)。
-
属性名应当使用小写字母开头的驼峰式命名法(例如:firstName、lastName)。
-
方法名应当使用小写字母开头的驼峰式命名法(例如:getName、getAge)。
-
布尔类型的属性和方法名应当以is开头(例如:isValid、isStudent)。
-
常量名应当使用全大写字母和下划线(例如:MAX_VALUE、MIN_VALUE)。
-
接口名应当使用大写字母开头的驼峰式命名法(例如:Serializable)。
-
枚举类型的值名应当使用全大写字母和下划线(例如:MONDAY、TUESDAY)。
-
方法名应当具有动词性(例如:getName、calculateAverage)。
-
属性名应当具有名词性(例如:firstName、age)。
-
类名和接口名应当具有名词性(例如:Person、Serializable)。
下面是一个简单的示例:
class MyClass:
def __init__(self, name):
self.name = name
def say_hello(self):
print(f"Hello, {self.name}!")
# 创建类的实例
obj = MyClass("Alice")
obj.say_hello() # 输出: Hello, Alice!
在上面的示例中,MyClass
是一个类,它有一个属性name
和一个方法say_hello
。通过使用class
关键字定义类,并通过__init__
方法来初始化属性。self
表示该类的实例本身。通过创建类的实例,我们可以调用类的方法。
类可以继承其他类,从而获得父类的属性和方法。这种机制称为继承。下面是一个继承示例:
class ChildClass(MyClass):
def say_goodbye(self):
print(f"Goodbye, {self.name}!")
# 创建子类的实例
child_obj = ChildClass("Bob")
child_obj.say_hello() # 输出: Hello, Bob!
child_obj.say_goodbye() # 输出: Goodbye, Bob!
在上面的示例中,ChildClass
继承了MyClass
,因此可以使用MyClass
中定义的属性和方法,并且还可以定义自己的方法。
三、接口
(一)接口的定义
接口是一种定义类的行为和功能的方式,是类中相关属性、方法和事件的描述,没有实现功能。通过接口,可以让不同的类实现相同的方法,从而实现类之间的代码复用和灵活性。
(二)接口与类和对象的关系
接口与类和对象之间的关系是:接口是一种规范或者契约,它定义了一个类或者对象应该具有的方法和属性,而类和对象则是具体实现了接口的实体。
- 一个类可以实现(implement)一个或多个接口,表示该类遵循了接口中定义的规范并实现了接口中定义的方法和属性。当一个类实现了一个接口时,它必须提供接口定义的所有方法的实现。
- 接口可以被多个类实现,不同的类可以有不同的实现方式,但它们必须提供接口定义的所有方法的实现。这种多个类实现同一个接口的方式称为接口的多态性。
- 类和对象可以通过接口来实现多态性。一个对象可以被赋值给它所实现的接口的变量,从而在不同的上下文中使用不同的对象实现,实现不同的行为。
- 对象占内存空间,类和接口一般不占。
- 对象可以完成接口中的各种任务,但接口不能完成任务,只作描述。
以上为博主自己在学习过程中的学习笔记,用于学习和交流,欢迎大家批评纠正。
希望你越来越优秀!!