第十三节课,面对对象

第十三节课,类 讲课老师:风陨老师

2021/4/21

一、面对对象:(object-oriented ;简称: OO) 是一种程序设计方式,同时也是一种程序开发方法。它将对象作为程序的基本单元,将程序和数据进行封装,提高软件的复用性、灵活性和扩展性,从而提高工作效率。

#对象:指数据和功能的组合

#面向过程:根据业务逻辑从上到下写代码

#面向对象:对数据与函数绑定到一起,进行封装,这样能够更快速的开发程序,减少了重复代码的重写过程

​ 面向对象和面向过程都是解决问题的一种思路,如一个人当遇到需求时,自己一步一步的操作去实现叫面向过程,如果找一个专业的人解决这个需求叫做面向对象,当然面向对象基于面向过程。

二、类:

​ 1、类的含义:类是对象的抽象化,类是一群具有相同特征或行为的事物的统称

​ 2、类的定义:用 class 来定义类

​ 3、类的命名:驼峰命名法(首字母大写)

​ 4、类的属性:类可以看作是独立存放(属性及方法)的空间,就像人拥有其独特的特性(属性)以及行动(方法)

​ 5、类与实例之间的联系:类: 是一个事物的抽像,不是真实存在的,描绘了事物的共性,

​ 实例:某个事物的具体个体,是该类事物的具体表现,真实存在

                                                     实例对象可以获得类中所有的属性及方法。
class Object_Object():		   # 定义类
    name = '类属性1'			 # 类属性:即公共属性,只要是在同一类中,都可以调用
	people = '类属性2'

a1 = Object_Object()           # 实列化1
a1.sex = '实列化1属性'
print(a1.name)				   # 类在调用前必先实列化,否则无法被调用类属性
print(a1.people)
print(a1.sex)				   # 调用实列化1属性

a2 = Object_Object()           # 实列化2  类可以多次实列化,且能调用共有属性
print(a2.name)
print(a2.people)
print(a2.sex)				   # 无法调用:在同一类中,一般情况多个实列化之间不互通


注:属性调用是先从实列中寻找目标,如果没有再进入类进行寻找

三、私又属性:起保护作用不影响属性的改变

概念:1.属性前加’_‘一个下划线,外部可以直接访问
2.属性前加’__'两个下划线,外部不可以直接访问

class Object():
    _private = '私有属性1'
    __funcs = '私有属性2'


a1 = Object()					# 实例化

print(a1._private) 				# 调用私有属性1     

print(a1.__funcs)				# 无法直接调用私又属性2
print(dir(a1))					# 查看访问形式
print(a1._Object__funcs)		# 通过'_类名__私有属性'去调用

四、初始化

class Object():						
    def __init__(self, names):			# 建立初始化,传一个属性
        self.names = names
        self.funcs = '属性1'
    def play(self):						# play 是Object里面的方法
        print(f'我有一个特有{self.names}就是玩')


Reals = Object('属性')
print(Reals.names)
Reals.play()

私有属性
class Object():
    def __init__(self, names):
        self.__names = names			         # 私有属性
        self.funcs = '属性1'
    def play(self):
        print(f'我有一个特有{self.__names}就是玩')	# 私有属性能在内部进行访问


Reals = Object('属性')
print(Reals.__names)	                          # 结果报错 无法在外部直接访问						
Reals.play()


私有属性外部调用:
class Object():
    def __init__(self, names):
        self.__names = names
        self.funcs = '属性1'
    def play(self):
        print(f'我有一个特有{self.__names}就是玩')
	def transfer(self):						
        return self.__names             # 使用transfer方法调用内部属性

Reals = Object('属性')
print(Reals.transfer)					# 调用transfer方法  完成在外部调用的目的	
Reals.play()


在外部改变私有属性
class Object():
    def __init__(self, names):
        self.__names = names
        self.funcs = '属性1'

    def play(self):
        print(f'我有一个特有{self.__names}就是玩')

    def transfer(self):
        return self.__names

    def change(self, newnames):			# 使用方法调用私有属性

        self.__names = newnames			# 重新赋值

        return self.__names             # 返回


Reals = Object('属性')

newnames = Reals.change('属性2')		  # 改变私有属性
print(newnames)
Reals.play()

五、方法:类属性就是针对类对象定义的属性 ,使用 赋值语句 在 class 关键字下方可以定义 类属性,用于记录 与这个类相关的特征

​ 类方法就是针对 类对象定义的方法, 在类方法内部可以直接访问 类属性或者调用类的其他方法

class Method():
    def __init__(self, names):

        self.names = names

    def transfer(self):
        print(self.names)

    def borrow(self):

        self.transfer()					# 内部方调用


newname = Method('属性')

newname.borrow()						# 实现内部调用

你可能感兴趣的:(python)