面向对象

Posted 2987831760qq-com

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象相关的知识,希望对你有一定的参考价值。

面向对象(OOP)概念

面向过程:早期的编程概念,类似于函数,但只能执行,没有返回值,将功能独立的代码封装成一个个函数,最后顺序地调用不同的函数

函数式编程:不仅能执行,还可以返回结果

面向对象: 面向对象是更大的封装,根据职责在一个对象里封装多个方法,顺序地让不同的对象调用不同的方法

类和对象

类和对象是面向对象编程的两个核心概念

类是一群具有相同特征或者行为的事物的统称,是抽象的,不能直接使用,特征被称为属性,行为被称为方法

类相当于一个一个模板,是负责创建对象的

 

对象是类创建出来的一个具体的存在,可以直接使用,由什么类创建的对象,就拥有那个类中定义的属性和方法

在程序开发中,先有类再有对象

先定义类:

技术图片
class Student (object):
    def __init__(self, name, age, sex):
        self.name = name
        self.age = age
        self.sex = sex

    def student_name(self):
        return ‘my name is {}‘.format(self.name)

    def student_sge(self):
        return ‘my age is {}‘.format(self.age)

    def student_sex(self):
        return ‘i am a {}‘.format(self.sex)
技术图片

再创建对象:则创建的对象就都有了这个类的属性和方法

new_student = Student(‘jia‘, 12, ‘boy‘)
print(new_student.student_name())
new1_student = Student(jia‘, 12, boy)
print(new1_student.student_name())

 私有属性和私有方法

对象的某些属性或方法,可能只希望在对象内部被使用,不希望在外部被访问到,,私有属性和私有方法

定义方式:在定义属性和方法时, 在属性和方法前增加两个下划线,定义的就是私有属性或方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Women:
    def __init__(self, name):
        self.name = name
        self.__age = 18
 
    def __secret(self):
        print(‘我的年龄:{}‘.format(self.__age))
 
 
student1 = Women(‘贾‘)
# print(student1.__age)  # 由于是私有属性,所以不能在外部访问
# student1.__secret()  # 私有方法,也不能在外部访问
# print(student1._Women__age)  # 其实定义的私有方法/属性,是伪私有方法/属性,可以通过
# student1._Women__secret()    # 在调用的时候在被调用的方法/属性前加  _类名  ==》 _类名__名称,进行访

以上是关于面向对象的主要内容,如果未能解决你的问题,请参考以下文章

面向面试编程代码片段之GC

PHP面向对象之选择工厂和更新工厂

Java中面向对象的三大特性之封装

python之路之前没搞明白4面向对象(封装)

Scala的面向对象与函数编程

Python面向对象学习之八,装饰器