前言:在我们真正开始编程后,面向对象这个概念在每个语言中都起着至关重要的角色,搞明白面向对象,后续的编程之路,咱们才能稳扎稳打
一、什么是类和对象?
a)笼统概念
类:抽象的,对象共有的特征
对象:有很多个。具体的存在
Python里面定义类(属性+功能):class 类名(首字母大写,大驼峰)
Python里面造对象:实例化
b)类的定义
1、类的定义
class TestName:
2、对象(类实例)
3、cl = 类名称()——cl是变量名可随意更换
c)实例方法
1、定义在类里面,第一个参数默认用self,会自动传递类实例由self接收
例子:
class Test:
def test01(self):
pass
—————————————————————————————————————————————————————————————————————————————————————————
2、
实例方法的调用
类实例.实例方法名称()
在类的内部:self.实例方法名称() self == 类实例
在类的外面:类实例.实例方法名称()
例子:
class Test_001:
def name(self):
print("我是name方法呀")
def df_name(self):
self.name() # self就是类实例本身,可以互相调用 self.方法名
cl = Test_001() #实例化Test_001类
cl.df_name() #调用Test_001类中的df_name()方法
————————————————————————————————————————————————————————————————————————————————————————
3、
类属性的创建:写在类里面函数外面
例子:
class test_001:
sex = "男生" #类属性
def name(self):
pass
————————————————————————————————————————————————————————————————————————————————————————
二、类和对象原理
a)原理解释:
"""
类和对下的概念
定义类
class 类名:
#初始化函数:__init__,在实例化对象同时,会同时会调用
#java里面叫 构造函数
def __init__(self,参数)
self.属性 = 值(可以是函数传进来的函数/其它的函数调用。。)
self.属性 = 值 #给对象添加一个属性,并赋值
#定义对象发的方法
#就是函数。对象是谁,self就是谁
def 实例方法名(self,参数):
#在方法内部,是可以通过self.属性/方法 来调用对象的其他属性或者方法。
pass #PASS可以作为占位符
#定义实例对象的方法
#就是函数。对象是谁,self就是谁
def 实例方法名(self,参数):
#在方法内部,是可以通过self.属性/方法 来调用对象的其他属性或者方法。
pass#PASS可以作为占位符
实例化类:创建对象
1、可以创建多个对象。创建语法:
对象名 = 类名(参数) ##__int__有参就传参,没参就不用传
2、可以创建多个对象
3、每个对象都是独立的。每个对象都有拥有类里的所有方法
4、每个对象的属性、方法调用:
对象名.方法()
对象名.属性()
"""
b)例子展示:
#例子
#抽象描述
class Person:
def __init__(self,name,sex,city,age): #_ _init _ _方法: 魔法 - 在创建对象的同时,自动调用,做初始化的动作
self.name = name
self.sex = sex
self.city = city
self.age = age
#实例化对象时,对象是谁,self就是谁
#在定义类的时候,并不知道对象是谁。就用self来表示对象
def eat(self,food):
self.cooking() #self.方法名() 互相调用
print("我喜欢吃{}".format(food))
def study(self):
pass
def cooking(self):
pass
def find_another_friend(self):
pass
def play(self):
pass
bql = Person("小阿卷","男","16","成都") #实例化类
bql.eat("火锅") #调用实例化类中的eat()方法
print(bql.name)
响应:
我喜欢吃火锅
小阿卷