Python中面向对象概述

1.什么是面向对象?

面向对象是一种思想,是基于面向过程而言的,就是说面向对象是将功能等通过对象来实现,将功能封装进对象之中,让对象去实现具体的细节;这种思想是将数据作为第一位,而方法或者说是算法作为其次,这是对数据一种优化,操作起来更加的方便,简化了过程。面向对象有三大特征:封装性、继承性、多态性,其中封装性指的是隐藏了对象的属性和实现细节,仅对外提供公共的访问方式,这样就隔离了具体的变化,便于使用,提高了复用性和安全性。对于继承性,就是两种事物间存在着一定的所属关系,那么继承的类就可以从被继承的类中获得一些属性和方法;这就提高了代码的复用性。继承是作为多态的前提的。多态是说父类或接口的引用指向了子类对象,这就提高了程序的扩展性,也就是说只要实现或继承了同一个接口或类,那么就可以使用父类中相应的方法,提高程序扩展性,但是多态有一点不好之处在于:父类引用不能访问子类中的成员。

举例来说:就是:比如说你要去饭店吃饭,你只需要饭店,找到饭店的服务员,跟她说你要吃什么,然后就会给你做出来让你吃,你并不需要知道这个饭是怎么错做的,你只需要面向这个服务员,告诉他你要吃什么,然后他也只需要面向你吃完收到钱就好,不需要知道你怎么对这个饭进行吃。

1、特点:

1:将复杂的事情简单化。

2:面向对象将以前的过程中的执行者,变成了指挥者。

3:面向对象这种思想是符合现在人们思考习惯的一种思想。

2、面向对象的三大特征:封装,继承、多态

1.封装:只隐藏对象的属性和实现细节,仅对外提供公共访问方式

好处:将变化隔离、便于使用、提高复用性、提高安全性

原则:将不需要对外提供的内容隐藏起来;把属性隐藏,提供公共方法对其访问

2.继承:提高代码复用性;继承是多态的前提

注:

①子类中所有的构造函数都会默认访问父类中的空参数的构造函数,默认第一行有super();若无空参数构造函数,子类中需指定;另外,子类构造函数中可自己用this指定自身的其他构造函数。

3.多态

是父类或接口定义的引用变量可以指向子类或具体实现类的实例对象

好处:提高了程序的扩展性

弊端:当父类引用指向子类对象时,虽提高了扩展性,但只能访问父类中具备的方法,不可访问子类中的方法;即访问的局限性。

前提:实现或继承关系;覆写父类方法。

2.类和对象的区别?

1.类型:代码中可以通过class关键字,自定义一个数据类型

(1)数据类型:简称类型:简称类-> 自定义数据类型-> 自定义 类

(2)基本语法:
    class 类型名称:
        类型中的代码
(3)类型名称命名规范:见名知意、驼峰命名法[一个或者多个英文单词组成、每个单词首字母大写]

(4)类型:通过项目中需要的大量有相似特征和行为的对象,抽象出来的一个数据类型

2.对象:
 对象:有具体特征和行为操作的事物
    代码:有具体(特征)属性和(行为)方法的对象-> 事物

3. 类型  VS   对象   区别?
类型:通过对象抽象出来的一个数据类型
    类型中需要定义对象需要的特征[属性|变量]和行为[方法]
    class Person:

        # 定义属性、特征
        # 固定写法:在__init__方法中,定义类型的属性
        def __init__(self, name, age, gender):
            self.name = name
            self.age = age
            self.gender = gender

        # 定义方法、行为
        def eat(self, food):
            print("吃饭了")
      
        对象:某中类型一个具体存在的事物
        代码中的对象,需要通过类型来创建
        如:tom = Person('汤姆', 18, '男')

        通过 类型名称() 的方式创建对象
        创建对象时,自动调用执行__init__()方法,将对象需要的数据传递过去

3.类的声明定义语法操作?

(1.)声明定义类型?

    对象:某中类型一个具体存在的事物
    代码中的对象,需要通过类型来创建
    如:tom = Person('汤姆', 18, '男')

    通过 类型名称() 的方式创建对象
        创建对象时,自动调用执行__init__()方法,将对象需要的数据传递过去

(2.)初始化类型属性?

     -> Author.__init__()方法初始化数据

(3.)定义类型的方法?

     -> Author.__init__()方法初始化数据

4.对象的创建、属性的调用、方法的调用?

变量的创建:
-> Author.init()方法初始化数据
属性的调用:
class Author:
# 给对象的特征赋值,在init()中进行操作
def init(self, username, password, nickname):
self.username = username
self.password = password
self.nickname = nickname
方法的使用:
调用执行方法:类似与调用执行函数

方法的调用执行:必须通过对象的引用变量进行调用!

author = Author()
author.introduction()

你可能感兴趣的:(Python中面向对象概述)